[jira] [Created] (FLINK-35488) DataType Support Geometry Type

2024-05-29 Thread Leopold (Jira)
Leopold created FLINK-35488:
---

 Summary: DataType Support Geometry Type
 Key: FLINK-35488
 URL: https://issues.apache.org/jira/browse/FLINK-35488
 Project: Flink
  Issue Type: Improvement
  Components: Flink CDC
Affects Versions: cdc-3.1.0
Reporter: Leopold


     I want sync data from mysql to postgresql,but  in  Geometry Datatype filed 
i couldn't do it,mysql geometry datatype data can be transformed to string by 
spatialfuntion ,for example.st_astext(geom) .In other way,postgresql geometry 
datatype data also transformed to string .

     So,i hope Flink suport mysql  and postgrdql databse geometry datatype can 
be transform.

Thanks!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (FLINK-35487) ContinuousFileProcessingCheckpointITCase crashed as process exit with code 127

2024-05-29 Thread Weijie Guo (Jira)
Weijie Guo created FLINK-35487:
--

 Summary: ContinuousFileProcessingCheckpointITCase crashed as 
process exit with code 127
 Key: FLINK-35487
 URL: https://issues.apache.org/jira/browse/FLINK-35487
 Project: Flink
  Issue Type: Bug
  Components: Build System / CI
Affects Versions: 1.20.0
Reporter: Weijie Guo






--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (FLINK-35486) Potential sql expression generation issues on SQL gateway

2024-05-29 Thread Xingcan Cui (Jira)
Xingcan Cui created FLINK-35486:
---

 Summary: Potential sql expression generation issues on SQL gateway
 Key: FLINK-35486
 URL: https://issues.apache.org/jira/browse/FLINK-35486
 Project: Flink
  Issue Type: Bug
  Components: Table SQL / Gateway, Table SQL / Planner
Affects Versions: 1.18.1
Reporter: Xingcan Cui


We hit the following exceptions a few times when submitting queries to a 
session cluster with the Flink SQL gateway. When the same queries were 
submitted again, everything was good. There might be a concurrency problem for 
the expression generator.
{code:java}
"process.thread.name":"sql-gateway-operation-pool-thread-111","log.logger":"org.apache.flink.table.gateway.service.operation.OperationManager","error.type":"org.apache.flink.table.planner.codegen.CodeGenException","error.message":"Mismatch
 of expected output data type 'ARRAY NOT 
NULL>' and function's output type 'ARRAY NOT 
NULL>'.","error.stack_trace":"org.apache.flink.table.planner.codegen.CodeGenException:
 Mismatch of expected output data type 'ARRAY 
NOT NULL>' and function's output type 'ARRAY 
NOT NULL>'.
  at 
org.apache.flink.table.planner.codegen.calls.BridgingFunctionGenUtil$.verifyOutputType(BridgingFunctionGenUtil.scala:369)
  at 
org.apache.flink.table.planner.codegen.calls.BridgingFunctionGenUtil$.verifyFunctionAwareOutputType(BridgingFunctionGenUtil.scala:359)
  at 
org.apache.flink.table.planner.codegen.calls.BridgingFunctionGenUtil$.generateFunctionAwareCallWithDataType(BridgingFunctionGenUtil.scala:107)
  at 
org.apache.flink.table.planner.codegen.calls.BridgingFunctionGenUtil$.generateFunctionAwareCall(BridgingFunctionGenUtil.scala:84)
  at 
org.apache.flink.table.planner.codegen.calls.BridgingSqlFunctionCallGen.generate(BridgingSqlFunctionCallGen.scala:79)
  at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.generateCallExpression(ExprCodeGenerator.scala:820)
  at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:481)
  at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:56)
  at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
  at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.$anonfun$visitCall$1(ExprCodeGenerator.scala:478)
  at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
  at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:58)
  at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:51)
  at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
  at scala.collection.TraversableLike.map(TraversableLike.scala:233)
  at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
  at scala.collection.AbstractTraversable.map(Traversable.scala:104)
  at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:469)
  at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:56)
  at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
  at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.$anonfun$visitCall$1(ExprCodeGenerator.scala:478)
  at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
  at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:58)
  at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:51)
  at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
  at scala.collection.TraversableLike.map(TraversableLike.scala:233)
  at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
  at scala.collection.AbstractTraversable.map(Traversable.scala:104)
  at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:469)
  at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.visitCall(ExprCodeGenerator.scala:56)
  at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
  at 
org.apache.flink.table.planner.codegen.ExprCodeGenerator.generateExpression(ExprCodeGenerator.scala:134)
  at 
org.apache.flink.table.planner.codegen.CalcCodeGenerator$.$anonfun$generateProcessCode$4(CalcCodeGenerator.scala:140)
  at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
  at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:58)
  at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:51)
  at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
  at scala.collection.TraversableLike.map(TraversableLike.scala:233)
  at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
  at scala.collection.AbstractTraversable.map(Traversable.scala:104)
  at 
org.apache.flink.table.planner.codegen.CalcCodeGenerator$.produceProjectionCode$1(CalcCodeGenerator.scala:140)
  at 

[jira] [Created] (FLINK-35485) JobMaster failed with "the job xx has not been finished"

2024-05-29 Thread Xingcan Cui (Jira)
Xingcan Cui created FLINK-35485:
---

 Summary: JobMaster failed with "the job xx has not been finished"
 Key: FLINK-35485
 URL: https://issues.apache.org/jira/browse/FLINK-35485
 Project: Flink
  Issue Type: Bug
  Components: Runtime / Coordination
Affects Versions: 1.18.1
Reporter: Xingcan Cui


We ran a session cluster on K8s and used Flink SQL gateway to submit queries. 
Hit the following rare exception once which caused the job manager to restart.
{code:java}
org.apache.flink.util.FlinkException: JobMaster for job 
50d681ae1e8170f77b4341dda6aba9bc failed.
  at 
org.apache.flink.runtime.dispatcher.Dispatcher.jobMasterFailed(Dispatcher.java:1454)
  at 
org.apache.flink.runtime.dispatcher.Dispatcher.jobManagerRunnerFailed(Dispatcher.java:776)
  at 
org.apache.flink.runtime.dispatcher.Dispatcher.lambda$runJob$6(Dispatcher.java:698)
  at java.base/java.util.concurrent.CompletableFuture.uniHandle(Unknown Source)
  at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(Unknown 
Source)
  at java.base/java.util.concurrent.CompletableFuture$Completion.run(Unknown 
Source)
  at 
org.apache.flink.runtime.rpc.pekko.PekkoRpcActor.lambda$handleRunAsync$4(PekkoRpcActor.java:451)
  at 
org.apache.flink.runtime.concurrent.ClassLoadingUtils.runWithContextClassLoader(ClassLoadingUtils.java:68)
  at 
org.apache.flink.runtime.rpc.pekko.PekkoRpcActor.handleRunAsync(PekkoRpcActor.java:451)
  at 
org.apache.flink.runtime.rpc.pekko.PekkoRpcActor.handleRpcMessage(PekkoRpcActor.java:218)
  at 
org.apache.flink.runtime.rpc.pekko.FencedPekkoRpcActor.handleRpcMessage(FencedPekkoRpcActor.java:85)
  at 
org.apache.flink.runtime.rpc.pekko.PekkoRpcActor.handleMessage(PekkoRpcActor.java:168)
  at org.apache.pekko.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:33)
  at org.apache.pekko.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:29)
  at scala.PartialFunction.applyOrElse(PartialFunction.scala:127)
  at scala.PartialFunction.applyOrElse$(PartialFunction.scala:126)
  at 
org.apache.pekko.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:29)
  at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:175)
  at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:176)
  at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:176)
  at org.apache.pekko.actor.Actor.aroundReceive(Actor.scala:547)
  at org.apache.pekko.actor.Actor.aroundReceive$(Actor.scala:545)
  at org.apache.pekko.actor.AbstractActor.aroundReceive(AbstractActor.scala:229)
  at org.apache.pekko.actor.ActorCell.receiveMessage(ActorCell.scala:590)
  at org.apache.pekko.actor.ActorCell.invoke(ActorCell.scala:557)
  at org.apache.pekko.dispatch.Mailbox.processMailbox(Mailbox.scala:280)
  at org.apache.pekko.dispatch.Mailbox.run(Mailbox.scala:241)
  at org.apache.pekko.dispatch.Mailbox.exec(Mailbox.scala:253)
  at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
  at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown 
Source)
  at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
  at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
  at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: org.apache.flink.runtime.jobmaster.JobNotFinishedException: The job 
(50d681ae1e8170f77b4341dda6aba9bc) has not been finished.
  at 
org.apache.flink.runtime.jobmaster.DefaultJobMasterServiceProcess.closeAsync(DefaultJobMasterServiceProcess.java:157)
  at 
org.apache.flink.runtime.jobmaster.JobMasterServiceLeadershipRunner.stopJobMasterServiceProcess(JobMasterServiceLeadershipRunner.java:431)
  at 
org.apache.flink.runtime.jobmaster.JobMasterServiceLeadershipRunner.callIfRunning(JobMasterServiceLeadershipRunner.java:476)
  at 
org.apache.flink.runtime.jobmaster.JobMasterServiceLeadershipRunner.lambda$stopJobMasterServiceProcessAsync$12(JobMasterServiceLeadershipRunner.java:407)
  at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(Unknown 
Source)
  at java.base/java.util.concurrent.CompletableFuture.thenCompose(Unknown 
Source)
  at 
org.apache.flink.runtime.jobmaster.JobMasterServiceLeadershipRunner.stopJobMasterServiceProcessAsync(JobMasterServiceLeadershipRunner.java:405)
  at 
org.apache.flink.runtime.jobmaster.JobMasterServiceLeadershipRunner.runIfStateRunning(JobMasterServiceLeadershipRunner.java:463)
  at 
org.apache.flink.runtime.jobmaster.JobMasterServiceLeadershipRunner.revokeLeadership(JobMasterServiceLeadershipRunner.java:397)
  at 
org.apache.flink.runtime.leaderelection.DefaultLeaderElectionService.notifyLeaderContenderOfLeadershipLoss(DefaultLeaderElectionService.java:484)
  at java.base/java.util.HashMap.forEach(Unknown Source)
  at 
org.apache.flink.runtime.leaderelection.DefaultLeaderElectionService.onRevokeLeadershipInternal(DefaultLeaderElectionService.java:452)
  at 

[jira] [Created] (FLINK-35484) Flink Document document file had removed but website can access

2024-05-29 Thread Zhongqiang Gong (Jira)
Zhongqiang Gong created FLINK-35484:
---

 Summary: Flink Document document file had removed but website can 
access
 Key: FLINK-35484
 URL: https://issues.apache.org/jira/browse/FLINK-35484
 Project: Flink
  Issue Type: Bug
  Components: Documentation
Reporter: Zhongqiang Gong


Flink 1.18 document had remove document about DataSet : issue link 
https://issues.apache.org/jira/browse/FLINK-32741.

But I can still access the link : 
https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/dataset/formats/avro/



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [VOTE] Release flink-connector-opensearch v1.2.0, release candidate #1

2024-05-29 Thread Yuepeng Pan
+1 (non-binding)

- Built from source code with JDK 1.8 on MaxOS- Run examples locally.- Checked 
release notes Best, Yuepeng Pan


At 2024-05-28 22:53:10, "gongzhongqiang"  wrote:
>+1(non-binding)
>
>- Verified signatures and hash sums
>- Reviewed the web PR
>- Built from source code with JDK 1.8 on Ubuntu 22.04
>- Checked release notes
>
>Best,
>Zhongqiang Gong
>
>
>Sergey Nuyanzin  于2024年5月16日周四 06:03写道:
>
>> Hi everyone,
>> Please review and vote on release candidate #1 for
>> flink-connector-opensearch v1.2.0, as follows:
>> [ ] +1, Approve the release
>> [ ] -1, Do not approve the release (please provide specific comments)
>>
>>
>> The complete staging area is available for your review, which includes:
>> * JIRA release notes [1],
>> * the official Apache source release to be deployed to dist.apache.org
>> [2],
>> which are signed with the key with fingerprint
>> F7529FAE24811A5C0DF3CA741596BBF0726835D8 [3],
>> * all artifacts to be deployed to the Maven Central Repository [4],
>> * source code tag v1.2.0-rc1 [5],
>> * website pull request listing the new release [6].
>> * CI build of the tag [7].
>>
>> The vote will be open for at least 72 hours. It is adopted by majority
>> approval, with at least 3 PMC affirmative votes.
>>
>> Note that this release is for Opensearch v1.x
>>
>> Thanks,
>> Release Manager
>>
>> [1] https://issues.apache.org/jira/projects/FLINK/versions/12353812
>> [2]
>>
>> https://dist.apache.org/repos/dist/dev/flink/flink-connector-opensearch-1.2.0-rc1
>> [3] https://dist.apache.org/repos/dist/release/flink/KEYS
>> [4] https://repository.apache.org/content/repositories/orgapacheflink-1734
>> [5]
>>
>> https://github.com/apache/flink-connector-opensearch/releases/tag/v1.2.0-rc1
>> [6] https://github.com/apache/flink-web/pull/740
>> [7]
>>
>> https://github.com/apache/flink-connector-opensearch/actions/runs/9102334125
>>


[jira] [Created] (FLINK-35483) BatchJobRecoveryTest.testRecoverFromJMFailover produced no output for 900 second

2024-05-29 Thread Weijie Guo (Jira)
Weijie Guo created FLINK-35483:
--

 Summary: BatchJobRecoveryTest.testRecoverFromJMFailover produced 
no output for 900 second
 Key: FLINK-35483
 URL: https://issues.apache.org/jira/browse/FLINK-35483
 Project: Flink
  Issue Type: Bug
  Components: Build System / CI
Affects Versions: 1.20.0
Reporter: Weijie Guo






--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [DISCUSS] Flink CDC 3.1.1 Release

2024-05-29 Thread gongzhongqiang
+1
Thanks Xiqian.

Best,
Zhongqiang Gong

Xiqian YU  于2024年5月28日周二 19:44写道:

> Hi devs,
>
> I would like to make a proposal about creating a new Flink CDC 3.1 patch
> release (3.1.1). It’s been a week since the last CDC version 3.1.0 got
> released [1], and since then, 7 tickets have been closed, 4 of them are of
> high priority.
>
> Currently, there are 5 items open at the moment: 1 of them is a blocker,
> which stops users from restoring with existed checkpoints after upgrading
> [2]. There’s a PR ready and will be merged soon. Other 4 of them have
> approved PRs, and will be merged soon [3][4][5][6]. I propose that a patch
> version could be released after all pending tickets closed.
>
> Please reply if there are any unresolved blocking issues you’d like to
> include in this release.
>
> Regards,
> Xiqian
>
> [1]
> https://flink.apache.org/2024/05/17/apache-flink-cdc-3.1.0-release-announcement/
> [2] https://issues.apache.org/jira/browse/FLINK-35464
> [3] https://issues.apache.org/jira/browse/FLINK-35149
> [4] https://issues.apache.org/jira/browse/FLINK-35323
> [5] https://issues.apache.org/jira/browse/FLINK-35430
> [6] https://issues.apache.org/jira/browse/FLINK-35447
>
>


[jira] [Created] (FLINK-35482) ParquetInt64TimestampReaderTest unit tests fail due to system timezone

2024-05-29 Thread Rob Young (Jira)
Rob Young created FLINK-35482:
-

 Summary: ParquetInt64TimestampReaderTest unit tests fail due to 
system timezone
 Key: FLINK-35482
 URL: https://issues.apache.org/jira/browse/FLINK-35482
 Project: Flink
  Issue Type: Bug
  Components: Tests
 Environment: linux version: uname -r
6.9.1-arch1-1

checked with:

openjdk version "21" 2023-09-19 LTS
OpenJDK Runtime Environment Temurin-21+35 (build 21+35-LTS)

openjdk 17.0.5 2022-10-18
OpenJDK Runtime Environment Temurin-17.0.5+8 (build 17.0.5+8)

openjdk version "11.0.21" 2023-10-17 LTS
OpenJDK Runtime Environment Zulu11.68+17-CA (build 11.0.21+9-LTS)

openjdk version "1.8.0_382"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_382-b05)
Reporter: Rob Young


To reproduce:
{code:java}
export TZ=Pacific/Auckland
./mvnw -Dfast -DskipTests -Dskip.npm=true install -pl :flink-parquet -am
./mvnw test -pl :flink-parquet{code}
The parquet tests fail with:


{code:java}
[ERROR] Failures: 
[ERROR]   ParquetInt64TimestampReaderTest.testReadInt64TimestampMicros:46 
expected:<2021-11-22T1[7]:50:20.000112> but was:<2021-11-22T1[8]:50:20.000112>
[ERROR]   ParquetInt64TimestampReaderTest.testReadInt64TimestampMillis:66 
expected:<2021-11-22T1[7]:50:20> but was:<2021-11-22T1[8]:50:20>
[ERROR]   ParquetInt64TimestampReaderTest.testReadInt64TimestampNanos:78 
expected:<2021-11-22T1[7]:50:20.000112233> but 
was:<2021-11-22T1[8]:50:20.000112233>{code}
I think this is because the tests convert a LocalDateTime to epoch seconds 
using `OffsetDateTime.now().getOffset()` as the offset, but now's offset is 
different to what it would be at 2021-11-22T17:50:20.000112 NZST due to 
daylight savings.

Instead of using now's offset we could convert the localDateTime to a 
zonedDateTime using `localDateTime.atZone(ZoneId.systemDefault())`. If you're 
happy with that idea please assign me and I'll make a PR.

Another possible idea would be to set the user.timezone to GMT in the base 
argLine to use a consistent timezone for tests, which would be picked up by 
surefire and IDEA. But improving the tests feels like a better solution.

Thanks

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


RE: [DISCUSS] FLIP-XXX Add K8S conditions to Flink CRD

2024-05-29 Thread David Radley
Hi Gyula,
Thank you for the quick response and confirmation we need a Flip. I am not an 
expert at K8s, Lajith will answer in more detail. Some questions I had anyway:

I assume each of the ResourceLifecycleState do have a corresponding jobReady 
status. You point out some mistakes in the table, for example that STABLE 
should be NotReady; thankyou.  If we put a reason mentioning the stable state, 
this would help us understand the jobStatus.

I guess the jobReady is one perspective that we know is useful (with corrected  
mappings from ResourceLifecycleState and with reasons). Can I check that the  2 
proposed conditions would also be useful additions? I assume that in your 
proposal  when jobReady is true, then UpgradeCompleted condition would not be 
present and ClusterReady would always be true? I know conditions do not need to 
be orthogonal, but I wanted to check what your thoughts are.

Kind regards, David.




From: Gyula Fóra 
Date: Wednesday, 29 May 2024 at 15:28
To: dev@flink.apache.org 
Cc: morh...@apache.org 
Subject: [EXTERNAL] Re: [DISCUSS] FLIP-XXX Add K8S conditions to Flink CRD
Hi David!

This change definitely warrants a FLIP even if the code change is not huge,
there are quite some implications going forward.

Looping in @morh...@apache.org  for this discussion.

I have some questions / suggestions regarding the condition's meaning and
naming.

In your proposal you have:
 - Ready (True/False) -> This condition is intended for resources which are
fully ready and operational
 - Error (True) -> This condition can be used in scenarios where any
exception/error during resource reconcile process

The problem with the above is that the implementation does not well reflect
this. ResourceLifecycleState STABLE/ROLLED_BACK does not actually mean the
job is running, it just means that the resource is fully reconciled and it
will not be rolled back (so the current pending upgrade is completed). This
is mainly a fault of the ResourceLifecycleState as it doesn't capture the
job status but one could argue that it was "designed" this way.

I think we should probably have more condition types to capture the
difference:
 - JobReady (True/False) -> Flink job is running (Basically job status but
with transition time)
 - ClusterReady (True/False) -> Session / Application cluster is deployed
(Basically JM deployment status but with transition time)
-  UpgradeCompleted (True/False) -> Similar to what you call Ready now
which should correspond to the STABLE/ROLLED_BACK states and mostly tracks
in-progress CR updates

This is my best idea at the moment, not great as it feels a little
redundant with the current status fields. But maybe thats not a problem or
a way to eliminate the old fields later?

I am not so sure of the Error status and what this means in practice. Why
do we want to track the last error in 2 places? It's already in the status.

What do you think?
Gyula

On Wed, May 29, 2024 at 3:55 PM David Radley 
wrote:

> Hi,
> Thanks Lajith for raising this discussion thread under the Flip title.
>
> To summarise the concerns from the other discussion thread.
>
> “
> - I echo Gyula that including some examples and further explanations might
> ease reader's work. With the current version, the FLIP is a bit hard to
> follow. - Will the usage of Conditions be enabled by default? Or will there
> be any disadvantages for Flink users? If Conditions with the same type
> already exist in the Status Conditions
>
> - Do you think we should have clear rules about handling rules for how
> these Conditions should be managed, especially when multiple Conditions of
> the same type are present? For example, resource has multiple causes for
> the same condition (e.g., Error due to network and Error due to I/O). Then,
> overriding the old condition with the new one is not the best approach no?
> Please correct me if I misunderstood.
> “
>
> I see the Google doc link has been reformatted to match the Flip template.
>
> To explicitly answer the questions from Jeyhun and Gyula:
> - “Will the usage of Conditions be enabled by default?” Yes, but this is
> just making the status content useful, whereas before it was not useful.
> - in terms of examples, I am not sure what you would like to see, the
> table Lajith provided shows the status for various ResourceLifecycleStates.
> How the operator gets into these states is the current behaviour. The
> change just shows the appropriate corresponding high level status – that
> could be shown on the User Interfaces.
> - “will there be any disadvantages for Flink users?” None , there is just
> more information in the status, without this it is more difficult to work
> out the status of the job.
> - Multiple conditions question. The status is showing whether the job is
> ready or not, so as long as the last condition is the one that is shown -
> all is as expected. I don’t think this needs rules for precedence and the
> like.
> - The condition’s Reason is going to be more specific.
>

Re: [DISCUSS] FLIP-XXX Add K8S conditions to Flink CRD

2024-05-29 Thread Gyula Fóra
Hi David!

This change definitely warrants a FLIP even if the code change is not huge,
there are quite some implications going forward.

Looping in @morh...@apache.org  for this discussion.

I have some questions / suggestions regarding the condition's meaning and
naming.

In your proposal you have:
 - Ready (True/False) -> This condition is intended for resources which are
fully ready and operational
 - Error (True) -> This condition can be used in scenarios where any
exception/error during resource reconcile process

The problem with the above is that the implementation does not well reflect
this. ResourceLifecycleState STABLE/ROLLED_BACK does not actually mean the
job is running, it just means that the resource is fully reconciled and it
will not be rolled back (so the current pending upgrade is completed). This
is mainly a fault of the ResourceLifecycleState as it doesn't capture the
job status but one could argue that it was "designed" this way.

I think we should probably have more condition types to capture the
difference:
 - JobReady (True/False) -> Flink job is running (Basically job status but
with transition time)
 - ClusterReady (True/False) -> Session / Application cluster is deployed
(Basically JM deployment status but with transition time)
-  UpgradeCompleted (True/False) -> Similar to what you call Ready now
which should correspond to the STABLE/ROLLED_BACK states and mostly tracks
in-progress CR updates

This is my best idea at the moment, not great as it feels a little
redundant with the current status fields. But maybe thats not a problem or
a way to eliminate the old fields later?

I am not so sure of the Error status and what this means in practice. Why
do we want to track the last error in 2 places? It's already in the status.

What do you think?
Gyula

On Wed, May 29, 2024 at 3:55 PM David Radley 
wrote:

> Hi,
> Thanks Lajith for raising this discussion thread under the Flip title.
>
> To summarise the concerns from the other discussion thread.
>
> “
> - I echo Gyula that including some examples and further explanations might
> ease reader's work. With the current version, the FLIP is a bit hard to
> follow. - Will the usage of Conditions be enabled by default? Or will there
> be any disadvantages for Flink users? If Conditions with the same type
> already exist in the Status Conditions
>
> - Do you think we should have clear rules about handling rules for how
> these Conditions should be managed, especially when multiple Conditions of
> the same type are present? For example, resource has multiple causes for
> the same condition (e.g., Error due to network and Error due to I/O). Then,
> overriding the old condition with the new one is not the best approach no?
> Please correct me if I misunderstood.
> “
>
> I see the Google doc link has been reformatted to match the Flip template.
>
> To explicitly answer the questions from Jeyhun and Gyula:
> - “Will the usage of Conditions be enabled by default?” Yes, but this is
> just making the status content useful, whereas before it was not useful.
> - in terms of examples, I am not sure what you would like to see, the
> table Lajith provided shows the status for various ResourceLifecycleStates.
> How the operator gets into these states is the current behaviour. The
> change just shows the appropriate corresponding high level status – that
> could be shown on the User Interfaces.
> - “will there be any disadvantages for Flink users?” None , there is just
> more information in the status, without this it is more difficult to work
> out the status of the job.
> - Multiple conditions question. The status is showing whether the job is
> ready or not, so as long as the last condition is the one that is shown -
> all is as expected. I don’t think this needs rules for precedence and the
> like.
> - The condition’s Reason is going to be more specific.
>
> Gyula and Jeyhun, is the google doc clear enough for you now? Do you feel
> you feedback has been addressed? Lajith and I are happy to provide more
> details.
>
> I wonder whether this change is big enough to warrant a Flip, as it is so
> small. We could do this in an issue. WDYT?
>
> Kind regards, David.
>
>
> From: Lajith Koova 
> Date: Wednesday, 29 May 2024 at 13:41
> To: dev@flink.apache.org 
> Subject: [EXTERNAL] [DISCUSS] FLIP-XXX Add K8S conditions to Flink CRD
> Hello ,
>
>
> Discussion thread here:
> https://lists.apache.org/thread/dvy8w17pyjv68c3t962w49frl9odoz4z  to
> discuss a proposal to add Conditions field in the CR status of Flink
> Deployment and FlinkSessionJob.
>
>
> Note : Starting this new thread as discussion thread title has been
> modified to follow the FLIP process.
>
>
> Thank you.
>
> Unless otherwise stated above:
>
> IBM United Kingdom Limited
> Registered in England and Wales with number 741598
> Registered office: PO Box 41, North Harbour, Portsmouth, Hants. PO6 3AU
>


Re: [DISCUSS] FLIP-XXX Add K8S conditions to Flink CRD

2024-05-29 Thread David Radley
Hi,
Thanks Lajith for raising this discussion thread under the Flip title.

To summarise the concerns from the other discussion thread.

“
- I echo Gyula that including some examples and further explanations might ease 
reader's work. With the current version, the FLIP is a bit hard to follow. - 
Will the usage of Conditions be enabled by default? Or will there be any 
disadvantages for Flink users? If Conditions with the same type already exist 
in the Status Conditions

- Do you think we should have clear rules about handling rules for how these 
Conditions should be managed, especially when multiple Conditions of the same 
type are present? For example, resource has multiple causes for the same 
condition (e.g., Error due to network and Error due to I/O). Then, overriding 
the old condition with the new one is not the best approach no? Please correct 
me if I misunderstood.
“

I see the Google doc link has been reformatted to match the Flip template.

To explicitly answer the questions from Jeyhun and Gyula:
- “Will the usage of Conditions be enabled by default?” Yes, but this is just 
making the status content useful, whereas before it was not useful.
- in terms of examples, I am not sure what you would like to see, the table 
Lajith provided shows the status for various ResourceLifecycleStates. How the 
operator gets into these states is the current behaviour. The change just shows 
the appropriate corresponding high level status – that could be shown on the 
User Interfaces.
- “will there be any disadvantages for Flink users?” None , there is just more 
information in the status, without this it is more difficult to work out the 
status of the job.
- Multiple conditions question. The status is showing whether the job is ready 
or not, so as long as the last condition is the one that is shown - all is as 
expected. I don’t think this needs rules for precedence and the like.
- The condition’s Reason is going to be more specific.

Gyula and Jeyhun, is the google doc clear enough for you now? Do you feel you 
feedback has been addressed? Lajith and I are happy to provide more details.

I wonder whether this change is big enough to warrant a Flip, as it is so 
small. We could do this in an issue. WDYT?

Kind regards, David.


From: Lajith Koova 
Date: Wednesday, 29 May 2024 at 13:41
To: dev@flink.apache.org 
Subject: [EXTERNAL] [DISCUSS] FLIP-XXX Add K8S conditions to Flink CRD
Hello ,


Discussion thread here:
https://lists.apache.org/thread/dvy8w17pyjv68c3t962w49frl9odoz4z  to
discuss a proposal to add Conditions field in the CR status of Flink
Deployment and FlinkSessionJob.


Note : Starting this new thread as discussion thread title has been
modified to follow the FLIP process.


Thank you.

Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: PO Box 41, North Harbour, Portsmouth, Hants. PO6 3AU


Re: [DISCUSS] Add Flink CDC Channel to Apache Flink Slack Workspace

2024-05-29 Thread Ahmed Hamdy
Thanks Zhongqiang, +1 for sure.
Best Regards
Ahmed Hamdy


On Wed, 29 May 2024 at 13:48, ConradJam  wrote:

> +1 best
>
> Hang Ruan  于2024年5月29日周三 11:28写道:
>
> > Hi, zhongqiang.
> >
> > Thanks for the proposal. +1 for it.
> >
> > Best,
> > Hang
> >
> > Leonard Xu  于2024年5月28日周二 11:58写道:
> >
> > >
> > > Thanks Zhongqiang for the proposal, we need the Channel and I should
> have
> > > been created it but not yet, +1 from my side.
> > >
> > > Best,
> > > Leonard
> > >
> > > > 2024年5月28日 上午11:54,gongzhongqiang  写道:
> > > >
> > > > Hi devs,
> > > >
> > > > I would like to propose adding a dedicated Flink CDC channel to the
> > > Apache
> > > > Flink Slack workspace.
> > > >
> > > > Creating a channel focused on Flink CDC will help community members
> > > easily
> > > > find previous discussions
> > > > and target new discussions and questions to the correct place. Flink
> > CDC
> > > is
> > > > a sufficiently distinct component
> > > > within the Apache Flink ecosystem, and having a dedicated channel
> will
> > > make
> > > > it viable and useful for
> > > > those specifically working with or interested in this technology.
> > > >
> > > > Looking forward to your feedback and support on this proposal.
> > > >
> > > >
> > > > Best,
> > > > Zhongqiang Gong
> > >
> > >
> >
>
>
> --
> Best
>
> ConradJam
>


[jira] [Created] (FLINK-35481) Add HISTOGRAM function in SQL & Table API

2024-05-29 Thread Ufuk Celebi (Jira)
Ufuk Celebi created FLINK-35481:
---

 Summary: Add HISTOGRAM function in SQL & Table API
 Key: FLINK-35481
 URL: https://issues.apache.org/jira/browse/FLINK-35481
 Project: Flink
  Issue Type: Improvement
  Components: Table SQL / API
Reporter: Ufuk Celebi
 Fix For: 1.20.0


