Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
With EOSv2, we use a thread producer shared across all tasks. We init tx on the producer with each task (due to EOSv1 which uses a producer per task), and have a guard in place to only init tx a single time.
If we hit an error, we close the producer and create a new one, which is still not initialized for transaction. At the same time, with state updater, we schedule a "close task" action on error.
For each task we get back, we do cancel the "close task" action, to actually keep the task. If this happens for all tasks, we don't have any task in state CRATED at hand, and thus we never init the producer for transactions, because we assume this was already done.
On the first `send` request, we crash with an IllegalStateException:{}
Invalid transition attempted from state UNINITIALIZED to state IN_TRANSACTION
This bug is exposed via EOSIntegrationTest (logs attached).