[
https://issues.apache.org/jira/browse/BEAM-13782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17524455#comment-17524455
]
Beam JIRA Bot commented on BEAM-13782:
--------------------------------------
This issue was marked "stale-P2" and has not received a public comment in 14
days. It is now automatically moved to P3. If you are still affected by it, you
can comment and move it back to P2.
> NullPointerException in use of avro deserialization context due to improper
> concurrent use
> ------------------------------------------------------------------------------------------
>
> Key: BEAM-13782
> URL: https://issues.apache.org/jira/browse/BEAM-13782
> Project: Beam
> Issue Type: Bug
> Components: sdk-java-core
> Affects Versions: 2.35.0
> Reporter: Kellen Dye
> Priority: P3
> Time Spent: 40m
> Remaining Estimate: 0h
>
> Discussed here:
> [https://lists.apache.org/thread/rcto0yggqygfk0ljnd8mg69h83rhvvs5]
>
> ---
>
> We (Spotify) are experiencing flaky tests on beam 2.35.0 as a result of
> NullPointerExceptions during pipeline construction.
>
> Stacktrace [1]. Root cause appears to be multiple threads accessing
> DeserializationContext from ValueProvider.Deserializer.deserialize [2] which,
> according to the javadocs "is guaranteed to only be used from single-threaded
> context" [3]
>
> In the context internals, the mutable _currentType is set [4] then accessed a
> few lines later [5], but in a multithreaded situation the writes clobber each
> other and a call to next() can fail with a NPE.
>
> I think synchronizing on ctxt in [2] should be sufficient to avoid this
> issue, but I'm not sure if the NPEs are due to beam misuse or something on
> the jackson side that should be changed.
>
> Failing (scala) test here, scalatest runs tests in parallel:
> [https://gist.github.com/kellen/124185463c16a66167a7fa704147c510#file-fail-scala]
>
> Test stacktrace:
> [https://gist.github.com/kellen/124185463c16a66167a7fa704147c510#file-test_stacktrace-txt]
>
> [1]
> [https://gist.github.com/kellen/124185463c16a66167a7fa704147c510#file-stacktrace-txt]
> [2]
> [https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/options/ValueProvider.java#L359]
> [3]
> [https://github.com/joansmith/jackson-databind/blob/master/src/main/java/com/fasterxml/jackson/databind/DeserializationContext.java#L36]
> [4]
> [https://github.com/joansmith/jackson-databind/blob/master/src/main/java/com/fasterxml/jackson/databind/DeserializationContext.java#L652]
> [5]
> [https://github.com/joansmith/jackson-databind/blob/master/src/main/java/com/fasterxml/jackson/databind/DeserializationContext.java#L656]
--
This message was sent by Atlassian Jira
(v8.20.7#820007)