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

Connect susceptible to deadlock while registering REST extensions

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.2.0, 2.1.1, 2.0.2, 2.3.0, 2.1.2, 2.2.1
    • Fix Version/s: 2.0.2, 2.3.0, 2.1.2, 2.2.1
    • Component/s: KafkaConnect
    • Labels:
      None

      Description

      As part of KAFKA-7503, the ConnectClusterStateImpl class was altered to use a HerderProvider instance instead of a Herder. However, the Connect RestServer registers REST extensions before a herder is given to that HerderProvider, so any extensions that invoke, e.g., ConnectClusterState.connector() in their register(...) method end up in a deadlock that eventually causes Connect startup to fail with the error message "Timed out waiting for herder to be initialized."

      If possible, the HerderProvider used for ConnectClusterStateImpl instances given to REST extensions should be supplied with a Herder before those extensions are registered. If that isn't feasible, another option could be to install Connect REST extensions on a separate thread so that they don't block the Connect startup process and eventual call of HerderProvider.setHerder(...).

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ChrisEgerton Chris Egerton
                Reporter:
                ChrisEgerton Chris Egerton
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: