misc/166340: Process under FreeBSD 9.0 hangs in uninterruptable sleep with apparently no syscall (empty wchan)

Andriy Gapon avg at FreeBSD.org
Fri Mar 23 21:20:14 UTC 2012


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

From: Andriy Gapon <avg at FreeBSD.org>
To: bug-followup at FreeBSD.org, christian.esken at trivago.com
Cc:  
Subject: Re: misc/166340: Process under FreeBSD 9.0 hangs in uninterruptable
 sleep with apparently no syscall (empty wchan)
Date: Fri, 23 Mar 2012 23:17:12 +0200

 Hmm, sleepq_timedwait_sig() is supposed to react to signals.
 At least that's what its description says:
 
 /*
  * Block the current thread until it is awakened from its sleep queue,
  * it is interrupted by a signal, or it times out waiting to be awakened.
  */
 int
 sleepq_timedwait_sig(void *wchan, int pri)
 {
         int rcatch, rvalt, rvals;
 
         rcatch = sleepq_catch_signals(wchan, pri);
         rvalt = sleepq_check_timeout();
         rvals = sleepq_check_signals();
         thread_unlock(curthread);
         if (rcatch)
                 return (rcatch);
         if (rvals)
                 return (rvals);
         return (rvalt);
 }
 
 
 -- 
 Andriy Gapon


More information about the freebsd-bugs mailing list