Commit 9b7258e1 authored by unknown's avatar unknown
Browse files

Fix for BUG#19391: IM fails to start after two executions


server-tools/instance-manager/manager.cc:
  Start Listener-thread after all initialization.
parent 17dcb6e7
Loading
Loading
Loading
Loading
+24 −22
Original line number Diff line number Diff line
@@ -147,28 +147,6 @@ void manager(const Options &options)
  if (create_pid_file(options.pid_file_name, manager_pid))
    return;

  sigset_t mask;
  set_signals(&mask);

  /* create the listener */
  {
    pthread_t listener_thd_id;
    pthread_attr_t listener_thd_attr;
    int rc;

    pthread_attr_init(&listener_thd_attr);
    pthread_attr_setdetachstate(&listener_thd_attr, PTHREAD_CREATE_DETACHED);
    rc= set_stacksize_n_create_thread(&listener_thd_id, &listener_thd_attr,
                                      listener, &listener_args);
    pthread_attr_destroy(&listener_thd_attr);
    if (rc)
    {
      log_error("manager(): set_stacksize_n_create_thread(listener) failed");
      goto err;
    }

  }

  /* create guardian thread */
  {
    pthread_t guardian_thd_id;
@@ -211,6 +189,30 @@ void manager(const Options &options)
    return;
  }

  /* Initialize signals and alarm-infrastructure. */

  sigset_t mask;
  set_signals(&mask);

  /* create the listener */
  {
    pthread_t listener_thd_id;
    pthread_attr_t listener_thd_attr;
    int rc;

    pthread_attr_init(&listener_thd_attr);
    pthread_attr_setdetachstate(&listener_thd_attr, PTHREAD_CREATE_DETACHED);
    rc= set_stacksize_n_create_thread(&listener_thd_id, &listener_thd_attr,
                                      listener, &listener_args);
    pthread_attr_destroy(&listener_thd_attr);
    if (rc)
    {
      log_error("manager(): set_stacksize_n_create_thread(listener) failed");
      goto err;
    }

  }

  /*
    After the list of guarded instances have been initialized,
    Guardian should start them.