"Got signal before environment was installed on our thread"

Dima Pasechnik <[email protected]>
Newsgroups gmane.lisp.ecl.general
Message-ID <CAAWYfq0M-mNXWxE1bHF6td4sY3LkhhVqQS1N72ww5Zg=GKGKug@mail.gmail.com>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.