cmogstored dev/user discussion/issues/patches/etc
 help / color / mirror / code / Atom feed
* FreeBSD: sleeper using ppoll does not sleep forever
@ 2015-03-09 15:18 Mykola Golub
  2015-03-09 20:35 ` Eric Wong
  0 siblings, 1 reply; 5+ messages in thread
From: Mykola Golub @ 2015-03-09 15:18 UTC (permalink / raw)
  To: cmogstored-public

Hi,

I have been observing the following assertion failure when starting
cmogstored on recent versions of FreeBSD:

  Assertion failed: (0 && "init_once did not get cancelled"), function init_once, file mnt.c, line 139.

On these versions ppoll is available and the crush is observed only
when built with HAVE_PPOLL.

According to ktrace, ppoll (called by sleeper) returns immediately
with EINTR:

 86352 cmogstored CALL  ppoll(0,0,0,0x63dc28)
 86352 cmogstored CALL  thr_kill(0x18f47,SIG 32)
 86352 cmogstored RET   thr_kill 0
 86352 cmogstored RET   ppoll -1 errno 4 Interrupted system call
 86352 cmogstored PSIG  SIG 32 caught handler=0x800867f30 mask=0x7ffefeff code=SI_LWP
 86352 cmogstored CALL  _umtx_op(0x801406800,UMTX_OP_WAIT,0x18f47,0,0)
 86352 cmogstored CALL  sigreturn(0x7fffdfffdb40)
 86352 cmogstored RET   sigreturn JUSTRETURN
 86352 cmogstored CALL  write(0x2,0x7fffdfffd900,0x66)
 86352 cmogstored GIO   fd 2 wrote 102 bytes
       "Assertion failed: (0 && "init_once did not get cancelled"), function init_once, file mnt.c, line 13\
        9.
       "
I have workarounded this by building without HAVE_PPOLL.

-- 
Mykola Golub

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-03-10 19:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-09 15:18 FreeBSD: sleeper using ppoll does not sleep forever Mykola Golub
2015-03-09 20:35 ` Eric Wong
2015-03-09 20:49   ` [PATCH 1/2] Fix assertion failure during startup Eric Wong
2015-03-09 20:49     ` [PATCH 2/2] avoid relying on ppoll as a cancellation point Eric Wong
2015-03-10 19:23   ` FreeBSD: sleeper using ppoll does not sleep forever Mykola Golub

Code repositories for project(s) associated with this public inbox

	https://yhbt.net/cmogstored.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).