gnu/77818: GDB locks in wait4() when running applications

Seán C. Farley sean-freebsd at farley.org
Wed May 25 15:50:05 GMT 2005


The following reply was made to PR gnu/77818; it has been noted by GNATS.

From: =?ISO-8859-1?Q?Se=E1n_C=2E_Farley?= <sean-freebsd at farley.org>
To: David Xu <davidxu at freebsd.org>
Cc: bug-followup at freebsd.org
Subject: Re: gnu/77818: GDB locks in wait4() when running applications
Date: Wed, 25 May 2005 10:41:14 -0500 (CDT)

   This message is in MIME format.  The first part should be readable text,
   while the remaining parts are likely unreadable without MIME-aware tools.
 
 --0-237620714-1117035674=:1320
 Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: QUOTED-PRINTABLE
 
 On Wed, 25 May 2005, David Xu wrote:
 
 >> I have a new test program[1] that I think shows the problem.  My
 >> previous program actually showed another bug that has since been
 >> fixed.  Actually, it shows two problems.  When run within the
 >> debugger (SHELL=3D3D/bin/sh gdb a.out), the parent will be stuck
 >> waiting for a signal it will never receive in sigsuspend().
 >>=20
 >
 > Please try following patch, I believe the old hack is incorrect now
 > with jhb's sleep queue.
 
 <patch snip>
 
 Thank you, thank you!  That fixes my bug.
 
 >> The other problem is that nanosleep() is exiting immediately with a
 >> return of zero although the time to sleep has not passed.  To see it
 >> do this, remove the BROKEN_NANOSLEEP_WITHIN_GDB definition at the top
 >> of the program and recompile.
 >>
 >
 > This is a long history bug, I believe it is still in RELENG_4. Now the
 > bug is in kern_sig.c: do_tdsignal(), when process is being debugged, a
 > masked signal can wake up a sleeping thread! that's why it is broken.
 
 Is it fixable?  Should I open a PR for it, or is there one already?
 
 Se=E1n
 --=20
 sean-freebsd at farley.org
 --0-237620714-1117035674=:1320--


More information about the freebsd-bugs mailing list