f4e3e7fe3b
forget to clear it out of pt_siglist, otherwise we will keep getting it over and over again. fixes a problem introduced in rev 1.43. problem observed with mysqld where sending it a SIGHUP after it has set an alarm (e.g. due to some package like rt3 using it) caused the signal handler thread to go into a tight loop (collecting a SIGALRM [via sigwait() in mysqld.cc] that would not go away due to the above issue). mysqld appears to get a SIGHUP when /etc/rc exits, so it can go into this tight loop after a reboot (but not if you restart it by hand). the bad sequence is: /etc/rc runs: - starts mysqld - starts web server with rt3 fastcgi starts - fastcgi/rt3 talks to mysqld (causing it to set an alarm) - /etc/rc exits, SIGHUP goes to mysqld - mysqld catches SIGHUP, signal handler thread gets stuck in loop (database continues to operate, slowly). you can also trigger the problem by sending mysqld a SIGHUP by hand after you've caused it to set an alarm by connecting to it. |
||
---|---|---|
.. | ||
arch | ||
debuglog.c | ||
Makefile | ||
pthread_alarms.c | ||
pthread_attr_setcreatesuspend_np.3 | ||
pthread_attr.3 | ||
pthread_attr.c | ||
pthread_barrier_destroy.3 | ||
pthread_barrier_init.3 | ||
pthread_barrier_wait.3 | ||
pthread_barrier.c | ||
pthread_barrierattr.3 | ||
pthread_cancel.3 | ||
pthread_cancelstub.c | ||
pthread_cleanup_push.3 | ||
pthread_cond_broadcast.3 | ||
pthread_cond_destroy.3 | ||
pthread_cond_init.3 | ||
pthread_cond_wait.3 | ||
pthread_cond.c | ||
pthread_condattr.3 | ||
pthread_create.3 | ||
pthread_debug.c | ||
pthread_debug.h | ||
pthread_detach.3 | ||
pthread_equal.3 | ||
pthread_exit.3 | ||
pthread_getspecific.3 | ||
pthread_int.h | ||
pthread_join.3 | ||
pthread_key_create.3 | ||
pthread_key_delete.3 | ||
pthread_kill.3 | ||
pthread_lock.c | ||
pthread_mutex_destroy.3 | ||
pthread_mutex_init.3 | ||
pthread_mutex_lock.3 | ||
pthread_mutex_unlock.3 | ||
pthread_mutex.c | ||
pthread_mutexattr.3 | ||
pthread_once.3 | ||
pthread_queue.h | ||
pthread_run.c | ||
pthread_rwlock_destroy.3 | ||
pthread_rwlock_init.3 | ||
pthread_rwlock_rdlock.3 | ||
pthread_rwlock_unlock.3 | ||
pthread_rwlock_wrlock.3 | ||
pthread_rwlock.c | ||
pthread_rwlockattr.3 | ||
pthread_sa.c | ||
pthread_schedparam.3 | ||
pthread_self.3 | ||
pthread_setspecific.3 | ||
pthread_sig.c | ||
pthread_sigmask.3 | ||
pthread_sleep.c | ||
pthread_specific.c | ||
pthread_spin_destroy.3 | ||
pthread_spin_init.3 | ||
pthread_spin_lock.3 | ||
pthread_spin_unlock.3 | ||
pthread_stack.c | ||
pthread_suspend_np.3 | ||
pthread_testcancel.3 | ||
pthread_tsd.c | ||
pthread_types.h | ||
pthread.3 | ||
pthread.c | ||
pthread.h | ||
res_state.c | ||
sched_yield.3 | ||
sched.c | ||
sem.c | ||
shlib_version | ||
TODO |