Skip to content

Conversation

akudiyar
Copy link
Collaborator

The object with race condition was the tuple mapper, which is apparently changed by
different threads using the same RDD for different Tarantool spaces.

With this patch, it will be not more possible to use a custom mapper, but the
proper implementation of that feature needs now fixing the mapper race
condition possibility in the driver and re-implementing passing the
mapper without implicits.

May be related:

Fixes #45

akudiyar added 3 commits March 1, 2023 18:42
Highly loaded and concurrent Spark environment produced some strange
OptionalDataException errors when deserializing the write tasks.
That appeared to be a problem with an object that is changed concurrently
while being serialized, thus resulting in corrupted serialized data.

Using some deduction and exclusion, it became clear that the object with
such race condition is the mapper, which is apparently changed by
different threads using the same RDD for different Tarantool spaces.

With this patch it is not more possible to use a custom mapper, but the
proper implementation of that feature needs now fixing the mapper race
condition possibility in the driver and re-implementing passing the
mapper without implicits.
The latest netty and driver versions introduced a dependency conflict.
@akudiyar akudiyar merged commit d6b3269 into master Mar 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

OptionalDataException when deserializing the task closure

1 participant