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

Connect susceptible to deadlock while registering REST extensions

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 2.2.0, 2.1.1, 2.0.2, 2.3.0, 2.1.2, 2.2.1
    • 2.0.2, 2.3.0, 2.1.2, 2.2.1
    • connect
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: