On Fri, Jul 18, 2008 at 14:38:40 +1000, John Marshall wrote:
> On Wed, 09 Jul 2008, 20:56 +1000, John Marshall wrote:
> > HEADS UP if you are thinking of upgrading net/samba3 to 3.0.30 in an Active
> > Directory environment.
> > 
> > I have recently upgraded from 3.0.28a to 3.0.30 on a couple of FreeBSD 7.0
> > servers: one is a member server in a Windows 2000 Active Directory
> > environment, and the other is a member server in a Windows 2003 Active
> > Directory environment.  Everything works for a while and then winbindd goes
> > into sulking mode.  Re-starting fixes everythng for a little while.
> 
> As Johan implied, this specific problem was fixed in 3.0.31 which was
> released by the Samba team last Friday. I've been keeping a close eye on the
> net/samba3 port but no update yet, so...

The other possible solution is to apply this patch (as
files/patch-nsswitch_winbindd.c in the ports dir). It has been taken from the
samba bug-tracking system and I have been running a patched samba for some
days now without a problem (under 6.3-RELEASE and -STABLE).

--- nsswitch/winbindd.c.orig    2008-05-28 14:41:11.000000000 +0200
+++ nsswitch/winbindd.c 2008-07-16 13:26:22.000000000 +0200
@@ -117,14 +117,21 @@
 
 /* Handle the signal by unlinking socket and exiting */
 
-static void terminate(void)
+static void terminate(bool in_parent)
 {
-       pstring path;
-
-       /* Remove socket file */
-       pstr_sprintf(path, "%s/%s", 
-                WINBINDD_SOCKET_DIR, WINBINDD_SOCKET_NAME);
-       unlink(path);
+       if (in_parent) {
+               /* When parent goes away we should
+                * remove the socket file. Not so
+                * when children terminate.
+                */
+
+               pstring path;
+
+               /* Remove socket file */
+               pstr_sprintf(path, "%s/%s",
+                       WINBINDD_SOCKET_DIR, WINBINDD_SOCKET_NAME);
+               unlink(path);
+       }
 
        idmap_close();
        
@@ -731,10 +738,10 @@
 }
 
 /* check if TERM has been received */
-void winbind_check_sigterm(void)
+void winbind_check_sigterm(bool in_parent)
 {
        if (do_sigterm)
-               terminate();
+               terminate(in_parent);
 }
 
 /* Process incoming clients on listen_sock.  We use a tricky non-blocking,
@@ -901,7 +908,7 @@
 
        /* Check signal handling things */
 
-       winbind_check_sigterm();
+       winbind_check_sigterm(true);
        winbind_check_sighup();
 
        if (do_sigusr2) {
--- nsswitch/winbindd_dual.c.orig       2008-05-28 14:41:11.000000000 +0200
+++ nsswitch/winbindd_dual.c    2008-07-16 13:25:53.000000000 +0200
@@ -1015,7 +1015,7 @@
                main_loop_TALLOC_FREE();
 
                /* check for signals */
-               winbind_check_sigterm();
+               winbind_check_sigterm(false);
                winbind_check_sighup();
 
                run_events(winbind_event_context(), 0, NULL, NULL);


Best regards
Udo Schweigert

Siemens AG
Corporate Technology
Information & Communication
Siemens CERT
Otto-Hahn-Ring 6
81730 München, Germany
Tel.: +49 89 636-42170
Fax: +49 89 636-41166
mailto:[EMAIL PROTECTED]

Siemens Aktiengesellschaft: Chairman of the Supervisory Board: Gerhard Cromme;
Managing Board: Peter Loescher, Chairman, President and Chief Executive
Officer; Wolfgang Dehen, Heinrich Hiesinger, Joe Kaeser, Jim Reid-Anderson,
Hermann Requardt, Siegfried Russwurm, Peter Y. Solmssen
Registered offices: Berlin and Munich,
Commercial registries: Berlin Charlottenburg, HRB 12300, Munich, HRB 6684
WEEE-Reg.-No. DE 23691322
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to