[jira] [Created] (FLINK-30257) SqlClientITCase#testMatchRecognize failed

2022-12-01 Thread Martijn Visser (Jira)
Martijn Visser created FLINK-30257:
--

 Summary: SqlClientITCase#testMatchRecognize failed
 Key: FLINK-30257
 URL: https://issues.apache.org/jira/browse/FLINK-30257
 Project: Flink
  Issue Type: Bug
  Components: Table SQL / Client
Affects Versions: 1.17.0
Reporter: Martijn Visser


{code:java}
Nov 30 21:54:41 [ERROR] Tests run: 3, Failures: 1, Errors: 0, Skipped: 0, Time 
elapsed: 224.683 s <<< FAILURE! - in SqlClientITCase
Nov 30 21:54:41 [ERROR] SqlClientITCase.testMatchRecognize  Time elapsed: 
50.164 s  <<< FAILURE!
Nov 30 21:54:41 org.opentest4j.AssertionFailedError: 
Nov 30 21:54:41 
Nov 30 21:54:41 expected: 1
Nov 30 21:54:41  but was: 0
Nov 30 21:54:41 at 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
Nov 30 21:54:41 at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
Nov 30 21:54:41 at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
Nov 30 21:54:41 at 
SqlClientITCase.verifyNumberOfResultRecords(SqlClientITCase.java:297)
Nov 30 21:54:41 at 
SqlClientITCase.testMatchRecognize(SqlClientITCase.java:255)
Nov 30 21:54:41 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
Nov 30 21:54:41 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
Nov 30 21:54:41 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Nov 30 21:54:41 at java.lang.reflect.Method.invoke(Method.java:498)
Nov 30 21:54:41 at 
org.junit.platform.commons.util.ReflectionUtils.invokeMetho
{code}

https://dev.azure.com/apache-flink/apache-flink/_build/results?buildId=43635&view=logs&j=af184cdd-c6d8-5084-0b69-7e9c67b35f7a&t=160c9ae5-96fd-516e-1c91-deb81f59292a&l=14817



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


[jira] [Created] (FLINK-30258) PyFlink supports closing loop back server

2022-12-01 Thread Xuannan Su (Jira)
Xuannan Su created FLINK-30258:
--

 Summary: PyFlink supports closing loop back server
 Key: FLINK-30258
 URL: https://issues.apache.org/jira/browse/FLINK-30258
 Project: Flink
  Issue Type: Improvement
  Components: API / Python
Affects Versions: 1.16.0
Reporter: Xuannan Su


Currently, a loopback server will be started whenever a 
StreamExecutionEnvironment or StreamTableEnvironment is created. The loopback 
server can only be closed after the process exit. This might not be a problem 
for regular uses where only one environment object is used.

However, when running tests, such as the unit tests for PyFlink itself, as the 
environment objects are created, the process starts more and more loopback 
servers and takes more and more resources.



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


[jira] [Created] (FLINK-30259) Using flink Preconditions Util instead of uncertain Assert keyword to do checking

2022-12-01 Thread Ran Tao (Jira)
Ran Tao created FLINK-30259:
---

 Summary: Using flink Preconditions Util instead of uncertain 
Assert keyword to do checking
 Key: FLINK-30259
 URL: https://issues.apache.org/jira/browse/FLINK-30259
 Project: Flink
  Issue Type: Improvement
  Components: Formats (JSON, Avro, Parquet, ORC, SequenceFile), Table 
SQL / API
Affects Versions: 1.16.0
Reporter: Ran Tao


The code of some modules of the current Flink project uses the 'assert' keyword 
of java to do checking, which actually depends on the enablement of the 
-enableassertions (-ea) option (default is false), otherwise it may lead to 
unexpected behavior. In fact, flink already has a mature Preconditions tool, we 
can use it to replace 'assert' keyword. it is more clean and consistent with 
flink.

The following is an example of some patch. (by using idea, we can fix it 
easily.)

RowDataPrintFunction
{code:java}
@Override
public void invoke(RowData value, Context context) {
Object data = converter.toExternal(value);
assert data != null;
writer.write(data.toString());
}
{code}

KubernetesUtils
{code:java}
public static KubernetesConfigMap checkConfigMaps(
List configMaps, String expectedConfigMapName) 
{
assert (configMaps.size() == 1);
assert (configMaps.get(0).getName().equals(expectedConfigMapName));
return configMaps.get(0);
}
{code}







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


[jira] [Created] (FLINK-30260) FLIP-271: Autoscaling

2022-12-01 Thread Maximilian Michels (Jira)
Maximilian Michels created FLINK-30260:
--

 Summary: FLIP-271: Autoscaling
 Key: FLINK-30260
 URL: https://issues.apache.org/jira/browse/FLINK-30260
 Project: Flink
  Issue Type: New Feature
  Components: Kubernetes Operator
Reporter: Maximilian Michels
Assignee: Maximilian Michels


https://cwiki.apache.org/confluence/display/FLINK/FLIP-271%3A+Autoscaling



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


FW: Why streaming over agg not supporting ranged upper boundary?

2022-12-01 Thread Renjie Liu


From: Renjie Liu 
Date: Tuesday, November 1, 2022 at 15:13
To: u...@flink.apache.org 
Subject: Why streaming over agg not supporting ranged upper boundary?
Hi, flink community:

Per the doc here 
https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/dev/table/sql/queries/over-agg/#range-definitions

Flink streaming over agg only supports current row as upper boundary. I can 
understand it’s impossible to support unlimited upper boundary, but I don’t 
know why we can’t support ranges upper boundary? For example I believe 
following sql is reasonable:

SELECT order_id, order_time, amount,
  SUM(amount) OVER (
PARTITION BY product
ORDER BY order_time
RANGE BETWEEN INTERVAL '1' HOUR PRECEDING AND INTERVAL '1' HOUR AFTER ) AS 
one_hour_prod_amount_sum
FROM Orders




Re: [DISCUSS] FLIP-276: Data Consistency of Streaming and Batch ETL in Flink and Table Store

2022-12-01 Thread Shammon FY
Hi @Martijn

Thanks for your comments, and I'd like to reply to them

1. It sounds good to me, I'll update the content structure in FLIP later
and give the problems first.

2. "Each ETL job creates snapshots with checkpoint info on sink tables in
Table Store"  -> That reads like you're proposing that snapshots need to be
written to Table Store?

Yes. To support the data consistency in the FLIP, we need to get through
checkpoints in Flink and snapshots in store, this requires a close
combination of Flink and store implementation. In the first stage we plan
to implement it based on Flink and Table Store only, snapshots written to
external storage don't support consistency.

3. If you introduce a MetaService, it becomes the single point of failure
because it coordinates everything. But I can't find anything in the FLIP on
making the MetaService high available or how to deal with failovers there.

