[PATCH] Fix bug 11175 - Lots of winbindd zombie processes on Solaris platform

Jeremy Allison jra at samba.org
Wed Mar 25 15:06:45 MDT 2015


On Wed, Mar 25, 2015 at 01:17:19PM +0100, Andreas Schneider wrote:
> On Monday 23 March 2015 14:09:35 Jeremy Allison wrote:
> > Fix confirmed by submitter. Changes use of signal()
> > to sigaction().
> 
> Hi Jeremy,
> 
> I've reverted this patchset as it breaks 'make test' on most Linux platforms. 
> Note that our autobuild doesn't have support for robust mutexes, so it doesn't 
> fail ...
> 
> Sometimes I wonder if I'm the only one running 'make test' on his own boxes 
> (Fedora and openSUSE).

Here is a working version that passes make test (sorry).

The problem was if a handler hadn't been installed already,
then oldact.sa_handler == NULL (#define SIG_DFL	((__sighandler_t)0))
which was returned and confused with the #else clause of
#ifdef HAVE_SIGACTION (which returned NULL as guaranteed
failure).

So we thought we should have working mutexes because
tdb_mutex_locking_supported() would return true, but
tdb_runtime_check_for_robust_mutexes() would always
return false :-(.

New code returns a bool, and is given a pointer to
fill with the returned handler.

Volker or Andreas, please review. We still need this
(or something like it :-) for Solaris in 4.2.x.

Sorry for the original brown-paper-bag fix :-(.

Cheers,

	Jeremy.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-lib-tdb-Use-sigaction-when-testing-for-robust-mutexe.patch
Type: text/x-diff
Size: 2472 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20150325/1574d423/attachment.patch>


More information about the samba-technical mailing list