• unknown's avatar
    Fix for BUG#17486: IM: race condition on exit. · aeec4593
    unknown authored
    The problem was that IM stoped guarded instances on shutdown,
    but didn't wait for them to stop.
    
    The fix is to wait for guarded instances to stop before exitting
    from the main thread.
    
    The idea is that Instance-monitoring thread should add itself
    to Thread_registry so that it will be taken into account on shutdown.
    However, Thread_registry should not signal it on shutdown in order to
    not interrupt wait()/waitpid().
    
    
    server-tools/instance-manager/guardian.cc:
      Be more verbose.
    server-tools/instance-manager/instance.cc:
      Register mysqld-monitoring thread in Thread_registry.
    server-tools/instance-manager/instance.h:
      Add reference to Thread_registry.
    server-tools/instance-manager/instance_map.cc:
      Pass Thread_registry reference to Instance.
    server-tools/instance-manager/instance_map.h:
      Add reference to Thread_registry.
    server-tools/instance-manager/listener.cc:
      Be more verbose.
    server-tools/instance-manager/manager.cc:
      Be more verbose.
    server-tools/instance-manager/mysql_connection.cc:
      Eliminate type-conversion warnings.
    server-tools/instance-manager/thread_registry.cc:
      Be more verbose.
    server-tools/instance-manager/thread_registry.h:
      Eliminate copy&paste, make impl-specific constructor private.
    aeec4593
instance.cc 18.6 KB