Message383418
I built JPype normally in release mode and was able to analyze the problem using the platform debugger (cdb or WinDbg). I think the issue is pretty straight forward. The static initializer for classMagic in "native\python\pyjp_class.cpp" is calling PyDict_New(). That's not kosher because the GIL isn't held during the LoadLibraryExW call. It seems to be okay without a cached PYC because the new_dict() call has an available dict on the freelist in this case. In the PYC case, new_dict() happens to instead call PyObject_GC_New, which fails with an access violation. I modified "pyjp_class.cpp" to set the static value of classMagic to NULL and moved the initialization to PyJPClass_new. This resolved the problem. So I think this issue should be closed as a third-party bug. |
|
Date |
User |
Action |
Args |
2020-12-20 05:38:06 | eryksun | set | recipients:
+ eryksun, paul.moore, tim.golden, zach.ware, steve.dower, WildCard65, Thrameos |
2020-12-20 05:38:06 | eryksun | set | messageid: <1608442686.74.0.229255712517.issue42529@roundup.psfhosted.org> |
2020-12-20 05:38:06 | eryksun | link | issue42529 messages |
2020-12-20 05:38:06 | eryksun | create | |
|