On Mon, 23 Feb 2015, Alexey Suslikov wrote:
...
> 12995 asterisk RET fork 0
> 12995 asterisk CALL
> sigprocmask(SIG_SETMASK,0x8005003<SIGHUP|SIGINT|SIGPIPE|SIGTERM|SIGWINCH>)
> 12995 asterisk RET sigprocmask ~0x10100<SIGKILL|SIGSTOP>
> 12995 asterisk CALL getthrid()
> 12995 asterisk RET getthrid 1012995/0xf7503
> 12995 asterisk PSIG SIGSEGV SIG_DFL code SEGV_MAPERR<1> addr=0x181489355e40
> trapno=6
So it's not even getting to ast_set_priority() or ast_close_fds_above_n().
<pause>
Ooog, this is probably caused by a pthread_atfork() handler from a shared
object.
The easiest way to test this hypothesis is to change this code:
#ifdef HAVE_WORKING_FORK
pid = fork();
#else
pid = vfork();
#endif
to just
pid = vfork();
and see if the problem goes away...