sinaatalay / rendercv

A LaTeX CV/Resume Framework
http://docs.rendercv.com
MIT License
725 stars 63 forks source link

Segfault running CLI on MacOS Cataline #86

Closed navijation closed 1 month ago

navijation commented 1 month ago

Describe the bug

Running rendercv in any capacity causes a segfault right on the import step in the CLI entry point.

To Reproduce

Simply running python3 -m rendercv after python3 -m pip install --break-system-packages --user rendercv reproduces the error on my system. This happens immediately upon loading the module, before the application can execute.

OS: MacOS Catalina v10.15.7 Arch: i386

This might be a bug in PyMuPDF itself.

Screenshots

Using lldb to trace the Python executable, I get the following backtrace:

* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
  * frame #0: 0x000000014400c000 libmupdfcpp.so
    frame #1: 0x00000001427d380f libmupdf.dylib`fz_new_store_context + 31
    frame #2: 0x00000001427170e6 libmupdf.dylib`fz_new_context_imp + 406
    frame #3: 0x0000000144084f39 libmupdfcpp.so`mupdf::internal_state::reinit(bool) + 361
    frame #4: 0x000000014408510a libmupdfcpp.so`mupdf::internal_state::internal_state() + 282
    frame #5: 0x0000000144085382 libmupdfcpp.so`mupdf::internal_thread_state::~internal_thread_state() + 258
    frame #6: 0x0000000100028353 dyld`ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) + 535
    frame #7: 0x000000010002875e dyld`ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 40
    frame #8: 0x000000010002317b dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 493
    frame #9: 0x00000001000230e6 dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 344
    frame #10: 0x0000000100021234 dyld`ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 188
    frame #11: 0x00000001000212d4 dyld`ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) + 82
    frame #12: 0x0000000100012ef2 dyld`dyld::runInitializers(ImageLoader*) + 82
    frame #13: 0x000000010001d01b dyld`dlopen_internal + 609
    frame #14: 0x00007fff6e944d8a libdyld.dylib`dlopen + 171
    frame #15: 0x0000000100336793 Python`_PyImport_FindSharedFuncptr + 139
    frame #16: 0x00000001002f399f Python`_PyImport_LoadDynamicModuleWithSpec + 479
    frame #17: 0x00000001002f2dd4 Python`_imp_create_dynamic + 171
    frame #18: 0x00000001001de832 Python`cfunction_vectorcall_FASTCALL + 98
    frame #19: 0x000000010029dacd Python`_PyEval_EvalFrameDefault + 60566
    frame #20: 0x000000010018841e Python`object_vacall + 320
    frame #21: 0x000000010018828c Python`PyObject_CallMethodObjArgs + 231
    frame #22: 0x00000001002f00fc Python`PyImport_ImportModuleLevelObject + 1064
    frame #23: 0x00000001002892ad Python`builtin___import__ + 192
    frame #24: 0x00000001001de908 Python`cfunction_vectorcall_FASTCALL_KEYWORDS + 90
    frame #25: 0x000000010029dacd Python`_PyEval_EvalFrameDefault + 60566
    frame #26: 0x000000010018841e Python`object_vacall + 320
    frame #27: 0x000000010018828c Python`PyObject_CallMethodObjArgs + 231
    frame #28: 0x00000001002effdf Python`PyImport_ImportModuleLevelObject + 779
    frame #29: 0x00000001002983d5 Python`_PyEval_EvalFrameDefault + 38302
    frame #30: 0x000000010028ec62 Python`PyEval_EvalCode + 304
    frame #31: 0x000000010028add1 Python`builtin_exec + 481
    frame #32: 0x00000001001de908 Python`cfunction_vectorcall_FASTCALL_KEYWORDS + 90
    frame #33: 0x000000010029dacd Python`_PyEval_EvalFrameDefault + 60566
    frame #34: 0x000000010018841e Python`object_vacall + 320
    frame #35: 0x000000010018828c Python`PyObject_CallMethodObjArgs + 231
    frame #36: 0x00000001002f00fc Python`PyImport_ImportModuleLevelObject + 1064
    frame #37: 0x00000001002892ad Python`builtin___import__ + 192
    frame #38: 0x00000001001de908 Python`cfunction_vectorcall_FASTCALL_KEYWORDS + 90
    frame #39: 0x000000010029dacd Python`_PyEval_EvalFrameDefault + 60566
    frame #40: 0x000000010018841e Python`object_vacall + 320
    frame #41: 0x000000010018828c Python`PyObject_CallMethodObjArgs + 231
    frame #42: 0x00000001002effdf Python`PyImport_ImportModuleLevelObject + 779
    frame #43: 0x00000001002983d5 Python`_PyEval_EvalFrameDefault + 38302
    frame #44: 0x000000010028ec62 Python`PyEval_EvalCode + 304
    frame #45: 0x000000010028add1 Python`builtin_exec + 481
    frame #46: 0x00000001001de908 Python`cfunction_vectorcall_FASTCALL_KEYWORDS + 90
    frame #47: 0x000000010029dacd Python`_PyEval_EvalFrameDefault + 60566
    frame #48: 0x000000010018841e Python`object_vacall + 320
    frame #49: 0x000000010018828c Python`PyObject_CallMethodObjArgs + 231
    frame #50: 0x00000001002f00fc Python`PyImport_ImportModuleLevelObject + 1064
    frame #51: 0x00000001002983d5 Python`_PyEval_EvalFrameDefault + 38302
    frame #52: 0x000000010028ec62 Python`PyEval_EvalCode + 304
    frame #53: 0x000000010028add1 Python`builtin_exec + 481
    frame #54: 0x00000001001de908 Python`cfunction_vectorcall_FASTCALL_KEYWORDS + 90
    frame #55: 0x000000010029dacd Python`_PyEval_EvalFrameDefault + 60566
    frame #56: 0x000000010018841e Python`object_vacall + 320
    frame #57: 0x000000010018828c Python`PyObject_CallMethodObjArgs + 231
    frame #58: 0x00000001002f00fc Python`PyImport_ImportModuleLevelObject + 1064
    frame #59: 0x00000001002983d5 Python`_PyEval_EvalFrameDefault + 38302
    frame #60: 0x000000010028ec62 Python`PyEval_EvalCode + 304
    frame #61: 0x000000010028add1 Python`builtin_exec + 481
    frame #62: 0x00000001001de908 Python`cfunction_vectorcall_FASTCALL_KEYWORDS + 90
    frame #63: 0x000000010029dacd Python`_PyEval_EvalFrameDefault + 60566
    frame #64: 0x000000010018841e Python`object_vacall + 320
    frame #65: 0x000000010018828c Python`PyObject_CallMethodObjArgs + 231
    frame #66: 0x00000001002f00fc Python`PyImport_ImportModuleLevelObject + 1064
    frame #67: 0x00000001002892ad Python`builtin___import__ + 192
    frame #68: 0x00000001001de908 Python`cfunction_vectorcall_FASTCALL_KEYWORDS + 90
    frame #69: 0x000000010029dacd Python`_PyEval_EvalFrameDefault + 60566
    frame #70: 0x000000010018841e Python`object_vacall + 320
    frame #71: 0x000000010018828c Python`PyObject_CallMethodObjArgs + 231
    frame #72: 0x00000001002effdf Python`PyImport_ImportModuleLevelObject + 779
    frame #73: 0x00000001002983d5 Python`_PyEval_EvalFrameDefault + 38302
    frame #74: 0x000000010028ec62 Python`PyEval_EvalCode + 304
    frame #75: 0x000000010028add1 Python`builtin_exec + 481
    frame #76: 0x00000001001de908 Python`cfunction_vectorcall_FASTCALL_KEYWORDS + 90
    frame #77: 0x000000010029dacd Python`_PyEval_EvalFrameDefault + 60566
    frame #78: 0x000000010018841e Python`object_vacall + 320
    frame #79: 0x000000010018828c Python`PyObject_CallMethodObjArgs + 231
    frame #80: 0x00000001002f00fc Python`PyImport_ImportModuleLevelObject + 1064
    frame #81: 0x00000001002983d5 Python`_PyEval_EvalFrameDefault + 38302
    frame #82: 0x000000010028ec62 Python`PyEval_EvalCode + 304
    frame #83: 0x000000010028add1 Python`builtin_exec + 481
    frame #84: 0x00000001001de908 Python`cfunction_vectorcall_FASTCALL_KEYWORDS + 90
    frame #85: 0x000000010029b96a Python`_PyEval_EvalFrameDefault + 52019
    frame #86: 0x0000000100337248 Python`pymain_run_module + 423
    frame #87: 0x0000000100336ba6 Python`pymain_run_python + 586
    frame #88: 0x0000000100336919 Python`Py_RunMain + 23
    frame #89: 0x0000000100336d39 Python`pymain_main + 35
    frame #90: 0x0000000100336d8f Python`Py_BytesMain + 42
    frame #91: 0x00007fff6e959cc9 libdyld.dylib`start + 1
navijation commented 1 month ago

Seems like pymupdf/PyMuPDF#3495 already tracks this issue. Closing as the fault appears to entirely be in the library.