classification
Title: multiprocessing: seg fault when creating RawArray from numpy ctypes
Type: crash Stage: resolved
Components: ctypes, Library (Lib) Versions: Python 3.6, Python 3.5
process
Status: closed Resolution: third party
Dependencies: Superseder:
Assigned To: Nosy List: Anthony Sottile, corona10, sh37211, xtreak
Priority: normal Keywords:

Created on 2018-12-15 04:44 by sh37211, last changed 2019-01-19 11:54 by xtreak. This issue is now closed.

Messages (5)
msg331888 - (view) Author: (sh37211) Date: 2018-12-15 04:44
After creating this post on StackOverflow...
https://stackoverflow.com/questions/53757856/segmentation-fault-when-creating-multiprocessing-array
...it was suggested by one of the respondents that I file a bug report.


The following code produces segmentation faults on certain OSes (Linux: Ubuntu 16.04, 18.04 and Debian) but not others (Mac 10.13.4):

    import numpy as np
    from multiprocessing import sharedctypes

    a = np.ctypeslib.as_ctypes(np.zeros((224,224,3)))
    b = sharedctypes.RawArray(a._type_, a)

The segmentation fault occurs upon the creation of the multiprocessing.sharedctypes.RawArray. 

As a workaround, one can declare an intermediate variable, e.g. "a2", and write

    a = np.zeros((224,224,3))
    a2 = np.ctypeslib.as_ctypes(a)
    b = sharedctypes.RawArray(a2._type_, a2)

User kabanus seemed to think it was more likely to be an error with multiprocessing than with numpy. 

Using Anaconda python distribution, Python 3.5 and 3.6.  Have not tried 3.7 or 3.8 yet.
msg331934 - (view) Author: Anthony Sottile (Anthony Sottile) * Date: 2018-12-16 19:00
This appears to be a bug with numpy, I've made a PR for them: https://github.com/numpy/numpy/pull/12566
msg334046 - (view) Author: Dong-hee Na (corona10) * (Python triager) Date: 2019-01-19 08:04
Looks like the numpy PR was merged. We can close this issue?
msg334058 - (view) Author: Anthony Sottile (Anthony Sottile) * Date: 2019-01-19 11:29
yes, please do
msg334061 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python triager) Date: 2019-01-19 11:54
I am closing this with third party as resolution. Feel free to reopen this if it's an issue with multiprocessing and CPython.

Thanks for triaging.
History
Date User Action Args
2019-01-19 11:54:16xtreaksetstatus: open -> closed

nosy: + xtreak
messages: + msg334061

resolution: third party
stage: resolved
2019-01-19 11:29:27Anthony Sottilesetmessages: + msg334058
2019-01-19 08:04:23corona10setnosy: + corona10
messages: + msg334046
2018-12-16 19:00:38Anthony Sottilesetnosy: + Anthony Sottile
messages: + msg331934
2018-12-15 04:44:16sh37211create