On Wed, 31 May 2000, David E. Cross wrote:

> >    If you can reproduce the problem regularly then I recommend putting
> >    a signal guard in to see if the corruption is being caused by the
> >    signal interrupting at an inausipcious moment.
> >
> >    In main() block SIGHUP, SIGINT, SIGTERM, and SIGCHLD using sigsetmask().
> >
> >    Just prior to the select call unblock the signals.
> >
> >    Just after the select call reblock the signals.
> >
> >    And see if the corruption still occurs.  If this fixes the problem, 
> >    then there is probably something in the reaper() (in yp_main.c) 
> >    that is causing corruption, probably by ripping a structure out from
> >    under whatever piece of code the signal happens to interrupt.
> >
> >    I took a quick look at the code and as far as I can tell it implements
> >    no guards whatsoever.  The inetd code had similar problems in the past.
> 
> Alas, this is not something I have been able to reliably reproduce, it seems
> to trigger itself every so-often (and at inconvienient times).  But no
> matter what I do by myself it will not trip.

Is it possibly related to a low-memory situation?  I'm trying to solve a
problem in cron that sounds similar, and seems to be triggered when the
machine goes into swapping.  I'm unable to duplicate it myself :-(

Guy

Guy Helmer, Ph.D. Candidate, Iowa State University Dept. of Computer Science 
Research Assistant, Dept. of Computer Science   ---   [EMAIL PROTECTED]
http://www.cs.iastate.edu/~ghelmer




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to