[
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)