Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ATF tests still failing to complete within 2 hours on amd64



On Thu, Dec 01, 2011 at 07:24:09PM +0100, Nicolas Joly wrote:
> On Thu, Dec 01, 2011 at 11:44:56AM -0500, Thor Lancelot Simon wrote:
> > On Thu, Dec 01, 2011 at 06:15:43PM +0200, Andreas Gustafsson wrote:
> > > Thor Lancelot Simon wrote:
> > > > I guess the question at this point is, how do we debug this?  I'm 
> > > > willing
> > > > to accept that my rnd/entropy changes may have somehow triggered the
> > > > problem, but since I've come as close as I can to simply isolating rump
> > > > from the entropy subsystem and the problem persists -- I don't really 
> > > > know
> > > > where to look.
> > > 
> > > I think the general principle would be to choose a test that is
> > > failing consistently when run in isolation, and then poke it with a
> > > debugger to it to see why it is failing.
> > > 
> > > For example, if I do the following on i386:
> > > 
> > >   cd /usr/tests/lib/librumphijack
> > >   ./t_tcpip http
> > > 
> > > I get a core file, and gdb tells me:
> > 
> > Thanks!
> > 
> > I will set up an i386 VM and try to see what's wrong with the mutex
> > handling in question.  Or whether the cprng_strong is corrupt.  Or
> > whether I'm stumped again.
> 
> If this helps, this looks like an uninitialised lock, according to
> following backtrace (MKDEBUG=yes, RUMP_LOCKDEBUG=yes) on amd64 :

Rump does not call cprng_strong_create() ... leading indeed to an
uninitialised lock.

The attached patch solve the problem for me.

-- 
Nicolas Joly

Projects and Developments in Bioinformatics
Institut Pasteur, Paris.
Index: librump/rumpkern/rump.c
===================================================================
RCS file: /cvsroot/src/sys/rump/librump/rumpkern/rump.c,v
retrieving revision 1.236
diff -u -p -r1.236 rump.c
--- librump/rumpkern/rump.c     26 Nov 2011 21:41:02 -0000      1.236
+++ librump/rumpkern/rump.c     1 Dec 2011 19:01:22 -0000
@@ -334,6 +334,7 @@ rump__init(int rump_version)
         */
        messthestack();
        cprng_fast32();
+       kern_cprng = cprng_strong_create("kernel", IPL_VM, 
CPRNG_INIT_ANY|CPRNG_REKEY_ANY);
 
        procinit();
        proc0_init();


Home | Main Index | Thread Index | Old Index