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.

Reply via email to