I think you raise a very important problem and I missed it in FLIP. The
MetaService is a single point and should support failover, we will do it in
future in the first stage we only support standalone mode, THX

4. The FLIP states under Rejected Alternatives "Currently watermark in
Flink cannot align data." which is not true, given that there is FLIP-182
https://cwiki.apache.org/confluence/display/FLINK/FLIP-182%3A+Support+watermark+alignment+of+FLIP-27+Sources

Watermark alignment in FLIP-182 is different from requirements "watermark
align data" in our FLIP. FLIP-182 aims to fix watermark generation in
different sources for "slight imbalance or data skew", which means in some
cases the source must generate watermark even if they should not. When the
operator collects watermarks, the data processing is as described in our
FLIP, and the data cannot be aligned through the barrier like Checkpoint.

5. Given the MetaService role, it feels like this is introducing a tight
dependency between Flink and the Table Store. How pluggable is this
solution, given the changes that need to be made to Flink in order to
support this?

This is a good question, and I will try to expand it. Most of the work will
be completed in the Table Store, such as the new SplitEnumerator and Source
implementation. The changes in Flink are as followed:
1) Flink job should put its job id in context when creating source/sink to
help MetaService to create relationship between source and sink tables,
it's tiny
2) Notify a listener when job is terminated in Flink, and the listener
implementation in Table Store will send "delete event" to MetaService.
3) The changes are related to Flink Checkpoint includes
  a) Support triggering checkpoint with checkpoint id by SplitEnumerator
  b) Create the SplitEnumerator in Table Store with a strategy to perform
the specific checkpoint when all "SplitEnumerator"s in the job manager
trigger it.


Best,
Shammon


On Thu, Dec 1, 2022 at 3:43 PM Martijn Visser 
wrote:

> Hi all,
>
> A couple of first comments on this:
> 1. I'm missing the problem statement in the overall introduction. It
> immediately goes into proposal mode, I would like to first read what is the
> actual problem, before diving into solutions.
> 2. "Each ETL job creates snapshots with checkpoint info on sink tables in
> Table Store"  -> That reads like you're proposing that snapshots need to be
> written to Table Store?
> 3. If you introduce a MetaService, it becomes the single point of failure
> because it coordinates everything. But I can't find anything in the FLIP on
> making the MetaService high available or how to deal with failovers there.
> 4. The FLIP states under Rejected Alternatives "Currently watermark in
> Flink cannot align data." which is not true, given that there is FLIP-182
>
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-182%3A+Support+watermark+alignment+of+FLIP-27+Sources
>
> 5. Given the MetaService role, it feels like this is introducing a tight
> dependency between Flink and the Table Store. How pluggable is this
> solution, given the changes that need to be made to Flink in order to
> support this?
>
> Best regards,
>
> Martijn
>
>
> On Thu, Dec 1, 2022 at 4:49 AM Shammon FY  wrote:
>
> > Hi devs:
> >
> > I'd like to start a discussion about FLIP-276: Data Consistency of
> > Streaming and Batch ETL in Flink and Table Store[1]. In the whole data
> > stream processing, there are consistency problems such as how to manage
> the
> > dependencies of multiple jobs and tables, how to define and handle E2E
> > delays, and how to ensure the data consistency of queries on flowing
> data?
> > This FLIP aims to support data consistency and answer these questions.
> >
> > I'v discussed the details of this FLIP with @Jingsong Lee and @libenchao
> > offline several times. We hope to support data consistency of queries on
> > tables, managing relationships between Flink jobs and tables and revising
> > tables on streaming in Flink and Table Store to improve the whole data
> > stream processing.
> >
> > Looking forward to your feedback

[jira] [Created] (FLINK-30261) PartiallyFinishedSourcesITCase.test timed out while waiting for tasks to finish

2022-12-01 Thread Matthias Pohl (Jira)
Matthias Pohl created FLINK-30261:
-

 Summary: PartiallyFinishedSourcesITCase.test timed out while 
waiting for tasks to finish
 Key: FLINK-30261
 URL: https://issues.apache.org/jira/browse/FLINK-30261
 Project: Flink
  Issue Type: Bug
  Components: Runtime / Coordination
Affects Versions: 1.15.3
Reporter: Matthias Pohl


{{PartiallyFinishedSourcesITCase.test}} timed out while waiting for tasks to 
finish:
{code}
"main" #1 prio=5 os_prio=0 tid=0x7fe78800b800 nid=0x3a11f waiting on 
condition [0x7fe78e6fb000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at 
org.apache.flink.runtime.testutils.CommonTestUtils.waitUntilCondition(CommonTestUtils.java:145)
at 
org.apache.flink.runtime.testutils.CommonTestUtils.waitUntilCondition(CommonTestUtils.java:138)
at 
org.apache.flink.runtime.testutils.CommonTestUtils.waitForSubtasksToFinish(CommonTestUtils.java:291)
at 
org.apache.flink.runtime.operators.lifecycle.TestJobExecutor.waitForSubtasksToFinish(TestJobExecutor.java:226)
at 
org.apache.flink.runtime.operators.lifecycle.PartiallyFinishedSourcesITCase.test(PartiallyFinishedSourcesITCase.java:138)
[...]
{code}
https://dev.azure.com/apache-flink/apache-flink/_build/results?buildId=43637&view=logs&j=4d4a0d10-fca2-5507-8eed-c07f0bdf4887&t=7b25afdf-cc6c-566f-5459-359dc2585798&l=39302



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


[jira] [Created] (FLINK-30262) UpsertKafkaTableITCase failed when starting the container because waiting for a port timed out

2022-12-01 Thread Matthias Pohl (Jira)
Matthias Pohl created FLINK-30262:
-

 Summary: UpsertKafkaTableITCase failed when starting the container 
because waiting for a port timed out
 Key: FLINK-30262
 URL: https://issues.apache.org/jira/browse/FLINK-30262
 Project: Flink
  Issue Type: Bug
  Components: Build System, Connectors / Kafka, Test Infrastructure
Affects Versions: 1.16.0
Reporter: Matthias Pohl


{code:java}
Dec 01 08:35:00 Caused by: 
org.testcontainers.containers.ContainerLaunchException: Timed out waiting for 
container port to open (172.17.0.1 ports: [60109, 60110] should be listening)
Dec 01 08:35:00 at 
org.testcontainers.containers.wait.strategy.HostPortWaitStrategy.waitUntilReady(HostPortWaitStrategy.java:90)
Dec 01 08:35:00 at 
org.testcontainers.containers.wait.strategy.AbstractWaitStrategy.waitUntilReady(AbstractWaitStrategy.java:51)
Dec 01 08:35:00 at 
org.testcontainers.containers.GenericContainer.waitUntilContainerStarted(GenericContainer.java:926)
Dec 01 08:35:00 at 
org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:480)
Dec 01 08:35:00 ... 33 more
 {code}
 

https://dev.azure.com/apache-flink/apache-flink/_build/results?buildId=43643&view=logs&j=aa18c3f6-13b8-5f58-86bb-c1cffb239496&t=502fb6c0-30a2-5e49-c5c2-a00fa3acb203&l=37366



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


[RESULT][VOTE] Release flink-connector-cassandra, release candidate #1

2022-12-01 Thread Chesnay Schepler

I'm happy to announce that we have unanimously approved this release.

There are 5 approving votes, 3 of which are binding:
* Etienne
* Dawid (binding)
* Martijjn (binding)
* Danny (binding)
* Ryan
There are no disapproving votes.

Thanks everyone!

On 25/11/2022 10:31, Chesnay Schepler wrote:

Hi everyone,
Please review and vote on the release candidate #1 for the version 
3.0.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 C2EED7B111D464BA [3],

* all artifacts to be deployed to the Maven Central Repository [4],
* source code tag v3.0.0-1 [5],
* website pull request listing the new release [6].

The vote will be open for at least 72 hours. It is adopted by majority 
approval, with at least 3 PMC affirmative votes.


This is the first externalized released of the Cassandra connector and 
functionally identical to 1.16.0.



Thanks,
Chesnay

[1] https://issues.apache.org/jira/projects/FLINK/versions/12352593
[2] 
https://dist.apache.org/repos/dist/dev/flink/flink-connector-cassandra-3.0.0-rc1

[3] https://dist.apache.org/repos/dist/release/flink/KEYS
[4] 
https://repository.apache.org/content/repositories/orgapacheflink-1549/
[5] 
https://github.com/apache/flink-connector-cassandra/releases/tag/v3.0.0-1

[6] https://github.com/apache/flink-web/pull/587





[jira] [Created] (FLINK-30263) Introduce schemas table to table store

2022-12-01 Thread Shammon (Jira)
Shammon created FLINK-30263:
---

 Summary: Introduce schemas table to table store
 Key: FLINK-30263
 URL: https://issues.apache.org/jira/browse/FLINK-30263
 Project: Flink
  Issue Type: New Feature
  Components: Table Store
Affects Versions: table-store-0.3.0
Reporter: Shammon


You can query the historical schemas of the table through SQL, for example, 
query the historical schemas of table "T" through the following SQL:

SELECT * FROM T$schemas;



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


Re: [jira] [Created] (FLINK-30238) Unified Sink committer does not clean up state on final savepoint

2022-12-01 Thread Fabian Paul
Yes, the StreamingFileSink is not affected.

Best,
Fabian


[jira] [Created] (FLINK-30264) Set session job status to FAILED if already have retried max attempts

2022-12-01 Thread Xin Hao (Jira)
Xin Hao created FLINK-30264:
---

 Summary: Set session job status to FAILED if already have retried 
max attempts
 Key: FLINK-30264
 URL: https://issues.apache.org/jira/browse/FLINK-30264
 Project: Flink
  Issue Type: Improvement
  Components: Kubernetes Operator
Reporter: Xin Hao


Sometimes, the session job deployment fails because of the user code.

There is nothing the Flink operator can do to fix the failure.

 

So can we add a new reconciliation state *FAILED* and set the status to this if 
the failure still exists after we have retried for the max attempts?

The reconciliation status will continuously be *UPGRADING* currently.



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


Re: [VOTE] FLIP-273: Improve Catalog API to Support ALTER TABLE syntax

2022-12-01 Thread Dong Lin
+1 (binding)

Thanks for the FLIP!

On Thu, Dec 1, 2022 at 12:20 PM Shengkai Fang  wrote:

> Hi All,
>
> Thanks for all the feedback so far. Based on the discussion[1] we seem
> to have a consensus, so I would like to start a vote on FLIP-273.
>
> The vote will last for at least 72 hours (Dec 5th at 13:00 GMT,
> excluding weekend days) unless there is an objection or insufficient votes.
>
> Best,
> Shengkai
>
> [1]
>
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-273%3A+Improve+the+Catalog+API+to+Support+ALTER+TABLE+syntax
> [2] https://lists.apache.org/thread/2v4kh2bpzvk049zdxb687q7o1pcmnnnw
>


Re: [DISCUSS]Introduce a time-segment based restart strategy

2022-12-01 Thread Dong Lin
Hi Gen,

Thanks for the suggestions!

Regarding how to implement the per-region RestartBackoffTimeStrategy as
proposed previously, I think your approach works well.

Here are more details:
- Keep the RestartBackoffTimeStrategy interface API unchanged and only
change its semantics, such that all strategies (e.g. failure rate, fixed
delay, exponential delay) are applied per region.
- Update ExecutionFailureHandler to create one
RestartBackoffTimeStrategy instance for each region.
ExecutionFailureHandler can get the region information from its
SchedulingTopology.
- ExecutionFailureHandler::getFailureHandlingResult() will use the strategy
instance for the given failedTask's region to make the failover decision.

Please see the other comment inline.

Regards,
Dong

On Fri, Nov 25, 2022 at 7:42 PM Gen Luo  wrote:

> Hi all,
>
> Sorry for the late jumping in.
>
> To meet Weihua's need, Dong's proposal seems pretty fine, but the
> modification it requires, I'm afraid, is not really easy.
> RestartBackoffTimeStrategy is quite a simple interface. The strategy even
> doesn't know which task is failing, not to mention the division of pipeline
> regions.
> To distinguish the failure count of each regions, it lacks too much
> information, which is not easy to acquire for the strategy.
> One approch I can figure out is to create different strategy instances to
> different regions. In this way we do not need to modify the strategy but do
> need to modify the schedulers or the ExecutionFailureHandler.
>
> On the other hand, I realize another case that the restart strategy may
> need to be aware of the types and occurrence rate of the exceptions. That
> is to avoid failing over but directly fail the job when some errors happen.
> I know that there's an annotation
> `@ThrowableAnnotation(ThrowableType.NonRecoverableError)` that can fail the
> job, but I'm afraid there can be some scenarios that can not annotate the
> exceptions, or catch and warp with an annotated exception.
>

While this is possible, do you have a concrete use-case that can not use
and catch the annotated exception? It is probably safer to only add a new
strategy (which is a public API) when we are sure we need it :)

In such cases, handling in the restart strategy can be a good choice.
> Such a strategy can even combines with other existing strategies which
> handle the failure rate rather than the cause type.
>
> Besides, given that new strategies may be necessary, and existing
> strategies may also need to enhance, maybe we should make the
> RestartBackoffTimeStrategy a plugin rather than the enumerations, or
> introduce a new custom type strategy which can load customized
> implementations.
> This can not solve the problem immediately, but makes the choice of restart
> strategy more flexiable.
> What do you think about this?
>
> Thanks.
>
> Paul Lam  于 2022年11月21日周一 17:46写道:
>
> > Dong’s proposal LGTM.
> >
> > Best,
> > Paul Lam
> >
> > > 2022年11月19日 10:50,Dong Lin  写道:
> > >
> > > Hey Weihua,
> > >
> > > Thanks for proposing the new strategy!
> > >
> > > If I understand correctly, the main issue is that different failover
> > > regions can be restarted independently, but they share the same counter
> > > when counting the number of failures in an interval. So the number of
> > > failures for a given region is less than what users expect.
> > >
> > > Given that regions can be restarted independently, it might be more
> > usable
> > > and intuitive to count the number of failures for each region when
> > > executing the failover strategy. Thus, instead of adding a new failover
> > > strategy, how about we update the existing failure-rate strategy, and
> > > probably other existing strategies as well, to use the following
> > semantics:
> > >
> > > - For any given region in the job, its number of failures in
> > > failure-rate-interval should not exceed max-failures-per-interval.
> > > Otherwise, the job will fail without being restarted.
> > >
> > > By using this updated semantics, the keyby-connected job will have the
> > same
> > > behavior as the existing Flink when we use failure-rate strategy. For
> > > the rescale-connected
> > > job, in the case you described above, after the TM fails, each of the 3
> > > regions will increment its failure count from 0 to 1, which is still
> less
> > > than max-failures-per-interval. Thus the rescale-connected job can
> > continue
> > > to work.
> > >
> > > This alternative approach can solve the problem without increasing the
> > > complexity of the failover strategy choice. And this approach does not
> > > require us to check whether two exceptions belong to the same root
> cause.
> > > Do you think it can work?
> > >
> > > Thanks,
> > > Dong
> > >
> > >
> > > On Fri, Nov 4, 2022 at 4:46 PM Weihua Hu 
> wrote:
> > >
> > >> Hi, everyone
> > >>
> > >> I'd like to bring up a discussion about restart strategy. Flink
> > supports 3
> > >> kinds of restart strategy. These work very well for jobs with specific
> > >> c

[jira] [Created] (FLINK-30265) Turn on debug logs for k8s operator e2e tests in CI when tests failing

2022-12-01 Thread Gabor Somogyi (Jira)
Gabor Somogyi created FLINK-30265:
-

 Summary: Turn on debug logs for k8s operator e2e tests in CI when 
tests failing
 Key: FLINK-30265
 URL: https://issues.apache.org/jira/browse/FLINK-30265
 Project: Flink
  Issue Type: Bug
  Components: Kubernetes Operator
Reporter: Gabor Somogyi






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


[jira] [Created] (FLINK-30266) Recovery reconciliation loop fails if no checkpoint has been created yet

2022-12-01 Thread Maximilian Michels (Jira)
Maximilian Michels created FLINK-30266:
--

 Summary: Recovery reconciliation loop fails if no checkpoint has 
been created yet
 Key: FLINK-30266
 URL: https://issues.apache.org/jira/browse/FLINK-30266
 Project: Flink
  Issue Type: Bug
  Components: Kubernetes Operator
Affects Versions: kubernetes-operator-1.3.0
Reporter: Maximilian Michels
Assignee: Gyula Fora


When the upgradeMode is LAST-STATE, the operator fails to reconcile a failed 
application unless at least one checkpoint has already been created. The 
expected behavior would be that the job starts with empty state.
{noformat}
2022-12-01 10:58:35,596 o.a.f.k.o.l.AuditUtils [INFO ] [app] >>> Status 
| Error   | UPGRADING   | 
{"type":"org.apache.flink.kubernetes.operator.exception.DeploymentFailedException","message":"HA
 metadata not available to restore from last state. It is possible that the job 
has finished or terminally failed, or the configmaps have been deleted. Manual 
restore 
required.","additionalMetadata":{"reason":"RestoreFailed"},"throwableList":[]} 
{noformat}
{noformat}
2022-12-01 10:44:49,480 i.j.o.p.e.ReconciliationDispatcher [ERROR] [app] Error 
during event processing ExecutionScope{ resource id: ResourceID{name='app', 
namespace='namespace'}, version: 216933301} failed.
org.apache.flink.kubernetes.operator.exception.ReconciliationException: 
java.lang.RuntimeException: This indicates a bug...
at 
org.apache.flink.kubernetes.operator.controller.FlinkDeploymentController.reconcile(FlinkDeploymentController.java:133)
at 
org.apache.flink.kubernetes.operator.controller.FlinkDeploymentController.reconcile(FlinkDeploymentController.java:54)
at 
io.javaoperatorsdk.operator.processing.Controller$1.execute(Controller.java:136)
at 
io.javaoperatorsdk.operator.processing.Controller$1.execute(Controller.java:94)
at 
org.apache.flink.kubernetes.operator.metrics.OperatorJosdkMetrics.timeControllerExecution(OperatorJosdkMetrics.java:80)
at 
io.javaoperatorsdk.operator.processing.Controller.reconcile(Controller.java:93)
at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.reconcileExecution(ReconciliationDispatcher.java:130)
at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleReconcile(ReconciliationDispatcher.java:110)
at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleDispatch(ReconciliationDispatcher.java:81)
at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleExecution(ReconciliationDispatcher.java:54)
at 
io.javaoperatorsdk.operator.processing.event.EventProcessor$ReconcilerExecutor.run(EventProcessor.java:406)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown 
Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown 
Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: This indicates a bug...
at 
org.apache.flink.kubernetes.operator.reconciler.deployment.ApplicationReconciler.deploy(ApplicationReconciler.java:180)
at 
org.apache.flink.kubernetes.operator.reconciler.deployment.ApplicationReconciler.deploy(ApplicationReconciler.java:61)
at 
org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractJobReconciler.restoreJob(AbstractJobReconciler.java:212)
at 
org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractJobReconciler.reconcileSpecChange(AbstractJobReconciler.java:144)
at 
org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractFlinkResourceReconciler.reconcile(AbstractFlinkResourceReconciler.java:167)
at 
org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractFlinkResourceReconciler.reconcile(AbstractFlinkResourceReconciler.java:64)
at 
org.apache.flink.kubernetes.operator.controller.FlinkDeploymentController.reconcile(FlinkDeploymentController.java:123)
... 13 more {noformat}



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


[DISCUSS] Retroactively externalize some connectors for 1.16

2022-12-01 Thread Chesnay Schepler

Hello,

let me clarify the title first.

In the original proposal for the connector externalization we said that 
an externalized connector has to exist in parallel with the version 
shipped in the main Flink release for 1 cycle.


For example, 1.16.0 shipped with the elasticsearch connector, but at the 
same time there's the externalized variant as a drop-in replacement, and 
the 1.17.0 release will not include a ES connector.


The rational was to give users some window to update their projects.


We are now about to externalize a few more connectors (cassandra, 
pulsar, jdbc), targeting 1.16 within the next week.
The 1.16.0 release has now been about a month ago; so it hasn't been a 
lot of time since then.
I'm now wondering if we could/should treat these connectors as 
externalized for 1.16, meaning that we would remove them from the master 
branch now, not ship them in 1.17 and move all further development into 
the connector repos.


The main benefit is that we won't have to bother with syncing changes 
across repos all the time.


We would of course need some sort-of cutoff date for this (December 
9th?), to ensure there's still some reasonably large gap left for users 
to migrate.


Let me know what you think.

Regards,
Chesnay



[jira] [Created] (FLINK-30267) PyFlink YARN per-job on Docker test failed because it could not build hadoop image

2022-12-01 Thread Martijn Visser (Jira)
Martijn Visser created FLINK-30267:
--

 Summary: PyFlink YARN per-job on Docker test failed because it 
could not build hadoop image
 Key: FLINK-30267
 URL: https://issues.apache.org/jira/browse/FLINK-30267
 Project: Flink
  Issue Type: Bug
  Components: Deployment / YARN
Affects Versions: 1.17.0
Reporter: Martijn Visser


{code:java}
Dec 01 15:10:48 E: Unable to locate package net-tools
Dec 01 15:10:48 E: Unable to locate package build-essential
The command '/bin/sh -c set -x && apt-get update && 
DEBIAN_FRONTEND=noninteractive apt-get install -y curl tar sudo 
openssh-server openssh-client rsync unzip krb5-user net-tools build-essential' 
returned a non-zero code: 100
Service 'master' failed to build : Build failed
Dec 01 15:10:48 Command: build_image failed. Retrying...
Dec 01 15:10:50 Command: build_image failed 5 times.
Dec 01 15:10:50 ERROR: Could not build hadoop image. Aborting...
Dec 01 15:10:50 Debugging failed YARN Docker test:
Dec 01 15:10:50 
{code}

https://dev.azure.com/apache-flink/apache-flink/_build/results?buildId=43650&view=logs&j=af184cdd-c6d8-5084-0b69-7e9c67b35f7a&t=160c9ae5-96fd-516e-1c91-deb81f59292a&l=8414



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


Re: [VOTE] FLIP-273: Improve Catalog API to Support ALTER TABLE syntax

2022-12-01 Thread Yaroslav Tkachenko
+1 (non-binding).

Looking forward to it!

On Thu, Dec 1, 2022 at 5:06 AM Dong Lin  wrote:

> +1 (binding)
>
> Thanks for the FLIP!
>
> On Thu, Dec 1, 2022 at 12:20 PM Shengkai Fang  wrote:
>
> > Hi All,
> >
> > Thanks for all the feedback so far. Based on the discussion[1] we seem
> > to have a consensus, so I would like to start a vote on FLIP-273.
> >
> > The vote will last for at least 72 hours (Dec 5th at 13:00 GMT,
> > excluding weekend days) unless there is an objection or insufficient
> votes.
> >
> > Best,
> > Shengkai
> >
> > [1]
> >
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-273%3A+Improve+the+Catalog+API+to+Support+ALTER+TABLE+syntax
> > [2] https://lists.apache.org/thread/2v4kh2bpzvk049zdxb687q7o1pcmnnnw
> >
>


Re: [DISCUSS] Retroactively externalize some connectors for 1.16

2022-12-01 Thread Danny Cranmer
Hello,

+1

I was thinking the same. With regard to the cut off date I would be
inclined to be more aggressive and say feature freeze for 1.17. Users do
not *need* to migrate for 1.16.

Thanks

On Thu, 1 Dec 2022, 15:01 Chesnay Schepler,  wrote:

> Hello,
>
> let me clarify the title first.
>
> In the original proposal for the connector externalization we said that
> an externalized connector has to exist in parallel with the version
> shipped in the main Flink release for 1 cycle.
>
> For example, 1.16.0 shipped with the elasticsearch connector, but at the
> same time there's the externalized variant as a drop-in replacement, and
> the 1.17.0 release will not include a ES connector.
>
> The rational was to give users some window to update their projects.
>
>
> We are now about to externalize a few more connectors (cassandra,
> pulsar, jdbc), targeting 1.16 within the next week.
> The 1.16.0 release has now been about a month ago; so it hasn't been a
> lot of time since then.
> I'm now wondering if we could/should treat these connectors as
> externalized for 1.16, meaning that we would remove them from the master
> branch now, not ship them in 1.17 and move all further development into
> the connector repos.
>
> The main benefit is that we won't have to bother with syncing changes
> across repos all the time.
>
> We would of course need some sort-of cutoff date for this (December
> 9th?), to ensure there's still some reasonably large gap left for users
> to migrate.
>
> Let me know what you think.
>
> Regards,
> Chesnay
>
>


Re: [DISCUSS] Retroactively externalize some connectors for 1.16

2022-12-01 Thread Ferenc Csaky
Hi!

I think this would be a good idea. I was wondering that could we include the 
hbase connector to this group as well? The externalization PR [1] should be in 
a good shape now and Dec 9th as a release date sounds doable.

WDYT?

[1] https://github.com/apache/flink-connector-hbase/pull/2

Best,
F




--- Original Message ---
On Thursday, December 1st, 2022 at 16:01, Chesnay Schepler  
wrote:


> 
> 
> Hello,
> 
> let me clarify the title first.
> 
> In the original proposal for the connector externalization we said that
> an externalized connector has to exist in parallel with the version
> shipped in the main Flink release for 1 cycle.
> 
> For example, 1.16.0 shipped with the elasticsearch connector, but at the
> same time there's the externalized variant as a drop-in replacement, and
> the 1.17.0 release will not include a ES connector.
> 
> The rational was to give users some window to update their projects.
> 
> 
> We are now about to externalize a few more connectors (cassandra,
> pulsar, jdbc), targeting 1.16 within the next week.
> The 1.16.0 release has now been about a month ago; so it hasn't been a
> lot of time since then.
> I'm now wondering if we could/should treat these connectors as
> externalized for 1.16, meaning that we would remove them from the master
> branch now, not ship them in 1.17 and move all further development into
> the connector repos.
> 
> The main benefit is that we won't have to bother with syncing changes
> across repos all the time.
> 
> We would of course need some sort-of cutoff date for this (December
> 9th?), to ensure there's still some reasonably large gap left for users
> to migrate.
> 
> Let me know what you think.
> 
> Regards,
> Chesnay


[VOTE] Release flink-connector-dynamodb v3.0.0, release candidate #0

2022-12-01 Thread Yura Gusev
Hi Danny,
  +1 (non-binding)

- Checked release notes
- Verified hashes & signature
- Build the source with Maven
- Verified tag is present
- Verified web PR
- Verified streaming sink writes to DynamoDB

Best regards, Yuri Gusev

On 2022/11/28 16:42:42 Danny Cranmer wrote:
> Hi everyone,
> Please review and vote on the release candidate #0 for the version 3.0.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 125FD8DB [3],
> * all artifacts to be deployed to the Maven Central Repository [4],
> * source code tag v3.0.0-rc0 [5],
> * website pull request listing the new release [6].
>
> The vote will be open for at least 72 hours (Thursday 1st December 17:00
> UTC). It is adopted by majority approval, with at least 3 PMC affirmative
> votes.
>
> Please note, this is a new connector and the first release.
>
> Thanks,
> Danny
>
> [1]
>
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&version=12352277
> [2]
> https://dist.apache.org/repos/dist/dev/flink/flink-connector-aws-3.0.0-rc0
> [3] https://dist.apache.org/repos/dist/release/flink/KEYS
> [4]
https://repository.apache.org/content/repositories/orgapacheflink-1552/
> [5] https://github.com/apache/flink-connector-aws/releases/tag/v3.0.0-rc0
> [6] https://github.com/apache/flink-web/pull/588
>


[jira] [Created] (FLINK-30268) HA metadata and other cluster submission related errors should not throw DeploymentFailedException

2022-12-01 Thread Gyula Fora (Jira)
Gyula Fora created FLINK-30268:
--

 Summary: HA metadata and other cluster submission related errors 
should not throw DeploymentFailedException
 Key: FLINK-30268
 URL: https://issues.apache.org/jira/browse/FLINK-30268
 Project: Flink
  Issue Type: Improvement
  Components: Kubernetes Operator
Reporter: Gyula Fora
Assignee: Peter Vary
 Fix For: kubernetes-operator-1.3.0


Currently most critical cluster submission errors , and checks that validate HA 
metadata before deployment, end up throwing DeploymentFailedException.

This causes the operator to go into a weird state and actually hide the error 
in subsequent loops:


{noformat}
flink-kubernetes-operator 2022-12-01 21:55:03,978 o.a.f.k.o.l.AuditUtils        
 [INFO ][default/basic-checkpoint-ha-example] >>> Status | Info    | UPGRADING  
     | The resource is being upgraded 
flink-kubernetes-operator 2022-12-01 21:55:03,992 o.a.f.k.o.l.AuditUtils        
 [INFO ][default/basic-checkpoint-ha-example] >>> Event  | Info    | SUBMIT     
     | Starting deployment
flink-kubernetes-operator 2022-12-01 21:55:03,992 
o.a.f.k.o.s.AbstractFlinkService [INFO ][default/basic-checkpoint-ha-example] 
Deploying application cluster requiring last-state from HA metadata
flink-kubernetes-operator 2022-12-01 21:55:03,997 
o.a.f.k.o.c.FlinkDeploymentController 
[ERROR][default/basic-checkpoint-ha-example] Flink Deployment failed
flink-kubernetes-operator 
org.apache.flink.kubernetes.operator.exception.DeploymentFailedException: HA 
metadata not available to restore from last state. It is possible that the job 
has finished or terminally failed, or the configmaps have been deleted. Manual 
restore required.
flink-kubernetes-operator     at 
org.apache.flink.kubernetes.operator.service.AbstractFlinkService.validateHaMetadataExists(AbstractFlinkService.java:844)
flink-kubernetes-operator     at 
org.apache.flink.kubernetes.operator.service.AbstractFlinkService.submitApplicationCluster(AbstractFlinkService.java:177)
flink-kubernetes-operator     at 
org.apache.flink.kubernetes.operator.reconciler.deployment.ApplicationReconciler.deploy(ApplicationReconciler.java:195)
flink-kubernetes-operator     at 
org.apache.flink.kubernetes.operator.reconciler.deployment.ApplicationReconciler.deploy(ApplicationReconciler.java:60)
flink-kubernetes-operator     at 
org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractJobReconciler.restoreJob(AbstractJobReconciler.java:210)
flink-kubernetes-operator     at 
org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractJobReconciler.reconcileSpecChange(AbstractJobReconciler.java:142)
flink-kubernetes-operator     at 
org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractFlinkResourceReconciler.reconcile(AbstractFlinkResourceReconciler.java:161)
flink-kubernetes-operator     at 
org.apache.flink.kubernetes.operator.reconciler.deployment.AbstractFlinkResourceReconciler.reconcile(AbstractFlinkResourceReconciler.java:62)
flink-kubernetes-operator     at 
org.apache.flink.kubernetes.operator.controller.FlinkDeploymentController.reconcile(FlinkDeploymentController.java:123)
flink-kubernetes-operator     at 
org.apache.flink.kubernetes.operator.controller.FlinkDeploymentController.reconcile(FlinkDeploymentController.java:54)
flink-kubernetes-operator     at 
io.javaoperatorsdk.operator.processing.Controller$1.execute(Controller.java:136)
flink-kubernetes-operator     at 
io.javaoperatorsdk.operator.processing.Controller$1.execute(Controller.java:94)
flink-kubernetes-operator     at 
org.apache.flink.kubernetes.operator.metrics.OperatorJosdkMetrics.timeControllerExecution(OperatorJosdkMetrics.java:80)
flink-kubernetes-operator     at 
io.javaoperatorsdk.operator.processing.Controller.reconcile(Controller.java:93)
flink-kubernetes-operator     at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.reconcileExecution(ReconciliationDispatcher.java:130)
flink-kubernetes-operator     at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleReconcile(ReconciliationDispatcher.java:110)
flink-kubernetes-operator     at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleDispatch(ReconciliationDispatcher.java:81)
flink-kubernetes-operator     at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleExecution(ReconciliationDispatcher.java:54)
flink-kubernetes-operator     at 
io.javaoperatorsdk.operator.processing.event.EventProcessor$ReconcilerExecutor.run(EventProcessor.java:406)
flink-kubernetes-operator     at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
flink-kubernetes-operator     at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
flink-kubernetes-operator     at java.base/java.lang.Thread.run(Unknown Source)
flink-kubernetes-operat

RE: [VOTE] Release flink-connector-dynamodb v3.0.0, release candidate #0

2022-12-01 Thread Yura Gusev
Hi Danny, +1 (non-binding)

- Checked release notes
- Verified hashes & signature
- Build the source with Maven
- Verified tag is present
- Verified web PR
- Verified streaming sink writes to DynamoDB

Best regards, Yuri Gusev

On 2022/11/28 16:42:42 Danny Cranmer wrote:
> Hi everyone,
> Please review and vote on the release candidate #0 for the version 3.0.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 125FD8DB [3],
> * all artifacts to be deployed to the Maven Central Repository [4],
> * source code tag v3.0.0-rc0 [5],
> * website pull request listing the new release [6].
>
> The vote will be open for at least 72 hours (Thursday 1st December 17:00
> UTC). It is adopted by majority approval, with at least 3 PMC affirmative
> votes.
>
> Please note, this is a new connector and the first release.
>
> Thanks,
> Danny
>
> [1]
>
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&version=12352277
> [2]
> https://dist.apache.org/repos/dist/dev/flink/flink-connector-aws-3.0.0-rc0
> [3] https://dist.apache.org/repos/dist/release/flink/KEYS
> [4]
https://repository.apache.org/content/repositories/orgapacheflink-1552/
> [5] https://github.com/apache/flink-connector-aws/releases/tag/v3.0.0-rc0
> [6] https://github.com/apache/flink-web/pull/588
>


Re: [DISCUSS] assign SQL Table properties from environment variables

2022-12-01 Thread Ferenc Csaky
Hello devs,

I'd like to revive this discussion. There is also a ticket about this effort 
for some time [1] and this thing also affects us as well. Right now we have a 
custom solution that is similar to "environment variables", but it only can be 
used in parts of our downstream product. The main thing for us to achieve would 
be to be able to use variables in DDLs (not necessarily for hiding sensitive 
props). I think it would be really handy to have the ability to reuse values in 
multiple tables.

With that said, comes the temptation to hit two birds with one stone, although 
a sensitive property requires much more care than a regular one, so I think 
these two things should be handled separately. At least in the beginning. The 
tricky part of the "environment variables" are their scope, and if they are not 
coming from an external system, it will probably be necessary to persist them. 
Or keep them in memory, but that may be insufficient according to what is the 
scope of the "environment variables".

Considering the sensitive props, I think a small step forward could be to hide 
the values in case of a "SHOW CREATE TABLE" op.

For a varible to be used in a DDL I'd imagine it could apply for a whole 
catalog as starters. As long as the catalog is present, those variables would 
be valid.

I did not check implementation details yet, so it is possible I'm missing 
something important or wrong in some places, but I wanted to get some feedback 
about the idea.

WDYT?

[1] https://issues.apache.org/jira/browse/FLINK-28028

Best,
F


--- Original Message ---
On Monday, April 4th, 2022 at 09:53, Timo Walther  wrote:


> 
> 
> Hi Fred,
> 
> thanks for starting this discussion. I totally agree that this an issue
> that the community should solve. It popped up before and is still
> unsolved today. Great that you offer your help here. So let's clarify
> the implementation details.
> 
> 1) Global vs. Local solution
> 
> Is this a DDL-only problem? If yes, it would be easier to solve it in
> the `FactoryUtil` that all Flink connectors and formats use.
> 
> 2) Configruation vs. enviornment variables
> 
> I agree with Qingsheng that environment variable are not always
> straightforward to identify if you have a "pre-flight phase" and a
> "cluster phase".
> In the DynamicTableFactory, one has access to Flink configuration and
> could resolve `${...}` variables.
> 
> 
> What do you think?
> 
> Regards,
> Timo
> 
> 
> Am 01.04.22 um 12:26 schrieb Qingsheng Ren:
> 
> > Hi Fred,
> > 
> > Thanks for raising the discussion! I think the definition of “environment 
> > variable” varies under different context. Under Flink on K8s it means the 
> > environment variable for a container, and if you are a SQL client user it 
> > could refer to environment variable of SQL client, or even the system 
> > properties on JVM. So using “environment variable” is a bit vague under 
> > different environments.
> > 
> > A more generic solution in my mind is that we can take advantage of 
> > configurations in Flink, to pass table options dynamically by adding 
> > configs to TableConfig or even flink-conf.yaml. For example option 
> > “table.dynamic.options.my_catalog.my_db_.my_table.accessId = foo” means 
> > adding table option “accessId = foo” to table “my_catalog.my_db.my_table”. 
> > By this way we could de-couple DDL statement with table options containing 
> > secret credentials. What do you think?
> > 
> > Best regards,
> > 
> > Qingsheng
> > 
> > > On Mar 30, 2022, at 16:25, Teunissen, F.G.J. (Fred) 
> > > fred.teunis...@ing.com.INVALID wrote:
> > > 
> > > Hi devs,
> > > 
> > > Some SQL Table properties contain sensitive data, like passwords that we 
> > > do not want to expose in the VVP ui to other users. Also, having them 
> > > clear text in a SQL statement is not secure. For example,
> > > 
> > > CREATE TABLE Orders (
> > > `user` BIGINT,
> > > product STRING,
> > > order_time TIMESTAMP(3)
> > > ) WITH (
> > > 'connector' = 'kafka',
> > > 
> > > 'properties.bootstrap.servers' = 'kafka-host-1:9093,kafka-host-2:9093',
> > > 'properties.security.protocol' = 'SSL',
> > > 'properties.ssl.key.password' = 'should-be-a-secret',
> > > 'properties.ssl.keystore.location' = '/tmp/secrets/my-keystore.jks',
> > > 'properties.ssl.keystore.password' = 'should-also-be-a-secret',
> > > 'properties.ssl.truststore.location' = '/tmp/secrets/my-truststore.jks',
> > > 'properties.ssl.truststore.password' = 'should-again-be-a-secret',
> > > 'scan.startup.mode' = 'earliest-offset'
> > > );
> > > 
> > > I would like to bring up for a discussion a proposal to provide these 
> > > secrets values via environment variables since these can be populated 
> > > from a K8s configMap or secrets.
> > > 
> > > For implementing the SQL Table properties, the ConfigOption class is 
> > > used in connectors and formatters. This class could be extended that it 
> > > checks whether the config-value contains certain tokens, like 
> > > ‘${env-var-name}’. If i

Re: [DISCUSS] Retroactively externalize some connectors for 1.16

2022-12-01 Thread Dong Lin
Hello Chesney,

The overall plan sounds good! Just to double check, is Dec 9th the proposed
cutoff date for the release of those externalized connectors?

Also, will we reserve time for users to verify that the drop-in replacement
from Flink 1.16 to those externalized connectors can work as expected
before removing their code from the master branch?

Thanks,
Dong


On Thu, Dec 1, 2022 at 11:01 PM Chesnay Schepler  wrote:

> Hello,
>
> let me clarify the title first.
>
> In the original proposal for the connector externalization we said that
> an externalized connector has to exist in parallel with the version
> shipped in the main Flink release for 1 cycle.
>
> For example, 1.16.0 shipped with the elasticsearch connector, but at the
> same time there's the externalized variant as a drop-in replacement, and
> the 1.17.0 release will not include a ES connector.
>
> The rational was to give users some window to update their projects.
>
>
> We are now about to externalize a few more connectors (cassandra,
> pulsar, jdbc), targeting 1.16 within the next week.
> The 1.16.0 release has now been about a month ago; so it hasn't been a
> lot of time since then.
> I'm now wondering if we could/should treat these connectors as
> externalized for 1.16, meaning that we would remove them from the master
> branch now, not ship them in 1.17 and move all further development into
> the connector repos.
>
> The main benefit is that we won't have to bother with syncing changes
> across repos all the time.
>
> We would of course need some sort-of cutoff date for this (December
> 9th?), to ensure there's still some reasonably large gap left for users
> to migrate.
>
> Let me know what you think.
>
> Regards,
> Chesnay
>
>


Re: [VOTE] FLIP-273: Improve Catalog API to Support ALTER TABLE syntax

2022-12-01 Thread yuxia
+1 (non-binding)

Best regards,
Yuxia

- 原始邮件 -
发件人: "Yaroslav Tkachenko" 
收件人: "dev" 
发送时间: 星期五, 2022年 12 月 02日 上午 12:27:24
主题: Re: [VOTE] FLIP-273: Improve Catalog API to Support ALTER TABLE syntax

+1 (non-binding).

Looking forward to it!

On Thu, Dec 1, 2022 at 5:06 AM Dong Lin  wrote:

> +1 (binding)
>
> Thanks for the FLIP!
>
> On Thu, Dec 1, 2022 at 12:20 PM Shengkai Fang  wrote:
>
> > Hi All,
> >
> > Thanks for all the feedback so far. Based on the discussion[1] we seem
> > to have a consensus, so I would like to start a vote on FLIP-273.
> >
> > The vote will last for at least 72 hours (Dec 5th at 13:00 GMT,
> > excluding weekend days) unless there is an objection or insufficient
> votes.
> >
> > Best,
> > Shengkai
> >
> > [1]
> >
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-273%3A+Improve+the+Catalog+API+to+Support+ALTER+TABLE+syntax
> > [2] https://lists.apache.org/thread/2v4kh2bpzvk049zdxb687q7o1pcmnnnw
> >
>


