You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(Observed On macOS 10.14.3)
RPC seems to work fine when it is just a single process (e.g., in simple test cases such as android_rpc_test.py).
We currently use RPC for AutoTVM tuning, and we fork a different process for each measurement for parallelism/robustness. However, this seems to break with something like
objc[17591]: +[__NSPlaceholderDictionary initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead.
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES seems to be a workaround; found randomly here, but while it works (partially) for a simple Pool -> map wrapping of RPC, tuning still crashes with a segmentation fault in get_addr_info.
The text was updated successfully, but these errors were encountered:
@eqy do you have a simple local-only reproduction that works? IIRC setting LocalExecutor(..., do_fork=False) was an alternative workaround in this case, but it would good to have a local-only repro so we can a) send a bug to Apple, b) see if these proposed fixes actually fix the problem that you're observing.
(Observed On macOS 10.14.3)
RPC seems to work fine when it is just a single process (e.g., in simple test cases such as
android_rpc_test.py
).We currently use RPC for AutoTVM tuning, and we fork a different process for each measurement for parallelism/robustness. However, this seems to break with something like
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
seems to be a workaround; found randomly here, but while it works (partially) for a simple Pool -> map wrapping of RPC, tuning still crashes with a segmentation fault inget_addr_info
.The text was updated successfully, but these errors were encountered: