Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Jun 2001 13:47:35 -0700 (PDT)
From:      John Polstra <jdp@polstra.com>
To:        stable@freebsd.org
Cc:        ohartman@klima.physik.uni-mainz.de, andre.albsmeier@mchp.siemens.de
Subject:   Re: NIS/YP still broken!
Message-ID:  <200106062047.f56KlZB44913@vashon.polstra.com>
In-Reply-To: <Pine.BSF.4.33.0106032156210.1370-100000@klima.physik.uni-mainz.de>
References:  <Pine.BSF.4.33.0106032156210.1370-100000@klima.physik.uni-mainz.de>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <Pine.BSF.4.33.0106032156210.1370-100000@klima.physik.uni-mainz.de>,
Hartmann, O. <ohartman@klima.physik.uni-mainz.de> wrote:
> :>> > FreeBSD 4.3-STABLE has still a broken NIS/YP! If there are more than
> :>> > one slave servers ypxfrd should spread its tables, push seems to
> :>> > lock up and get a timeout.
> :>> >
> :>> > This was reported earlier here and I got a 'fix' for this but this fix
> :>> > hasn't been merged in due it targets a sypmtome, not the cause itself.
[...]
> Well, this problem occurs on ALL systems running here and configured as
> NIS/YP server and running the recent FreeBSD 4.3-STABLE. It should be
> able to reproduce the problem!

Offline I have been working with Andre Albsmeier on this problem.
Andre gave me a detailed description of what he has discovered and
observed, as well as a recipe for reproducing the bug.  Unfortunately,
the recipe didn't make the bug appear for me.  I think it must fail
only in Germany. :-)

HOWEVER, based on what Andre told me, I inspected the relevant code
in yppush_main.c.  I am pretty sure I have found the bug.  There
is a struct sigaction on the stack which is not fully initialized;
in particular, the sa_flags member is uninitialized.  It contains
whatever garbage was on the stack, and that garbage would be
influenced by many things, including the actions of the dynamic
linker.  Furthermore, certain flag bits such as SA_RESETHAND, if set,
would cause exactly the symptoms you guys have described.

Please apply the patch below to "/usr/src/usr.sbin/yppush/yppush_main.c"
and let me know if it fixes the problem.  The patch is relative to
-stable.

Thanks,
John


Index: yppush_main.c
===================================================================
RCS file: /home/ncvs/src/usr.sbin/yppush/yppush_main.c,v
retrieving revision 1.11
diff -u -r1.11 yppush_main.c
--- yppush_main.c	1999/08/28 01:21:09	1.11
+++ yppush_main.c	2001/06/06 20:26:12
@@ -651,6 +651,7 @@
 	sigaddset(&sa.sa_mask, SIGALRM);
 	sigaddset(&sa.sa_mask, SIGINT);
 	sa.sa_handler = async_handler;
+	sa.sa_flags = 0;
 
 	sigaction(SIGIO, &sa, NULL);
 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200106062047.f56KlZB44913>