Messaging patches

Jeremy Allison jra at samba.org
Tue Apr 29 15:23:26 MDT 2014


On Tue, Apr 29, 2014 at 02:17:31PM -0700, Jeremy Allison wrote:
> On Tue, Apr 29, 2014 at 02:13:12PM -0700, Jeremy Allison wrote:
> > On Tue, Apr 29, 2014 at 10:13:36PM +0200, Volker Lendecke wrote:
> > > On Tue, Apr 29, 2014 at 12:58:51PM -0700, Jeremy Allison wrote:
> > > > 
> > > > Gonna try pushing to autobuild. Wish me luck ! :-).
> > > 
> > > As I wrote: Normally I would only ask for pushing for such an
> > > infrastructure patch if I had run it successfully through a
> > > private autobuild. But it failed today always in the
> > > delay_write or other timing-sensitive tests that I believe
> > > have nothing to do with messaging.
> > 
> > Ok, interesting:
> > 
> > make test TESTS=samba3.raw.mux
> > 
> > fails with this patchset, with :
> > 
> > #3  0x00002b96bf710362 in smb_panic (why=0x2b96bfc1ca0c "assert failed: ret") at ../lib/util/fault.c:160
> > No locals.
> > #4  0x00002b96bfa67a01 in defer_open_done (req=0x0) at ../source3/smbd/open.c:1625
> >         state = 0x2b96d1cf3db0
> >         status = {v = 3221225653}
> >         ret = false
> >         __FUNCTION__ = "defer_open_done"
> > #5  0x00002b96bfeefec2 in _tevent_req_notify_callback (req=0x2b96d1cfdd00, location=0x2b96bfef7980 <__FUNCTION__.4100> "tevent_req_timedout") at ../lib/tevent/tevent_req.c:112
> > No locals.
> > #6  0x00002b96bfeeff8a in tevent_req_finish (req=0x2b96d1cfdd00, state=TEVENT_REQ_TIMED_OUT, location=0x2b96bfef7980 <__FUNCTION__.4100> "tevent_req_timedout") at ../lib/tevent/tevent_req.c:149
> > No locals.
> > #7  0x00002b96bfef030a in tevent_req_timedout (ev=0x2b96d1c7ebf0, te=0x2b96d1cfe030, now=..., private_data=0x2b96d1cfdd00) at ../lib/tevent/tevent_req.c:289
> >         req = 0x2b96d1cfdd00
> >         __FUNCTION__ = "tevent_req_timedout"
> > 
> > (which is the SMB_ASSERT firing inside defer_open_done()).
> > 
> >         ret = schedule_deferred_open_message_smb(state->sconn, state->mid);
> >         SMB_ASSERT(ret);
> > 
> > without this patchset, TESTS=samba3.raw.mux
> > passes. Reproducible locally.
> > 
> > Investigating !
> 
> Wow. This looks like a side effect with
> old code that uses a zero tevent_timer
> instead of an immediate event...

Aha ! And the defer_open() request is done
with a dbwrap_record_watch_send(), which
uses messaging_read_send() - and then calls
messaging_read_send() from within the callback..

I think this patchset might have exposed
an interesting bug within the code.

I *love* this stuff :-).

Jeremy.


More information about the samba-technical mailing list