[ 
https://issues.apache.org/jira/browse/ARROW-15710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17512652#comment-17512652
 ] 

Weston Pace commented on ARROW-15710:
-------------------------------------

Ok, after testing this for a while, I think that the NestedChild test is not 
technically safe.  On the man page for {{fork}} we see:

{noformat}
After a fork() in a multithreaded program, the child can
          safely call only async-signal-safe functions (see
          signal-safety(7)) until such time as it calls execve(2).
{noformat}

It seems we get away with this on Linux.  Also, it seems that tests like 
MultipleChildThreads works fine even though it also seems unsafe.

For whatever reason it seems that a grandchild fork is simply not really 
supported on osx.  The grandchild process never finishes.  Instead it gets 
stuck in bizarre and nonsensical deadlocks (backtrace of one such deadlock 
attached.  There are only two threads and they are blocked on unrelated 
mutexes). [^stacktrace.txt] 

> [C++] Intermittent deadlock on arrow-threading-utility-test
> -----------------------------------------------------------
>
>                 Key: ARROW-15710
>                 URL: https://issues.apache.org/jira/browse/ARROW-15710
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>            Reporter: Weston Pace
>            Assignee: Weston Pace
>            Priority: Major
>         Attachments: stacktrace.txt
>
>
> See https://github.com/apache/arrow/runs/5226214697?check_suite_focus=true



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to