"Got signal before environment was installed on our thread"

Dima Pasechnik dimpase+ecl at gmail.com
Thu Aug 31 13:29:59 UTC 2017


Dear all,

I'm struggling to understand strange segfaults coming from
ECL(+Maxima) on FreeBSD embedded into Python; they typically look as
follows:

Got signal before environment was installed on our thread
  [2: No such file or directory]

;;; ECL C Backtrace
;;;    0 ecl_internal_error (0x87d790765)
;;;    1 init_unixint (0x87d7b6bd0)
;;;    2 init_unixint (0x87d7b6972)
;;;    3 pthread_sigmask (0x80103779d)
;;;    4 pthread_getspecific (0x801036d6f)
;;;    5 unknown (0x7ffffffff193)
;;;    6 GC_push_all_stacks (0x87db1ea2c)
;;;    7 GC_mark_some (0x87db12eec)
;;;    8 GC_stopped_mark (0x87db09baa)
;;;    9 GC_try_to_collect_inner (0x87db09a75)
;;;   10 GC_init (0x87db16f4f)
;;;   11 init_alloc (0x87d7caa59)
;;;   12 cl_boot (0x87d694a5b)
;;;   13 initecl (0x87d218340)
;;;   14 initecl (0x87d20a43f)
;;;   15 initecl (0x87d207e28)
;;;   16 _PyImport_LoadDynamicModule (0x800b3ed1c)
;;;   17 PyImport_AppendInittab (0x800b3d71f)
;;;   18 PyImport_AppendInittab (0x800b3d1a8)
;;;   19 PyImport_ImportModuleLevel (0x800b3c2ce)
;;;   20 _PyBuiltin_Init (0x800b162d7)
;;;   21 PyObject_Call (0x800a7d3e3)
;;;   22 PyEval_EvalFrameEx (0x800b2121c)
;;;   23 PyEval_EvalCodeEx (0x800b1b5d4)
;;;   24 PyEval_EvalCode (0x800b1ad96)
;;;   25 PyImport_ExecCodeModuleEx (0x800b3ad11)
;;;   26 PyImport_AppendInittab (0x800b3ddb8)
;;;   27 PyImport_AppendInittab (0x800b3d71f)
;;;   28 PyImport_AppendInittab (0x800b3d1a8)
;;;   29 PyImport_ImportModuleLevel (0x800b3c2ce)
;;;   30 _PyBuiltin_Init (0x800b162d7)
;;;   31 PyEval_EvalFrameEx (0x800b22dd1)
Segmentation fault (core dumped)

It looks as if ECL (version 16.1.2) is being called before an
initialisation is complete, but it it possible to say more without a
debugger?

More details: is is on FreeBSD 11.0, clang 3.8.0, GC version 7.6.0
with libatomic_ops version 7.4.6.
And only reproducible on FreeBSD.

ECL is built with --disable-threads; GC is built with or without
threads---result is still the same.
(so it's unclear to me where pthread_* calls in the trace
come from).

Thanks,
Dima

PS. the segfault is at the bottom of
https://trac.sagemath.org/ticket/22679#comment:87



More information about the ecl-devel mailing list