Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-16350

StateUpdater does not init transaction after canceling task close action

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • streams
    • 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).

      Attachments

        Activity

          People

            cadonna Bruno Cadonna
            mjsax Matthias J. Sax
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: