The branch, v3-3-test has been updated via a4df440... s3:winbind: Only ever handle one event after a select call from faf7197... Fix bug 6776 - Running overlapping Byte Lock test will core dump Samba daemon. Re-write core of POSIX locking logic. Jeremy.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test - Log ----------------------------------------------------------------- commit a4df4406f12281db60fd6612c6ebf93d77af9152 Author: Volker Lendecke <v...@samba.org> Date: Wed Oct 7 15:53:46 2009 +0200 s3:winbind: Only ever handle one event after a select call While handling an fd event, the situation with other fds can change. I've just seen a winbind stuck in the accept() call on the privileged pipe. I can only imagine this happen because under high load we first handled other requests and meanwhile the client on the privileged pipe went away. ----------------------------------------------------------------------- Summary of changes: source/winbindd/winbindd.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) Changeset truncated at 500 lines: diff --git a/source/winbindd/winbindd.c b/source/winbindd/winbindd.c index 9005e67..1d618e2 100644 --- a/source/winbindd/winbindd.c +++ b/source/winbindd/winbindd.c @@ -847,7 +847,9 @@ static void process_loop(void) message_dispatch(winbind_messaging_context()); - run_events(winbind_event_context(), 0, NULL, NULL); + if (run_events(winbind_event_context(), 0, NULL, NULL)) { + return; + } /* refresh the trusted domain cache */ @@ -927,8 +929,10 @@ static void process_loop(void) flags |= EVENT_FD_READ; if (FD_ISSET(ev->fd, &w_fds)) flags |= EVENT_FD_WRITE; - if (flags) + if (flags) { ev->handler(ev, flags); + return; + } ev = next; } -- Samba Shared Repository