python2.7 throws bus error when issuing `help("modules")'
joerg van den hoff
veedeehjay at gmail.com
Mon Aug 24 15:47:15 UTC 2020
I just want to confirm that the reported problem (bus error) has gone away with ryan's fix. a big
thank you for that (even if the fix might not be the last word as I understand from jeffrey walton's
comment).
br/joerg
On 24.08.20 11:58, Ryan Schmidt wrote:
>
>
> On Aug 24, 2020, at 03:34, joerg van den hoff wrote:
>
>> On 23.08.20 21:45, Joshua Root wrote:
>>> joerg van den hoff wrote:
>>>> seen with current macports and
>>>>
>>>> Python 2.7.18 (default, Apr 22 2020, 05:03:29)
>>>> [GCC 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.32.29)] on darwin
>>>>
>>>> I get a reproducible bus error when trying to get a list of known modules
>>>>
>>>> with `help("modules").
>>>>
>>>> /usr/bin/python (which is 2.7.16) does not do this and lists the modules just fine. any ideas how to
>>>> track this down?
>>> It may be a problem with one of your installed modules. Find the crash
>>> log in ~/Library/Logs/DiagnosticReports or possibly
>>> /Library/Logs/DiagnosticReports.
>>
>> thanks for this suggestion. I have had a look and cannot make sufficient sense of it. here is the leading section with the traceback:
>>
>> ==========cut=================
>> Process: Python [39583]
>> Path: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
>> Identifier: Python
>> Version: 2.7.18 (2.7.18)
>> Code Type: X86-64 (Native)
>> Parent Process: mksh [39567]
>> Responsible: launchd_startx [536]
>> User ID: 501
>>
>> Date/Time: 2020-08-23 15:42:58.343 +0200
>> OS Version: Mac OS X 10.15.3 (19D76)
>> Report Version: 12
>> Bridge OS Version: 4.2 (17P3050)
>> Anonymous UUID: 796719FD-E55D-61E2-97C4-8064BB1374F8
>>
>> Sleep/Wake UUID: 2DF1A4D2-1168-4425-B0FD-8A2210C1F5BE
>>
>> Time Awake Since Boot: 860000 seconds
>> Time Since Wake: 1000 seconds
>>
>> System Integrity Protection: enabled
>>
>> Crashed Thread: 0 Dispatch queue: com.apple.main-thread
>>
>> Exception Type: EXC_BAD_ACCESS (SIGBUS)
>> Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000105ec4b1e
>> Exception Note: EXC_CORPSE_NOTIFY
>>
>> Termination Signal: Bus error: 10
>> Termination Reason: Namespace SIGNAL, Code 0xa
>> Terminating Process: exc handler [39583]
>>
>> VM Regions Near 0x105ec4b1e:
>> __TEXT 0000000105e68000-0000000105ebc000 [ 336K] r-x/rwx SM=COW /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/objc/_objc.so
>> --> __DATA_CONST 0000000105ebc000-0000000105ec7000 [ 44K] r--/rwx SM=COW /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/objc/_objc.so
>> __DATA 0000000105ec7000-0000000105ed5000 [ 56K] rw-/rwx SM=COW /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/objc/_objc.so
>>
>> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
>> 0 _objc.so 0x0000000105e91703 setup_descr + 451
>> 1 _objc.so 0x0000000105e903c9 process_metadata_dict + 105
>> 2 _objc.so 0x0000000105e8fdd3 PyObjCMethodSignature_WithMetaData + 51
>> 3 _objc.so 0x0000000105e919b6 setup_descr + 1142
>> 4 _objc.so 0x0000000105e90506 process_metadata_dict + 422
>> 5 _objc.so 0x0000000105e8fc83 PyObjC_registerMetaData + 451
>> 6 _objc.so 0x0000000105e9479e registerMetaData + 78
>> 7 org.python.python 0x00000001046d540c PyEval_EvalFrameEx + 26124
>> 8 org.python.python 0x00000001046ceb64 PyEval_EvalCodeEx + 2132
>> 9 org.python.python 0x00000001046ce302 PyEval_EvalCode + 34
>> 10 org.python.python 0x00000001046f0726 PyImport_ExecCodeModuleEx + 230
>> 11 org.python.python 0x00000001046f3a7f load_source_module + 975
>> 12 org.python.python 0x00000001046f354d import_submodule + 285
>> 13 org.python.python 0x00000001046f2f9e load_next + 270
>> 14 org.python.python 0x00000001046f1e3b PyImport_ImportModuleLevel + 875
>> 15 org.python.python 0x00000001046c9629 builtin___import__ + 137
>> 16 org.python.python 0x0000000104622ff1 PyObject_Call + 97
>> 17 org.python.python 0x00000001046d375b PyEval_EvalFrameEx + 18779
>> 18 org.python.python 0x00000001046ceb64 PyEval_EvalCodeEx + 2132
>> 19 org.python.python 0x00000001046ce302 PyEval_EvalCode + 34
>> 20 org.python.python 0x00000001046f0726 PyImport_ExecCodeModuleEx + 230
>> 21 org.python.python 0x00000001046f3a7f load_source_module + 975
>> 22 org.python.python 0x00000001046f3df1 load_package + 321
>> 23 org.python.python 0x00000001046f354d import_submodule + 285
>> 24 org.python.python 0x00000001046f2feb load_next + 347
>> 25 org.python.python 0x00000001046f1dc5 PyImport_ImportModuleLevel + 757
>> 26 org.python.python 0x00000001046c9629 builtin___import__ + 137
>> 27 org.python.python 0x0000000104622ff1 PyObject_Call + 97
>> 28 org.python.python 0x00000001046d375b PyEval_EvalFrameEx + 18779
>> 29 org.python.python 0x00000001046ceb64 PyEval_EvalCodeEx + 2132
>> 30 org.python.python 0x00000001046ce302 PyEval_EvalCode + 34
>> 31 org.python.python 0x00000001046f0726 PyImport_ExecCodeModuleEx + 230
>> 32 org.python.python 0x00000001046f3a7f load_source_module + 975
>> 33 org.python.python 0x00000001046f3df1 load_package + 321
>> 34 org.python.python 0x00000001046f354d import_submodule + 285
>> 35 org.python.python 0x00000001046f2f9e load_next + 270
>> 36 org.python.python 0x00000001046f1dc5 PyImport_ImportModuleLevel + 757
>> 37 org.python.python 0x00000001046c9629 builtin___import__ + 137
>> 38 org.python.python 0x00000001046d540c PyEval_EvalFrameEx + 26124
>> 39 org.python.python 0x0000000104641d64 gen_send_ex + 180
>> 40 org.python.python 0x00000001046d4589 PyEval_EvalFrameEx + 22409
>> 41 org.python.python 0x00000001046ceb64 PyEval_EvalCodeEx + 2132
>> 42 org.python.python 0x00000001046db9da fast_function + 106
>> 43 org.python.python 0x00000001046d4bcf PyEval_EvalFrameEx + 24015
>> 44 org.python.python 0x00000001046ceb64 PyEval_EvalCodeEx + 2132
>> 45 org.python.python 0x00000001046db9da fast_function + 106
>> 46 org.python.python 0x00000001046d4bcf PyEval_EvalFrameEx + 24015
>> 47 org.python.python 0x00000001046dbac1 fast_function + 337
>> 48 org.python.python 0x00000001046d4bcf PyEval_EvalFrameEx + 24015
>> 49 org.python.python 0x00000001046dbac1 fast_function + 337
>> 50 org.python.python 0x00000001046d4bcf PyEval_EvalFrameEx + 24015
>> 51 org.python.python 0x00000001046ceb64 PyEval_EvalCodeEx + 2132
>> 52 org.python.python 0x000000010464d734 function_call + 340
>> 53 org.python.python 0x0000000104622ff1 PyObject_Call + 97
>> 54 org.python.python 0x0000000104632f24 instancemethod_call + 180
>> 55 org.python.python 0x0000000104622ff1 PyObject_Call + 97
>> 56 org.python.python 0x0000000104631ffe instance_call + 110
>> 57 org.python.python 0x0000000104622ff1 PyObject_Call + 97
>> 58 org.python.python 0x00000001046d5dd7 PyEval_EvalFrameEx + 28631
>> 59 org.python.python 0x00000001046ceb64 PyEval_EvalCodeEx + 2132
>> 60 org.python.python 0x000000010464d734 function_call + 340
>> 61 org.python.python 0x0000000104622ff1 PyObject_Call + 97
>> 62 org.python.python 0x0000000104632f24 instancemethod_call + 180
>> 63 org.python.python 0x0000000104622ff1 PyObject_Call + 97
>> 64 org.python.python 0x0000000104688438 slot_tp_call + 168
>> 65 org.python.python 0x0000000104622ff1 PyObject_Call + 97
>> 66 org.python.python 0x00000001046d512c PyEval_EvalFrameEx + 25388
>> 67 org.python.python 0x00000001046ceb64 PyEval_EvalCodeEx + 2132
>> 68 org.python.python 0x00000001046ce302 PyEval_EvalCode + 34
>> 69 org.python.python 0x00000001046feefb PyRun_InteractiveOneFlags + 443
>> 70 org.python.python 0x00000001046fe91e PyRun_InteractiveLoopFlags + 158
>> 71 org.python.python 0x00000001046fe7b0 PyRun_AnyFileExFlags + 64
>> 72 org.python.python 0x00000001047169a4 Py_Main + 3252
>> 73 libdyld.dylib 0x00007fff72e457fd start + 1
>>
>> Thread 1:
>> 0 libsystem_pthread.dylib 0x00007fff73045818 start_wqthread + 0
>>
>> Thread 2:
>> 0 libsystem_pthread.dylib 0x00007fff73045818 start_wqthread + 0
>>
>> Thread 0 crashed with X86 Thread State (64-bit):
>> rax: 0x0000000000000408 rbx: 0x0000000105f403b0 rcx: 0x0000000000000400 rdx: 0x0000000104772600
>> rdi: 0x0000000105a7a0f0 rsi: 0x0000000105a7a0f0 rbp: 0x00007ffeeb5f19e0 rsp: 0x00007ffeeb5f1960
>> r8: 0x0000000105f403e8 r9: 0x000000000000000e r10: 0x0000000000000010 r11: 0xffffffffffbc64d0
>> r12: 0x0000000105f403b0 r13: 0x00000000fffffffe r14: 0x0000000000000000 r15: 0x0000000105ec4b00
>> rip: 0x0000000105e91703 rfl: 0x0000000000010202 cr2: 0x0000000105ec4b1e
>>
>> Logical CPU: 2
>> Error Code: 0x00000007 (invalid protections for user data read)
>> Trap Number: 14
>> ==========cut=================
>>
>> do you see the problem? I don't :|
>
> Fixed!
>
> https://github.com/macports/macports-ports/commit/d28bf24c7f754c2b49ff36eb57eb6aec4e687e5f
>
> Wait an hour, then you can "sudo port selfupdate" and "sudo port upgrade outdated" to receive the fix.
>
>
> The fact that it crashed in setup_descr tipped me off that it was the same problem we fixed in py36-pyobjc / py37-pyobjc / py38-pyobjc awhile ago:
>
> https://trac.macports.org/ticket/59781#comment:24
>
> https://github.com/macports/macports-ports/commit/d16123838f5fd089fbab17d93e9719f1c57ea126
>
> (PyObjC was writing to a memory location that had been declared read-only; macOS versions prior to Catalina allowed this but Catalina forces a crash so that the developer is forced to fix this.)
>
> We hadn't brought this fix back to py27-pyobjc / py35-pyobjc but now we have.
>
>
>
More information about the macports-users
mailing list