Seg fault in libvectorscan5 hs_compile_multi on ARM64
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
vectorscan (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
I have recreated this on both Ubuntu 22.04 and 24.04 on multiple ARM64 environments. This was initially encountered in a Python application that uses ctypes to interface with the shared vectorscan library. The back trace for the seg fault is below.
Program received signal SIGSEGV, Segmentation fault.
ue2::shellHasOn
Download failed: Invalid argument. Continuing without source file ./obj-aarch64-
232 ./src/nfagraph/
(gdb) bt
#0 ue2::shellHasOn
#1 ue2::shellHasOn
#2 ue2::splitIntoC
max_
#3 0x0000fffff638c774 in ue2::calcComponents (g=..., grey=...) at ./src/util/
#4 0x0000fffff632cf00 in ue2::NG::addGraph (g_ptr=..., expr=..., this=0xffffffff
#5 ue2::addExpression (ng=..., index=index@
at ./src/compiler/
#6 0x0000fffff632f060 in ue2::hs_
elements=5778, mode=<optimized out>, platform=
#7 0x0000fffff632f644 in hs_compile_multi (expressions=
mode=<optimized out>, platform=0x0, db=<optimized out>, error=<optimized out>) at ./src/hs.cpp:441
#8 0x0000fffff6836e10 in ffi_call_SYSV () at ../src/
#9 0x0000fffff6833a94 in ffi_call_int (cif=0xffffffff
closure=
#10 0x0000fffff68621c8 in ?? () from /usr/lib/
#11 0x0000fffff6860974 in ?? () from /usr/lib/
#12 0x0000aaaaaab9aca0 in _PyObject_
#13 0x0000aaaaaab91af4 in _PyEval_
#14 0x0000aaaaaaba5348 in _PyFunction_
#15 0x0000aaaaaab8e2ac in _PyEval_
#16 0x0000aaaaaaba5348 in _PyFunction_
#17 0x0000aaaaaab8d3f8 in _PyEval_
#18 0x0000aaaaaaba5348 in _PyFunction_
#19 0x0000aaaaaab8d3f8 in _PyEval_
#20 0x0000aaaaaaba5348 in _PyFunction_
#21 0x0000aaaaaab9177c in _PyEval_
#22 0x0000aaaaaaba5348 in _PyFunction_
#23 0x0000aaaaaab8d3f8 in _PyEval_
#24 0x0000aaaaaaba5348 in _PyFunction_
#25 0x0000aaaaaab8d3f8 in _PyEval_
#26 0x0000aaaaaabb4148 in ?? ()
#27 0x0000aaaaaab8e2ac in _PyEval_
#28 0x0000aaaaaaba5348 in _PyFunction_
#29 0x0000aaaaaab8d3f8 in _PyEval_
#30 0x0000aaaaaaba5348 in _PyFunction_
#31 0x0000aaaaaab8d3f8 in _PyEval_
#32 0x0000aaaaaaba5348 in _PyFunction_
#33 0x0000aaaaaab8d2bc in _PyEval_
#34 0x0000aaaaaac89760 in ?? ()
#35 0x0000aaaaaac895e4 in PyEval_EvalCode ()
#36 0x0000aaaaaac9186c in ?? ()
#37 0x0000aaaaaaba559c in ?? ()
#38 0x0000aaaaaab8d2bc in _PyEval_
#39 0x0000aaaaaaba5348 in _PyFunction_
#40 0x0000aaaaaab8d2bc in _PyEval_
#41 0x0000aaaaaaba5348 in _PyFunction_
#42 0x0000aaaaaacad824 in ?? ()
#43 0x0000aaaaaacabe90 in Py_RunMain ()
#44 0x0000aaaaaac7a748 in Py_BytesMain ()
#45 0x0000fffff7d273fc in __libc_
at ../sysdeps/
#46 0x0000fffff7d274cc in __libc_
rtld_
#47 0x0000aaaaaac7a630 in _start ()
When manually building/installing the exact same version of vectorscan on the same host (from the original source at https:/
To recreate, install libvectorscan5 and libvectorscan5-dev, then build the attached example program (clang -o vectorscan_segfault vectorscan_
It doesn't look like my initial attachment was saved, so I'm attaching it again. This is a minimal example program that recreates the issue with the shared library.