[SCM] Samba Shared Repository - branch master updated - tevent-0-9-8-590-g00e378f

Stefan (metze) Metzmacher metze at samba.org
Wed Sep 30 04:51:59 MDT 2009


Hi Jeremy,

> 	I'm interested in what caused you to catch
> these problems and what bugs they exhibited ? I'm
> wondering if we need them for the next 3.4.x release ?

The problem I had was that killall winbindd didn't worked.
I attached gdb and saw that tevent_common_signal_handler was called
and it generated a SIGPIPE and changed errno to EPIPE.

I haven't fully debugged the cause of the broken pipe,
but a signal handler should never change errno...

The patches are also attached to bug #6711.

BTW: in master I need this
http://gitweb.samba.org/?p=metze/samba/wip.git;a=commitdiff;h=19dec031c7c8d5f4b646ff5f450c16b9f98f9dac
diff --git a/lib/tevent/tevent_signal.c b/lib/tevent/tevent_signal.c
index d3325b6..46bcfca 100644 (file)
--- a/lib/tevent/tevent_signal.c
+++ b/lib/tevent/tevent_signal.c
@@ -94,6 +94,8 @@ static void tevent_common_signal_handler(int signum)
        for (sl = sig_state->sig_handlers[signum]; sl; sl = sl->next) {
                if (sl->se->event_ctx != ev) {
                        ev = sl->se->event_ctx;
+                       if (!ev) continue;
+                       if (!ev->pipe_fds) continue;
                        /* doesn't matter if this pipe overflows */
                        res = write(ev->pipe_fds[1], &c, 1);
                }

Otherwise winbindd childs crash after the fork.

metze


More information about the samba-technical mailing list