Re: [VOTE] FLIP-273: Improve Catalog API to Support ALTER TABLE syntax

2022-12-01 Thread Paul Lam
+1 (non-binding)

Best,
Paul Lam

> 2022年12月2日 09:17,yuxia  写道:
> 
> +1 (non-binding)
> 
> Best regards,
> Yuxia
> 
> - 原始邮件 -
> 发件人: "Yaroslav Tkachenko" 
> 收件人: "dev" 
> 发送时间: 星期五, 2022年 12 月 02日 上午 12:27:24
> 主题: Re: [VOTE] FLIP-273: Improve Catalog API to Support ALTER TABLE syntax
> 
> +1 (non-binding).
> 
> Looking forward to it!
> 
> On Thu, Dec 1, 2022 at 5:06 AM Dong Lin  wrote:
> 
>> +1 (binding)
>> 
>> Thanks for the FLIP!
>> 
>> On Thu, Dec 1, 2022 at 12:20 PM Shengkai Fang  wrote:
>> 
>>> Hi All,
>>> 
>>> Thanks for all the feedback so far. Based on the discussion[1] we seem
>>> to have a consensus, so I would like to start a vote on FLIP-273.
>>> 
>>> The vote will last for at least 72 hours (Dec 5th at 13:00 GMT,
>>> excluding weekend days) unless there is an objection or insufficient
>> votes.
>>> 
>>> Best,
>>> Shengkai
>>> 
>>> [1]
>>> 
>>> 
>> https://cwiki.apache.org/confluence/display/FLINK/FLIP-273%3A+Improve+the+Catalog+API+to+Support+ALTER+TABLE+syntax
>>> [2] https://lists.apache.org/thread/2v4kh2bpzvk049zdxb687q7o1pcmnnnw
>>> 
>> 



[jira] [Created] (FLINK-30269) Validate table name for metadata table

2022-12-01 Thread Shammon (Jira)
Shammon created FLINK-30269:
---

 Summary: Validate table name for metadata table
 Key: FLINK-30269
 URL: https://issues.apache.org/jira/browse/FLINK-30269
 Project: Flink
  Issue Type: Sub-task
  Components: Table Store
Affects Versions: table-store-0.3.0
Reporter: Shammon


Currently user can create tables `tablename` and `tablename$snapshots`, but 
can't insert into values into `tablename$snapshots` and execute query on it. 

At the same time, user can create table `tablename$aaa$bbb`, but cannot execute 
query on it and event cannot drop it.



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


[jira] [Created] (FLINK-30270) FlinkJoinToMultiJoinRule incorrectly combines Left/Right outer join to MultiJoin

2022-12-01 Thread Yunhong Zheng (Jira)
Yunhong Zheng created FLINK-30270:
-

 Summary: FlinkJoinToMultiJoinRule incorrectly combines Left/Right 
outer join to MultiJoin
 Key: FLINK-30270
 URL: https://issues.apache.org/jira/browse/FLINK-30270
 Project: Flink
  Issue Type: Bug
  Components: Table SQL / Planner
Affects Versions: 1.16.0
Reporter: Yunhong Zheng
 Fix For: 1.17.0


FlinkJoinToMultiJoinRule incorrectly combines Left/Right outer join to 
MultiJoin.  In some complex cases, it need to consider join conditions, 



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


[jira] [Created] (FLINK-30271) Introduce Table.copy from dynamic options

2022-12-01 Thread Jingsong Lee (Jira)
Jingsong Lee created FLINK-30271:


 Summary: Introduce Table.copy from dynamic options
 Key: FLINK-30271
 URL: https://issues.apache.org/jira/browse/FLINK-30271
 Project: Flink
  Issue Type: Improvement
  Components: Table Store
Reporter: Jingsong Lee
Assignee: Jingsong Lee
 Fix For: table-store-0.3.0


At present, our processing of dynamic options is relatively independent. In 
FileStoreTableFactory, this is not conducive to other engines configuring 
dynamic options.

We should propose an interface on the Table, and dynamic options can be 
configured at any time.



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


[jira] [Created] (FLINK-30272) Introduce a Predicate Visitor

2022-12-01 Thread Jingsong Lee (Jira)
Jingsong Lee created FLINK-30272:


 Summary: Introduce a Predicate Visitor
 Key: FLINK-30272
 URL: https://issues.apache.org/jira/browse/FLINK-30272
 Project: Flink
  Issue Type: Improvement
  Components: Table Store
Reporter: Jingsong Lee
Assignee: Jingsong Lee
 Fix For: table-store-0.3.0


At present, predicate is traversed in many places. We need a visitor mode, 
which can better traverse Predicate.



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