[ https://issues.apache.org/jira/browse/FLINK-8876?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16387708#comment-16387708 ]
ASF GitHub Bot commented on FLINK-8876: --------------------------------------- Github user zentol commented on the issue: https://github.com/apache/flink/pull/5645 We got a bunch of failing tests: ``` Failed tests: MultidimensionalArraySerializerTest.testObjectArrays:84 Exception in test: Serializer already accessed by thread main PojoGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testBeanStyleObjects:95->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main PojoGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testCompositeObject:75->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main PojoGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testNestedInterfaces:124->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main PojoGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testNestedObjects:85->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main PojoGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testSimpleTypesObjects:64->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main PojoSubclassSerializerTest>SerializerTestBase.testSerializedCopyAsSequence:402 Exception in test: Serializer already accessed by thread main PojoSubclassSerializerTest>SerializerTestBase.testSerializedCopyIndividually:364 Exception in test: Serializer already accessed by thread main SubclassFromInterfaceSerializerTest>SerializerTestBase.testSerializedCopyAsSequence:402 Exception in test: Serializer already accessed by thread main SubclassFromInterfaceSerializerTest>SerializerTestBase.testSerializedCopyIndividually:364 Exception in test: Serializer already accessed by thread main TupleSerializerTest.testTuple5CustomObjects:215->runTests:229 Exception in test: Serializer already accessed by thread main KryoGenericArraySerializerTest>AbstractGenericArraySerializerTest.testBeanStyleObjects:120->AbstractGenericArraySerializerTest.runTests:152->AbstractGenericArraySerializerTest.runTests:173 Exception in test: Serializer already accessed by thread main KryoGenericArraySerializerTest>AbstractGenericArraySerializerTest.testCompositeObject:93->AbstractGenericArraySerializerTest.runTests:152->AbstractGenericArraySerializerTest.runTests:173 Exception in test: Serializer already accessed by thread main KryoGenericArraySerializerTest>AbstractGenericArraySerializerTest.testNestedObjects:103->AbstractGenericArraySerializerTest.runTests:152->AbstractGenericArraySerializerTest.runTests:173 Exception in test: Serializer already accessed by thread main KryoGenericArraySerializerTest>AbstractGenericArraySerializerTest.testSimpleTypesObjects:82->AbstractGenericArraySerializerTest.runTests:152->AbstractGenericArraySerializerTest.runTests:173 Exception in test: Serializer already accessed by thread main KryoGenericArraySerializerTest>AbstractGenericArraySerializerTest.testString:63->AbstractGenericArraySerializerTest.runTests:152->AbstractGenericArraySerializerTest.runTests:173 Exception in test: Serializer already accessed by thread main KryoGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testBeanStyleObjects:95->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testCompositeObject:75->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoGenericTypeSerializerTest.testJavaDequeue:68->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoGenericTypeSerializerTest.testJavaList:50->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoGenericTypeSerializerTest.testJavaSet:59->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testNestedInterfaces:124->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testNestedObjects:85->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testSimpleTypesObjects:64->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testString:41->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoSerializerClassLoadingTest>SerializerTestBase.testSerializedCopyAsSequence:402 Exception in test: Serializer already accessed by thread main KryoSerializerClassLoadingTest>SerializerTestBase.testSerializedCopyIndividually:364 Exception in test: Serializer already accessed by thread main KryoWithCustomSerializersTest>AbstractGenericTypeSerializerTest.testBeanStyleObjects:95->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoWithCustomSerializersTest>AbstractGenericTypeSerializerTest.testCompositeObject:75->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoWithCustomSerializersTest.testJodaTime:48->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoWithCustomSerializersTest>AbstractGenericTypeSerializerTest.testNestedInterfaces:124->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoWithCustomSerializersTest>AbstractGenericTypeSerializerTest.testNestedObjects:85->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoWithCustomSerializersTest>AbstractGenericTypeSerializerTest.testSimpleTypesObjects:64->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main KryoWithCustomSerializersTest>AbstractGenericTypeSerializerTest.testString:41->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main ``` ``` Failed tests: AvroGenericArraySerializerTest>AbstractGenericArraySerializerTest.testBeanStyleObjects:120->AbstractGenericArraySerializerTest.runTests:152->AbstractGenericArraySerializerTest.runTests:173 Exception in test: Serializer already accessed by thread main AvroGenericArraySerializerTest>AbstractGenericArraySerializerTest.testCompositeObject:93->AbstractGenericArraySerializerTest.runTests:152->AbstractGenericArraySerializerTest.runTests:173 Exception in test: Serializer already accessed by thread main AvroGenericArraySerializerTest>AbstractGenericArraySerializerTest.testNestedObjects:103->AbstractGenericArraySerializerTest.runTests:152->AbstractGenericArraySerializerTest.runTests:173 Exception in test: Serializer already accessed by thread main AvroGenericArraySerializerTest>AbstractGenericArraySerializerTest.testSimpleTypesObjects:82->AbstractGenericArraySerializerTest.runTests:152->AbstractGenericArraySerializerTest.runTests:173 Exception in test: Serializer already accessed by thread main AvroGenericArraySerializerTest>AbstractGenericArraySerializerTest.testString:63->AbstractGenericArraySerializerTest.runTests:152->AbstractGenericArraySerializerTest.runTests:173 Exception in test: Serializer already accessed by thread main AvroGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testBeanStyleObjects:95->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main AvroGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testCompositeObject:75->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main AvroGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testNestedInterfaces:124->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main AvroGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testNestedObjects:85->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main AvroGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testSimpleTypesObjects:64->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main AvroGenericTypeSerializerTest>AbstractGenericTypeSerializerTest.testString:41->AbstractGenericTypeSerializerTest.runTests:155 Exception in test: Serializer already accessed by thread main AvroSerializerEmptyArrayTest.testBookSerialization:42 Exception in test: Serializer already accessed by thread main AvroSerializerEmptyArrayTest.testSerialization:67 Exception in test: Serializer already accessed by thread main AvroSerializerTest>SerializerTestBase.testSerializedCopyAsSequence:402 Exception in test: Serializer already accessed by thread main AvroSerializerTest>SerializerTestBase.testSerializedCopyIndividually:364 Exception in test: Serializer already accessed by thread main ``` The changes itself look(ed) good to me, but we'll have to check whether the tests do something wrong or the code in the PR uses wrong assumptions. I've verified manually that the `CONCURRENT_ACCESS_CHECK` setup works properly outside of tests. I'm wondering whether we can test this as well in `flink-end-to-end-tests`. > Improve concurrent access handling in stateful serializers > ---------------------------------------------------------- > > Key: FLINK-8876 > URL: https://issues.apache.org/jira/browse/FLINK-8876 > Project: Flink > Issue Type: Improvement > Components: Core > Reporter: Stephan Ewen > Assignee: Stephan Ewen > Priority: Major > Fix For: 1.5.0, 1.6.0 > > > Some stateful serializers produce incorrect results when accidentally > accessed by multiple threads concurrently. > To better catch these cases, I suggest to add concurrency checks that are > active only when debug logging is enabled, and during test runs. > This is inspired by Kryo's checks for concurrent access. -- This message was sent by Atlassian JIRA (v7.6.3#76005)