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

Kafka consumer may swallow some interrupts meant for the calling thread

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.10.1.0
    • 0.10.2.0
    • clients
    • None

    Description

      Apache Storm has added a new data source ("spout") based on the Kafka 0.9 consumer. Storm interacts with the consumer by having one thread per spout instance loop calls to poll/commitSync etc. When Storm shuts down, another thread indicates that the looping threads should shut down by interrupting them, and joining them.

      If one of the looping threads happen to be interrupted while executing certain sleeps in some consumer methods (commitSync and committed at least), the interrupt can be lost because they contain a call to SystemTime.sleep, which swallows the interrupt.

      Is this behavior by design, or can SystemTime be changed to reset the thread interrupt flag when catching an InterruptedException?

      I haven't checked the rest of the client code, so it's possible that this is an issue in other parts of the code too.

      Attachments

        Issue Links

          Activity

            People

              srdo Stig Rohde Døssing
              srdo Stig Rohde Døssing
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: