[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2024-07-10 Thread Weijie Guo (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Weijie Guo updated FLINK-13910:
---
Fix Version/s: 2.0.0
   (was: 1.20.0)

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Minor
>  Labels: auto-deprioritized-major, auto-unassigned, 
> pull-request-available
> Fix For: 2.0.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



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


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2024-03-14 Thread lincoln lee (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

lincoln lee updated FLINK-13910:

Fix Version/s: 1.20.0
   (was: 1.19.0)

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Minor
>  Labels: auto-deprioritized-major, auto-unassigned, 
> pull-request-available
> Fix For: 1.20.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



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


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2023-10-13 Thread Jing Ge (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jing Ge updated FLINK-13910:

Fix Version/s: 1.19.0
   (was: 1.18.0)

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Minor
>  Labels: auto-deprioritized-major, auto-unassigned, 
> pull-request-available
> Fix For: 1.19.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



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


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2023-03-23 Thread Xintong Song (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xintong Song updated FLINK-13910:
-
Fix Version/s: 1.18.0
   (was: 1.17.0)

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Minor
>  Labels: auto-deprioritized-major, auto-unassigned, 
> pull-request-available
> Fix For: 1.18.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



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


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2022-09-18 Thread Xingbo Huang (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xingbo Huang updated FLINK-13910:
-
Fix Version/s: 1.17.0
   (was: 1.16.0)

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Minor
>  Labels: auto-deprioritized-major, auto-unassigned, 
> pull-request-available
> Fix For: 1.17.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



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


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2022-04-13 Thread Yun Gao (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yun Gao updated FLINK-13910:

Fix Version/s: 1.16.0
   (was: 1.15.0)

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Minor
>  Labels: auto-deprioritized-major, auto-unassigned, 
> pull-request-available
> Fix For: 1.16.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2022-01-10 Thread Thomas Weise (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas Weise updated FLINK-13910:
-
Fix Version/s: (was: 1.14.3)

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Minor
>  Labels: auto-deprioritized-major, auto-unassigned, 
> pull-request-available
> Fix For: 1.15.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2021-09-28 Thread Xintong Song (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xintong Song updated FLINK-13910:
-
Fix Version/s: (was: 1.14.0)
   1.14.1
   1.15.0

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Minor
>  Labels: auto-deprioritized-major, auto-unassigned, 
> pull-request-available
> Fix For: 1.15.0, 1.14.1
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2021-06-14 Thread Flink Jira Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Flink Jira Bot updated FLINK-13910:
---
  Labels: auto-deprioritized-major auto-unassigned pull-request-available  
(was: auto-unassigned pull-request-available stale-major)
Priority: Minor  (was: Major)

This issue was labeled "stale-major" 7 ago and has not received any updates so 
it is being deprioritized. If this ticket is actually Major, please raise the 
priority and ask a committer to assign you the issue or revive the public 
discussion.


> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Minor
>  Labels: auto-deprioritized-major, auto-unassigned, 
> pull-request-available
> Fix For: 1.14.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore 

[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2021-06-06 Thread Flink Jira Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Flink Jira Bot updated FLINK-13910:
---
Labels: auto-unassigned pull-request-available stale-major  (was: 
auto-unassigned pull-request-available)

I am the [Flink Jira Bot|https://github.com/apache/flink-jira-bot/] and I help 
the community manage its development. I see this issues has been marked as 
Major but is unassigned and neither itself nor its Sub-Tasks have been updated 
for 30 days. I have gone ahead and added a "stale-major" to the issue". If this 
ticket is a Major, please either assign yourself or give an update. Afterwards, 
please remove the label or in 7 days the issue will be deprioritized.


> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Major
>  Labels: auto-unassigned, pull-request-available, stale-major
> Fix For: 1.14.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> 

[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2021-04-29 Thread Dawid Wysakowicz (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dawid Wysakowicz updated FLINK-13910:
-
Fix Version/s: (was: 1.13.0)
   1.14.0

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Major
>  Labels: auto-unassigned, pull-request-available
> Fix For: 1.14.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2021-04-27 Thread Flink Jira Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Flink Jira Bot updated FLINK-13910:
---
Labels: auto-unassigned pull-request-available  (was: 
pull-request-available stale-assigned)

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Assignee: Yun Tang
>Priority: Major
>  Labels: auto-unassigned, pull-request-available
> Fix For: 1.13.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2021-04-16 Thread Flink Jira Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Flink Jira Bot updated FLINK-13910:
---
Labels: pull-request-available stale-assigned  (was: pull-request-available)

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Assignee: Yun Tang
>Priority: Major
>  Labels: pull-request-available, stale-assigned
> Fix For: 1.13.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2020-12-07 Thread Robert Metzger (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Metzger updated FLINK-13910:
---
Fix Version/s: (was: 1.12.0)
   1.13.0

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Assignee: Yun Tang
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.13.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2020-04-06 Thread Aljoscha Krettek (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aljoscha Krettek updated FLINK-13910:
-
Priority: Major  (was: Critical)

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Assignee: Yun Tang
>Priority: Major
>  Labels: pull-request-available
> Fix For: 1.11.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2019-12-22 Thread Yun Tang (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yun Tang updated FLINK-13910:
-
Attachment: classes-without-uid-per-module

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Assignee: Yun Tang
>Priority: Critical
>  Labels: pull-request-available
> Fix For: 1.11.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> classes-without-uid-per-module, serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2019-12-22 Thread Yun Tang (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yun Tang updated FLINK-13910:
-
Fix Version/s: (was: 1.9.2)
   (was: 1.10.0)
   1.11.0

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Assignee: Yun Tang
>Priority: Critical
>  Labels: pull-request-available
> Fix For: 1.11.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2019-12-19 Thread Yun Tang (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yun Tang updated FLINK-13910:
-
Attachment: serializable-classes-without-uid-5249249

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Assignee: Yun Tang
>Priority: Critical
>  Labels: pull-request-available
> Fix For: 1.9.2, 1.10.0
>
> Attachments: SerializableNoSerialVersionUIDField, 
> serializable-classes-without-uid-5249249
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2019-12-17 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-13910:
---
Labels: pull-request-available  (was: )

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Assignee: Yun Tang
>Priority: Critical
>  Labels: pull-request-available
> Fix For: 1.9.2, 1.10.0
>
> Attachments: SerializableNoSerialVersionUIDField
>
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2019-09-28 Thread Jark Wu (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jark Wu updated FLINK-13910:

Fix Version/s: (was: 1.9.1)
   1.9.2

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Critical
> Fix For: 1.10.0, 1.9.2
>
> Attachments: SerializableNoSerialVersionUIDField
>
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2019-08-30 Thread Yun Tang (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yun Tang updated FLINK-13910:
-
Component/s: API / Type Serialization System

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>  Components: API / Type Serialization System
>Reporter: Yun Tang
>Priority: Critical
> Fix For: 1.10.0, 1.9.1
>
> Attachments: SerializableNoSerialVersionUIDField
>
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)


[jira] [Updated] (FLINK-13910) Many serializable classes have no explicit 'serialVersionUID'

2019-08-30 Thread Yun Tang (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-13910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yun Tang updated FLINK-13910:
-
Fix Version/s: 1.9.1
   1.10.0

> Many serializable classes have no explicit 'serialVersionUID'
> -
>
> Key: FLINK-13910
> URL: https://issues.apache.org/jira/browse/FLINK-13910
> Project: Flink
>  Issue Type: Bug
>Reporter: Yun Tang
>Priority: Critical
> Fix For: 1.10.0, 1.9.1
>
> Attachments: SerializableNoSerialVersionUIDField
>
>
> Currently, many serializable classes in Flink have no explicit 
> 'serialVersionUID'. As [official 
> doc|https://flink.apache.org/contributing/code-style-and-quality-java.html#java-serialization]
>  said, {{Serializable classes must define a Serial Version UID}}. 
> No 'serialVersionUID' would cause compatibility problem. Take 
> {{TwoPhaseCommitSinkFunction}} for example, since no explicit 
> 'serialVersionUID' defined, after 
> [FLINK-10455|https://github.com/apache/flink/commit/489be82a6d93057ed4a3f9bf38ef50d01d11d96b]
>  introduced, its default 'serialVersionUID' has changed from 
> "4584405056408828651" to "4064406918549730832". In other words, if we submit 
> a job from Flink-1.6.3 local home to remote Flink-1.6.2 cluster with the 
> usage of {{TwoPhaseCommitSinkFunction}}, we would get exception like:
> {code:java}
> org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot 
> instantiate user function.
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:239)
> at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.(OperatorChain.java:104)
> at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:267)
> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.io.InvalidClassException: 
> org.apache.flink.streaming.api.functions.sink.TwoPhaseCommitSinkFunction; 
> local class incompatible: stream classdesc serialVersionUID = 
> 4584405056408828651, local class serialVersionUID = 4064406918549730832
> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
> at 
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:537)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:524)
> at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:512)
> at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:473)
> at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperator(StreamConfig.java:224)
> ... 4 more
> {code}
> Similar problems existed in  
> {{org.apache.flink.streaming.api.operators.SimpleOperatorFactory}} which has 
> different 'serialVersionUID' from release-1.9 and current master branch.
> IMO, we might have two options to fix this bug:
> # Add explicit serialVersionUID for those classes which is identical to 
> latest Flink-1.9.0 release code.
> # Use similar mechanism like {{FailureTolerantObjectInputStream}} in 
> {{InstantiationUtil}} to ignore serialVersionUID mismatch.
> I have collected all production classes without serialVersionUID from latest 
> master branch in the attachment, which counts to 639 classes.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)