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

Connect susceptible to deadlock while registering REST extensions

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    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

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

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

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment