K 10 svn:author V 3 pjd K 8 svn:date V 27 2010-10-17T16:43:20.489168Z K 7 svn:log V 2142 MFC r213183,r213428,r213429,r213430,r213529,r213530,r213531,r213533,r213579, r213580,r213938,r213939,r213981: r213183: Plug memory leak on fork(2) failure. Submitted by: Mikolaj Golub r213428: We can't mask ignored signal, so install dummy signal hander for SIGCHLD before masking it. This fixes bogus reports about hooks running for too long and other problems related to garbage-collecting child processes. Reported by: Mikolaj Golub r213429: hook_check() is now only used to report about long-running hooks, so the argument is redundant, remove it. r213430: Decrease report interval to 5 seconds, as this also means we will check for signals every 5 seconds and not every 10 seconds as before. r213529: Don't close local component on exit as we can hang waiting on g_waitidle. I'm unable to reproduce the race described in comment anymore and also the comment is incorrect - localfd represents local component from configuration file, eg. /dev/da0 and not HAST provider. Reported by: Mikolaj Golub r213530: Start the guard thread first, so we can handle signals from the very begining. Reported by: Mikolaj Golub r213531: Log error message when we fail to destroy ggate provider. r213533: Clear ggate structures before using them. We don't initialize all the field and there can be some garbage from the stack. r213579: We close the event socketpair early in the mainloop to prevent spaming with error messages, so when we clean up after child process, we have to check if the event socketpair is still there. Submitted by: Mikolaj Golub r213580: We can't zero out ggio request, as we have some fields in there we initialize once during start-up. Reported by: Mikolaj Golub r213938: Clear signal mask before executing a hook. Submitted by: Mikolaj Golub r213939: Use one fprintf() instead of two. r213981: Log correct connection when canceling half-open connection. Submitted by: Mikolaj Golub END