On Tue, Feb 24, 2015 at 2:45 AM, Stuart Henderson <st...@openbsd.org> wrote: > On 2015/02/23 16:15, Philip Guenther wrote: >> 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... > > Yes that gets rid of the "unable to execute" from the system("pwd") call. > (unfortunately the AGI script can't be fixed that way as it needs to not > block the parent).
IMO, fixing the issue in that way is generally bad idea, since I can imagine other software having similar code.