Consider adding a HISTOGRAM aggregate function similar to ksqlDB 
(https://docs.ksqldb.io/en/latest/developer-guide/ksqldb-reference/aggregate-functions/#histogram).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (FLINK-35480) Add FIELD function in SQL & Table API

2024-05-29 Thread Ufuk Celebi (Jira)
Ufuk Celebi created FLINK-35480:
---

 Summary: Add FIELD function in SQL & Table API
 Key: FLINK-35480
 URL: https://issues.apache.org/jira/browse/FLINK-35480
 Project: Flink
  Issue Type: Improvement
  Components: Table SQL / API
Reporter: Ufuk Celebi
 Fix For: 1.20.0


Add support for the {{FIELD}} function to return the position of {{str}} in 
{{{}args{}}}, or 0 if not found.

*References*
 * ksqlDB: 
[https://docs.ksqldb.io/en/latest/developer-guide/ksqldb-reference/scalar-functions/#field]
 * MySQL: 
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_elt



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [DISCUSS] Add Flink CDC Channel to Apache Flink Slack Workspace

2024-05-29 Thread ConradJam
+1 best

Hang Ruan  于2024年5月29日周三 11:28写道:

> Hi, zhongqiang.
>
> Thanks for the proposal. +1 for it.
>
> Best,
> Hang
>
> Leonard Xu  于2024年5月28日周二 11:58写道:
>
> >
> > Thanks Zhongqiang for the proposal, we need the Channel and I should have
> > been created it but not yet, +1 from my side.
> >
> > Best,
> > Leonard
> >
> > > 2024年5月28日 上午11:54,gongzhongqiang  写道:
> > >
> > > Hi devs,
> > >
> > > I would like to propose adding a dedicated Flink CDC channel to the
> > Apache
> > > Flink Slack workspace.
> > >
> > > Creating a channel focused on Flink CDC will help community members
> > easily
> > > find previous discussions
> > > and target new discussions and questions to the correct place. Flink
> CDC
> > is
> > > a sufficiently distinct component
> > > within the Apache Flink ecosystem, and having a dedicated channel will
> > make
> > > it viable and useful for
> > > those specifically working with or interested in this technology.
> > >
> > > Looking forward to your feedback and support on this proposal.
> > >
> > >
> > > Best,
> > > Zhongqiang Gong
> >
> >
>


-- 
Best

ConradJam


[DISCUSS] FLIP-XXX Add K8S conditions to Flink CRD

2024-05-29 Thread Lajith Koova
Hello ,


Discussion thread here:
https://lists.apache.org/thread/dvy8w17pyjv68c3t962w49frl9odoz4z  to
discuss a proposal to add Conditions field in the CR status of Flink
Deployment and FlinkSessionJob.


Note : Starting this new thread as discussion thread title has been
modified to follow the FLIP process.


Thank you.


[jira] [Created] (FLINK-35479) Add end-to-end test for materialized table

2024-05-29 Thread Feng Jin (Jira)
Feng Jin created FLINK-35479:


 Summary: Add end-to-end test for materialized table
 Key: FLINK-35479
 URL: https://issues.apache.org/jira/browse/FLINK-35479
 Project: Flink
  Issue Type: Sub-task
  Components: Table SQL / API, Table SQL / Gateway, Tests
Reporter: Feng Jin
 Fix For: 1.20.0


Add end-to-end test cases related to materialized tables, including the 
processes of dropping, refreshing, and dropping materialized tables.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


Re: [DISCUSS] Merge "flink run" and "flink run-application" in Flink 2.0

2024-05-29 Thread Mate Czagany
Hi Ferenc,

Thanks for the FLIP, +1 from me for the proposal. I think these changes
would be a great solution to all the confusion that comes from these two
action parameters.

Best regards,
Mate

Ferenc Csaky  ezt írta (időpont: 2024. máj.
28., K, 16:13):

> Thank you Xintong for your input.
>
> I prepared a FLIP for this change [1], looking forward for any
> other opinions.
>
> Thanks,
> Ferenc
>
> [1]
> https://docs.google.com/document/d/1EX74rFp9bMKdfoGkz1ASOM6Ibw32rRxIadX72zs2zoY/edit?usp=sharing
>
>
>
> On Friday, 17 May 2024 at 07:04, Xintong Song 
> wrote:
>
> >
> >
> > AFAIK, the main purpose of having `run-application` was to make sure
> > the user is aware that application mode is used, which executes the main
> > method of the user program in JM rather than in client. This was
> important
> > at the time application mode was first introduced, but maybe not that
> > important anymore, given that per-job mode is deprecated and likely
> removed
> > in 2.0. Therefore, +1 for the proposal.
> >
> > Best,
> >
> > Xintong
> >
> >
> >
> > On Thu, May 16, 2024 at 11:35 PM Ferenc Csaky ferenc.cs...@pm.me.invalid
> >
> > wrote:
> >
> > > Hello devs,
> > >
> > > I saw quite some examples when customers were confused about run, and
> run-
> > > application in the Flink CLI and I was wondering about the necessity of
> > > deploying
> > > Application Mode (AM) jobs with a different command, than Session and
> > > Per-Job mode jobs.
> > >
> > > I can see a point that YarnDeploymentTarget [1] and
> > > KubernetesDeploymentTarget
> > > [2] are part of their own maven modules and not known in flink-clients,
> > > so the
> > > deployment mode validations are happening during cluster deployment in
> > > their specific
> > > ClusterDescriptor implementation [3]. Although these are implementation
> > > details that
> > > IMO should not define user-facing APIs.
> > >
> > > The command line setup is the same for both run and run-application, so
> > > I think there
> > > is a quite simple way to achieve a unified flink run experience, but I
> > > might missed
> > > something so I would appreciate any inputs on this topic.
> > >
> > > Based on my assumptions I think it would be possible to deprecate the
> run-
> > > application in Flink 1.20 and remove it completely in Flink 2.0. I
> > > already put together a
> > > PoC [4], and I was able to deploy AM jobs like this:
> > >
> > > flink run --target kubernetes-application ...
> > >
> > > If others also agree with this, I would be happy to open a FLIP. WDYT?
> > >
> > > Thanks,
> > > Ferenc
> > >
> > > [1]
> > >
> https://github.com/apache/flink/blob/master/flink-yarn/src/main/java/org/apache/flink/yarn/configuration/YarnDeploymentTarget.java
> > > [2]
> > >
> https://github.com/apache/flink/blob/master/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/configuration/KubernetesDeploymentTarget.java
> > > [3]
> > >
> https://github.com/apache/flink/blob/48e5a39c9558083afa7589d2d8b054b625f61ee9/flink-kubernetes/src/main/java/org/apache/flink/kubernetes/KubernetesClusterDescriptor.java#L206
> > > [4]
> > >
> https://github.com/ferenc-csaky/flink/commit/40b3e1b998c7a4273eaaff71d9162c9f1ee039c0
>


RE: [DISCUSS] FLIP-XXX Apicurio-avro format

2024-05-29 Thread David Radley
Hi Danny,
Thank you for your feedback on this.

I agree that using maps has pros and cons. The maps are flexible, but do 
require the sender and receiver to know what is in the map.

When you say “That sounds like it would fit in better, I assume we cannot just 
take that approach?” The motivation behind this Flip is to support the headers 
which is the usual way that Apicurio runs. We will support the “schema id in 
the payload” as well.

I agree with you when you say “ I am not 100% happy with the solution but I
cannot offer a better option.” – this is a pragmatic way we have found to solve 
this issue. I am open to any suggestions to improve this as well.

If we are going with the maps design (which is the best we have at the moment) 
; it would be good to have the Flink core changes in base Flink version 2.0 as 
this would mean we do not need to use reflection in a Flink Kafka version 2 
connector to work out if the runtime Flink has the new methods.

At this stage we only have one committer (yourself) backing this. Do you know 
of other 2 committers who would support this Flip?

 Kind regards, David.



From: Danny Cranmer 
Date: Friday, 24 May 2024 at 19:32
To: dev@flink.apache.org 
Subject: [EXTERNAL] Re: [DISCUSS] FLIP-XXX Apicurio-avro format
Hello,

> I am curious what you mean by abused.

I just meant we will end up adding more and more fields to this map over
time, and it may be hard to undo.

> For Apicurio it can be sent at the start of the payload like Confluent
Avro does. Confluent Avro have a magic byte followed by 4 bytes of schema
id, at the start of the payload. Apicurio clients and SerDe libraries can
be configured to not put the schema id in the headers in which case there
is a magic byte followed by an 8 byte schema at the start of the payload.
In the deserialization case, we would not need to look at the headers –
though the encoding is also in the headers.

That sounds like it would fit in better, I assume we cannot just take that
approach?

Thanks for the discussion. I am not 100% happy with the solution but I
cannot offer a better option. I would be interested to hear if others have
any suggestions. Playing devil's advocate against myself, we pass maps
around to configure connectors so it is not too far away from that.

Thanks,
Danny


On Fri, May 24, 2024 at 2:23 PM David Radley 
wrote:

> Hi Danny,
> No worries, thanks for replying. I have working prototype code that is
> being reviewed. It needs some cleaning up and more complete testing before
> it is ready, but will give you the general idea [1][2] to help to assess
> this approach.
>
>
> I am curious what you mean by abused. I guess the approaches are between
> generic map, mechanism vs a more particular more granular things being
> passed that might be used by another connector.
>
> Your first question:
> “how would this work if the schema ID is not in the Kafka headers, as
> hinted to in the FLIP "usually the global ID in a Kafka header"?
>
> For Apicurio it can be sent at the start of the payload like Confluent
> Avro does. Confluent Avro have a magic byte followed by 4 bytes of schema
> id, at the start of the payload. Apicurio clients and SerDe libraries can
> be configured to not put the schema id in the headers in which case there
> is a magic byte followed by an 8 byte schema at the start of the payload.
> In the deserialization case, we would not need to look at the headers –
> though the encoding is also in the headers.
>
> Your second question:
> “I am wondering if there are any other instances where the source would be
> aware of the schema ID and pass it through in this way?
> ”
> The examples I can think of are:
> - Avro can send the complete schema in a header, this is not recommended
> but in theory fits the need for a message payload to require something else
> to get the structure.
> - I see [2] that Apicurio Protobuf uses headers.
> - it might be that other message queuing projects like Rabbit MQ would
> need this to be able to support Apicurio Avro & protobuf.
>
> Kind regards, David,
>
>
>
>
> [1] https://github.com/apache/flink/pull/24715
> [2] https://github.com/apache/flink-connector-kafka/pull/99
> [3]
> https://www.apicur.io/registry/docs/apicurio-registry/2.5.x/getting-started/assembly-configuring-kafka-client-serdes.html#registry-serdes-types-json_registry
>
>
>
>
>
>
>
>
>
>
>
>
> From: Danny Cranmer 
> Date: Friday, 24 May 2024 at 12:22
> To: dev@flink.apache.org 
> Subject: [EXTERNAL] Re: [DISCUSS] FLIP-XXX Apicurio-avro format
> Hello,
>
> Apologies, I am on vacation and have limited access to email.
>
> I can see the logic here and why you ended up where you did. I can also see
> there are other useful metadata fields that we might want to pass through,
> which might result in this Map being abused (Kafka Topic, Kinesis Shard,
> etc).
>
> I have a follow up question, how would this work if the schema ID is not in
> the Kafka headers, as hinted to in the FLIP "usually the global ID in a

Re: [DISCUSS] Flink CDC 3.1.1 Release

2024-05-29 Thread Muhammet Orazov

Thanks Xiqian,

It is good idea thanks, +1

Best,
Muhammet

On 2024-05-28 11:43, Xiqian YU wrote:

Hi devs,

I would like to make a proposal about creating a new Flink CDC 3.1 
patch release (3.1.1). It’s been a week since the last CDC version 
3.1.0 got released [1], and since then, 7 tickets have been closed, 4 
of them are of high priority.


Currently, there are 5 items open at the moment: 1 of them is a 
blocker, which stops users from restoring with existed checkpoints 
after upgrading [2]. There’s a PR ready and will be merged soon. Other 
4 of them have approved PRs, and will be merged soon [3][4][5][6]. I 
propose that a patch version could be released after all pending 
tickets closed.


Please reply if there are any unresolved blocking issues you’d like to 
include in this release.


Regards,
Xiqian

[1] 
https://flink.apache.org/2024/05/17/apache-flink-cdc-3.1.0-release-announcement/

[2] https://issues.apache.org/jira/browse/FLINK-35464
[3] https://issues.apache.org/jira/browse/FLINK-35149
[4] https://issues.apache.org/jira/browse/FLINK-35323
[5] https://issues.apache.org/jira/browse/FLINK-35430
[6] https://issues.apache.org/jira/browse/FLINK-35447


[DISCUSS] Flink CEP: to add processing of unmatched events

2024-05-29 Thread Anton Sidorov
Hello.

Early I asked how can I get access to unmatched events in CEP Pattern (
https://lists.apache.org/thread/p7n507jvm5hw0xmpoh0lcf87gf3yk18p).

Unfortunately Biao Geng answered me, that "that currently there is no such
API to access the middle NFA state".

I have reviewed the realization of flink CEP library and got a proposal.

I added new ValueState, named unmatchedEvents, in CEPOperator (
https://github.com/apache/flink/blob/master/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/operator/CepOperator.java
).

Also I added new interface UnmatchedEventsHandler, like
TimedOutPartialMatchHandler (
https://github.com/apache/flink/blob/master/flink-libraries/flink-cep/src/main/java/org/apache/flink/cep/functions/TimedOutPartialMatchHandler.java
).

I put all events in umatchedEvents in bufferEvent(IN event, long
currentTime) method.

When CEPOperator starts processing match (or timeout match), it also
deletes matching events from unmatchedEvents state.

Then CEPOperator calls UnmatchedEventsHadler.processEvents(List events,
Context ctx) for processing inmatchedEvents.value().

You can look on realization of my proposal in my github fork
https://github.com/A-Kinski/flink/pull/1/files