[ 
https://issues.apache.org/jira/browse/ARROW-16340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17631416#comment-17631416
 ] 

Kouhei Sutou edited comment on ARROW-16340 at 11/11/22 4:42 AM:
----------------------------------------------------------------

[~kou] I follow your instruction (with some slight modification) to make it 
compiled and running but ran into some segfault during importing`pyarrow` 
module.

*1) Since I create a python binding, I use this python binding in my Python 
code.* `py::scoped_interpreter guard{}` seems not necessary because that will 
embed another interpreter, otherwise, pybind will report `the interpreter is 
already running` error. This is the only thing I revised.

*2) In my python code:*
{code:java}
import my_python_binding
import pyarrow # this lines triggers segfault{code}
Some error like below is reported:

 
{code:java}
......
free(): invalid pointer
Fatal Python error: Aborted
Current thread 0x00007fae68f939c0 (most recent call first):
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1176 in create_module
  File "<frozen importlib._bootstrap>", line 571 in module_from_spec
  File "<frozen importlib._bootstrap>", line 674 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1006 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1027 in _find_and_load
  File 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/__init__.py",
 line 65 in <module>
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 883 in exec_module
  File "<frozen importlib._bootstrap>", line 688 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1006 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1027 in _find_and_load
  File "/usr/src/stonewave/bindings/python/<redated>/<redated>/search.py", line 
16 in search{code}
The line 65 of {{pyarrow/\_\_init\_\_.py}} is:
{code:java}
import pyarrow.lib as _lib{code}
 

 

{*}3) a core dump was generated{*}, and I use gdb to briefly view the core 
dump, it looks like this:
{code:java}
#0  raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {__val = {0 <repeats 16 times>}}
        pid = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
#1  <signal handler called>
No locals.
#2  0x00007fefa03eb735 in {}gnu_cxx::{}exchange_and_add ({_}_mem=0xa, __val=-1) 
at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/ext/atomicity.h:50
No locals.
#3  {}gnu_cxx::{}exchange_and_add_dispatch ({_}_mem=0xa, __val=-1) at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/ext/atomicity.h:84
No locals.
#4  std::Sp_counted_base<(_gnu_cxx::_Lock_policy)2>::_M_release (this=0x2) at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:155
No locals.
#5  0x00007fefa03eb6da in 
std::{}shared_count<({}gnu_cxx::Lock_policy)2>::~_shared_count (this=0x1bca350) 
at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:733
No locals.
#6  0x00007fefa0463c5e in std::{}shared_ptr<arrow::StatusDetail, 
({}gnu_cxx::Lock_policy)2>::~_shared_ptr (this=0x1bca348)
    at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:1183
No locals.
#7  0x00007fefa0463c38 in std::shared_ptr<arrow::StatusDetail>::~shared_ptr 
(this=0x1bca348) at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr.h:121
No locals.
#8  0x00007fefa0463c06 in arrow::Status::State::~State (this=0x1bca320) at 
/vcpkg/installed/x64-linux-haswell/include/arrow/status.h:347
No locals.
#9  0x00007fefa0463b9e in arrow::Status::DeleteState (this=0x7ffdcda1dd20) at 
/vcpkg/installed/x64-linux-haswell/include/arrow/status.h:357
No locals.
#10 0x00007fef93345f0c in arrow::internal::GetEnvVar(char const*) () from 
/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/libarrow.so.1000
No symbol table info available.
#11 0x00007fef93398924 in arrow::io::internal::GetIOThreadPool() () from 
/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/libarrow.so.1000
No symbol table info available.
#12 0x00007fef928ca51e in GLOBAL_sub_I_unity_6_cxx.cxx () from 
/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/libarrow.so.1000
No symbol table info available.
#13 0x00007fefae7fcfe2 in call_init (l=<optimized out>, argc=argc@entry=3, 
argv=argv@entry=0x7ffdcda20dc8, env=env@entry=0x7ffdcda20de8) at dl-init.c:72
        j = 0
        jm = <optimized out>
        addrs = <optimized out>
        init_array = <optimized out>
#14 0x00007fefae7fd0e9 in call_init (env=0x7ffdcda20de8, argv=0x7ffdcda20dc8, 
argc=3, l=<optimized out>) at dl-init.c:30
        init_array = <optimized out>
        j = <optimized out>
        jm = <optimized out>
        addrs = <optimized out>
#15 _dl_init (main_map=0x1baa930, argc=3, argv=0x7ffdcda20dc8, 
env=0x7ffdcda20de8) at dl-init.c:119
        preinit_array = <optimized out>
        preinit_array_size = <optimized out>
        i = <optimized out>
#16 0x00007fef9a56faed in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x0, operate=operate@entry=0x7fefae8005d0 
<call_dl_init>, args=args@entry=0x7ffdcda1dfd0) at dl-error-skeleton.c:182
        old = <optimized out>
        errcode = 0
{}Type <RET> for more, q to quit, c to continue without paging{}
        c = {exception = 0x7ffdcda1df30, errcode = 0x0, env = {{__jmpbuf =
{140728053391152, 0, 0, 140666978835288, 29011096, 140666978907692, 
140666978805312, 140666981352408}
, __mask_was_saved = -1790078976,
              {}saved_mask = {{_}_val =
{0, 140728053391248, 140667076916640, 0, 0, 0, 0, 0, 0, 0, 0, 
12468370135039750697, 140728053391728, 140728053391216, 140728053391728, 
140728053391392}
}}}}
        old = <optimized out>
#17 0x00007fefae801058 in dl_open_worker (a=a@entry=0x7ffdcda1e170) at 
dl-open.c:758
        init_args = {new = 0x1baa930, argc = 3, argv = 0x7ffdcda20dc8, env = 
0x7ffdcda20de8}
        args = 0x7ffdcda1e170
        file = <optimized out>
        mode = <optimized out>
        call_map = <optimized out>
        dst = <optimized out>
        new = 0x1baa930
        {}PRETTY_FUNCTION{} = "dl_open_worker"
        r = <optimized out>
        reloc_mode = <optimized out>
        nmaps = <optimized out>
        l = <optimized out>
        maps = <error reading variable maps (value requires 34359738360 bytes, 
which is more than max-value-size)>
        relocation_in_progress = <optimized out>
        any_tls = <optimized out>
#18 0x00007fef9a56fa90 in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x7ffdcda1e150, operate=operate@entry=0x7fefae800ca0 
<dl_open_worker>, args=args@entry=0x7ffdcda1e170) at dl-error-skeleton.c:208
        errcode = 0
        c = {exception = 0x7ffdcda1e150, errcode = 0x7ffdcda1e05c, env = 
{{__jmpbuf =
{2147483650, -855320820084358115, -74376, 3, 5369100, -2, -863008342291758051, 
-855308368215391203}
, __mask_was_saved = 0,
              {}saved_mask = {{_}_val =
{140667001712800, 140667001712800, 4506233, 140667001207448, 15, 
140667001207392, 140667001712848, 140728053391680, 140728053391712, 
140728053392737, 660865357547929600,                   140728053392480, 0, 257, 
140728053391712, 6671076}
}}}}
        old = 0x7ffdcda1e240
#19 0x00007fefae8008fa in _dl_open (file=0x7fef95808100 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 mode=-2147483646,
    caller_dlopen=0x51ed0c <_PyImport_FindSharedFuncptr+284>, nsid=-2, argc=3, 
argv=0x7ffdcda1e150, env=0x7ffdcda20de8) at dl-open.c:837
        args =
{file = 0x7fef95808100 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 mode = -2147483646,           caller_dlopen = 0x51ed0c 
<_PyImport_FindSharedFuncptr+284>, map = 0x1baa930, nsid = 0, 
original_global_scope_pending_adds = 0, argc = 3, argv = 0x7ffdcda20dc8, env = 
0x7ffdcda20de8}
        exception =
{objname = 0x439830 <list_richcompare> "UAWAVAUATSPH\213G\b\366\200\253", 
errstring = 0x7ffdcda1e250 "8Y\217\001",           message_buffer = 0xfbad8001 
<error: Cannot access memory at address 0xfbad8001>}
        errcode = <optimized out>
        {}PRETTY_FUNCTION{} = "_dl_open"
#20 0x00007fef9a75a258 in dlopen_doit (a=a@entry=0x7ffdcda1e390) at dlopen.c:66
        args = 0x7ffdcda1e390
#21 0x00007fef9a56fa90 in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x7ffdcda1e330, operate=operate@entry=0x7fef9a75a200 
<dlopen_doit>, args=args@entry=0x7ffdcda1e390) at dl-error-skeleton.c:208
        errcode = 32751
        c = {exception = 0x7ffdcda1e330, errcode = 0x7ffdcda1e23c, env = 
{{__jmpbuf =
{26171704, 864236073942795293, -74376, 140666982652160, 140666983577264, 
140666982138112, -863008342354672611,                 -855308368215391203}
, {}mask_was_saved = 0, _saved_mask = {_val =
{660865357547929600, 9223372036854775807, 258, 0, 0, 140666982652160, 
140728053392480, 140666982138112, 5216203, 206158430248,                   
140728053392336, 140728053392128, 140667001246696, 140667001246696, 2, 
140667001308992}
}}}}
        old = 0x0
#22 0x00007fef9a56fb4f in {}GI{_}_dl_catch_error 
(objname=objname@entry=0x18f5940, errstring=errstring@entry=0x18f5948, 
mallocedp=mallocedp@entry=0x18f5938, operate=operate@entry=0x7fef9a75a200 
<dlopen_doit>,
    args=args@entry=0x7ffdcda1e390) at dl-error-skeleton.c:227
        exception = {objname = 0x0, errstring = 0x2 <error: Cannot access 
memory at address 0x2>, message_buffer = 0x1 <error: Cannot access memory at 
address 0x1>}
        errorcode = <optimized out>
#23 0x00007fef9a75aa65 in _dlerror_run (operate=operate@entry=0x7fef9a75a200 
<dlopen_doit>, args=args@entry=0x7ffdcda1e390) at dlerror.c:170
        result = 0x18f5930
{}Type <RET> for more, q to quit, c to continue without paging{}
#24 0x00007fef9a75a2e4 in __dlopen (file=<optimized out>, mode=<optimized out>) 
at dlopen.c:87
        args =
{file = 0x7fef95808100 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 mode = 2, new = 0x1a4acd0,           caller = 0x51ed0c 
<_PyImport_FindSharedFuncptr+284>}
#25 0x000000000051ed0c in _PyImport_FindSharedFuncptr (prefix=0x64fb3d 
"PyInit", shortname=0x7fef959676b0 "lib",
    pathname=0x7fef95808100 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 fp=0x0) at ./Python/dynload_shlib.c:100
        funcname = "PyInit_lib", '\000' <repeats 22 times>, 
"\340\371\234\225\357\177\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\001",
 '\000' <repeats 43 times>, 
"O\373d\000\000\000\000\000\320\254\244\001\000\000\000\000\060=\204\225\357\177\000\000P\345\241\315\375\177\000\000\002\000\000\000\000\000\000\000P\345\241\315\375\177\000\000\000\000\000\000\000\000\000\000V\357Y\000\000\000\000\000\240\356Y\000\000\000\000\000\220v\226\225\357\177\000\000\070\004\212\225\357\177\000\000"...
        pathbuf = 
"\002\000\000\000\000\000\000\000\350\357`\331\210,eY\000\321\254\226\357\177\000\000\236\272D\000\000\000\000\000\230z\243\226\357\177\000\000\000\000\000\000\000\000\000\000p\307\177\225\357\177\000\000\000Y\210\225\357\177\000\000\260A\212\225\357\177\000\000\220v\226\225\357\177\000\000\000\000\000\000\000\000\000\000\023\305P\000\000\000\000\000\020\000\000\000\060\000\000\000\260\346\241\315\375\177\000\000\360\345\241\315\375\177\000\000\000Y\210\225\357\177\000\000\000\000\000\000\000\000\000\000Q\274D\000\000\000\000\000p\307\177\225\357\177\000\000\260A\212\225\357\177\000\000\340\251p\000\000\000\000\000\340\251p\000\000\000\000\000\360\071j\000\000\000\000\000\003",
 '\000' <repeats 15 times>...
        dlopenflags = 29139752
        handle = <optimized out>
        p = <optimized out>
#26 0x00000000004eaa4e in _PyImport_LoadDynamicModuleWithSpec 
(spec=0x7fef95885900, fp=0x0) at ./Python/importdl.c:137
        m = 0x0
        path = <optimized out>
        name = 0x7fef95967690
        name_unicode = 0x7fef957fc770
        pathbytes = 0x7fef958080e0
        hook_prefix = 0x64fb3d "PyInit"
        name_buf = 0x7fef959676b0 "lib"
        exportfunc = <optimized out>
        p0 = <optimized out>
        oldcontext = <optimized out>
        def = <optimized out>
        modules = <optimized out>
#27 0x00000000004ea40e in _imp_create_dynamic_impl (module=<optimized out>, 
spec=0x7fef95885900, file=<optimized out>) at Python/import.c:2049
        name = 0x7fef957fc770
        path = 0x7fef958a41b0
        tstate = <optimized out>
        mod = 0x0
        fp = 0x0
#28 _imp_create_dynamic (module=<optimized out>, args=<optimized out>, 
nargs=<optimized out>) at Python/clinic/import.c.h:330
        file = <optimized out>
        return_value = 0x0
        spec = 0x7fef95885900
#29 0x000000000059ef56 in cfunction_vectorcall_FASTCALL (func=0x7fef96ac58a0, 
args=0x7fef95885168, nargsf=<optimized out>, kwnames=<optimized out>) at 
Objects/methodobject.c:430
        tstate = 0x1a4acd0
        nargs = 1
        meth = 0xa
        result = <optimized out>
#30 0x00000000004c1fe7 in do_call_core (tstate=0x1a4acd0, 
trace_info=0x7ffdcda1e7c0, func=0x7fef96ac58a0, callargs=0x7fef95885150, 
kwdict=0x0) at Python/ceval.c:5915
        result = <optimized out>
        nargs = <optimized out>
        self = <optimized out>
{}Type <RET> for more, q to quit, c to continue without paging{}
#31 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7fef96a5f490, 
throwflag=<optimized out>) at Python/ceval.c:4277
        func = 0x7fef96ac58a0
        kwargs = <optimized out>
        callargs = 0x7fef95885150
        result = <optimized out>
        opcode_targets =
{0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bbe90 
<_PyEval_EvalFrameDefault+2064>, 0x4bbeda <_PyEval_EvalFrameDefault+2138>, 
0x4bbf20 <_PyEval_EvalFrameDefault+2208>,           0x4bbfba 
<_PyEval_EvalFrameDefault+2362>, 0x4bc00f <_PyEval_EvalFrameDefault+2447>, 
0x4bbf69 <_PyEval_EvalFrameDefault+2281>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bbd3f <_PyEval_EvalFrameDefault+1727>, 
0x4bc070 <_PyEval_EvalFrameDefault+2544>, 0x4bc0e7 
<_PyEval_EvalFrameDefault+2663>,           0x4bc15e 
<_PyEval_EvalFrameDefault+2782>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bc23f 
<_PyEval_EvalFrameDefault+3007>,           0x4bc3e8 
<_PyEval_EvalFrameDefault+3432>, 0x4bcda4 <_PyEval_EvalFrameDefault+5924>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bc2b6 
<_PyEval_EvalFrameDefault+3126>,           0x4bc353 
<_PyEval_EvalFrameDefault+3283>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4bc5a7 <_PyEval_EvalFrameDefault+3879>, 0x4bc6af 
<_PyEval_EvalFrameDefault+4143>,           0x4bc76f 
<_PyEval_EvalFrameDefault+4335>, 0x4bc804 <_PyEval_EvalFrameDefault+4484>, 
0x4bc512 <_PyEval_EvalFrameDefault+3730>, 0x4bc47d 
<_PyEval_EvalFrameDefault+3581>,           0x4bcece 
<_PyEval_EvalFrameDefault+6222>, 0x4bce39 <_PyEval_EvalFrameDefault+6073>, 
0x4c0bbe <_PyEval_EvalFrameDefault+21822>, 0x4c0ff9 
<_PyEval_EvalFrameDefault+22905>,           0x4c1067 
<_PyEval_EvalFrameDefault+23015>, 0x4c10d5 <_PyEval_EvalFrameDefault+23125>, 
0x4c142b <_PyEval_EvalFrameDefault+23979>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555> <repeats 14 times>,           0x4c19fa 
<_PyEval_EvalFrameDefault+25466>, 0x4bd6de <_PyEval_EvalFrameDefault+8286>, 
0x4bd78d <_PyEval_EvalFrameDefault+8461>, 0x4c175b 
<_PyEval_EvalFrameDefault+24795>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bdc9f <_PyEval_EvalFrameDefault+9759>, 
0x4bd01c <_PyEval_EvalFrameDefault+6556>, 0x4bd0dc 
<_PyEval_EvalFrameDefault+6748>,           0x4bcd0f 
<_PyEval_EvalFrameDefault+5775>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4bcf63 <_PyEval_EvalFrameDefault+6371>, 0x4bd45a 
<_PyEval_EvalFrameDefault+7642>,           0x4bd51b 
<_PyEval_EvalFrameDefault+7835>, 0x4bc899 <_PyEval_EvalFrameDefault+4633>, 
0x4bc92e <_PyEval_EvalFrameDefault+4782>, 0x4bc9c3 
<_PyEval_EvalFrameDefault+4931>,           0x4bca58 
<_PyEval_EvalFrameDefault+5080>, 0x4bcaed <_PyEval_EvalFrameDefault+5229>, 
0x4bcc72 <_PyEval_EvalFrameDefault+5618>, 0x4c14e1 
<_PyEval_EvalFrameDefault+24161>,           0x4c1558 
<_PyEval_EvalFrameDefault+24280>, 0x4bd5cb <_PyEval_EvalFrameDefault+8011>, 
0x4bde54 <_PyEval_EvalFrameDefault+10196>, 0x4bd962 
<_PyEval_EvalFrameDefault+8930>,           0x4bd855 
<_PyEval_EvalFrameDefault+8661>, 0x4bddfc <_PyEval_EvalFrameDefault+10108>, 
0x4bd171 <_PyEval_EvalFrameDefault+6897>, 0x4bd206 
<_PyEval_EvalFrameDefault+7046>,           0x4bd29b 
<_PyEval_EvalFrameDefault+7195>, 0x4bd330 <_PyEval_EvalFrameDefault+7344>, 
0x4bd3c5 <_PyEval_EvalFrameDefault+7493>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bed46 <_PyEval_EvalFrameDefault+14022>, 
0x4c2ef5 <_PyEval_EvalFrameDefault+30837>, 0x4c008f 
<_PyEval_EvalFrameDefault+18959>,           0x4bf0e3 
<_PyEval_EvalFrameDefault+14947>, 0x4c2f5b <_PyEval_EvalFrameDefault+30939>, 
0x4bdc60 <_PyEval_EvalFrameDefault+9696>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bdb97 
<_PyEval_EvalFrameDefault+9495>, 0x4bdee7 <_PyEval_EvalFrameDefault+10343>, 
0x4bdf9a <_PyEval_EvalFrameDefault+10522>, 0x4bdffe 
<_PyEval_EvalFrameDefault+10622>,           0x4c1604 
<_PyEval_EvalFrameDefault+24452>, 0x4be190 <_PyEval_EvalFrameDefault+11024>, 
0x4be223 <_PyEval_EvalFrameDefault+11171>, 0x4be2c3 
<_PyEval_EvalFrameDefault+11331>,           0x4be342 
<_PyEval_EvalFrameDefault+11458>, 0x4be3c3 <_PyEval_EvalFrameDefault+11587>, 
0x4c26d1 <_PyEval_EvalFrameDefault+28753>, 0x4bbdcd 
<_PyEval_EvalFrameDefault+1869>,           0x4be465 
<_PyEval_EvalFrameDefault+11749>, 0x4bea95 <_PyEval_EvalFrameDefault+13333>, 
0x4bec25 <_PyEval_EvalFrameDefault+13733>, 0x4beec7 
<_PyEval_EvalFrameDefault+14407>,           0x4befda 
<_PyEval_EvalFrameDefault+14682>, 0x4bf953 <_PyEval_EvalFrameDefault+17107>, 
0x4bfb3b <_PyEval_EvalFrameDefault+17595>, 0x4bfec6 
<_PyEval_EvalFrameDefault+18502>,           0x4c047d 
<_PyEval_EvalFrameDefault+19965>, 0x4c05a9 <_PyEval_EvalFrameDefault+20265>, 
0x4c08f0 <_PyEval_EvalFrameDefault+21104>, 0x4c0a2a 
<_PyEval_EvalFrameDefault+21418>,           0x4c0b66 
<_PyEval_EvalFrameDefault+21734>, 0x4c05e7 <_PyEval_EvalFrameDefault+20327>, 
0x4c0764 <_PyEval_EvalFrameDefault+20708>, 0x4be53b 
<_PyEval_EvalFrameDefault+11963>,           0x4bfbd3 
<_PyEval_EvalFrameDefault+17747>, 0x4bfc69 <_PyEval_EvalFrameDefault+17897>, 
0x4c2f1b <_PyEval_EvalFrameDefault+30875>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bfd26 
<_PyEval_EvalFrameDefault+18086>, 0x4c1706 <_PyEval_EvalFrameDefault+24710>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bbd76 
<_PyEval_EvalFrameDefault+1782>,           0x4bbe2e 
<_PyEval_EvalFrameDefault+1966>, 0x4be715 <_PyEval_EvalFrameDefault+12437>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bdb4d 
<_PyEval_EvalFrameDefault+9421>, 0x4c2ec8 <_PyEval_EvalFrameDefault+30792>, 
0x4c1c7d <_PyEval_EvalFrameDefault+26109>, 0x4bbc00 
<_PyEval_EvalFrameDefault+1408>,           0x4c2502 
<_PyEval_EvalFrameDefault+28290>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4be7dd <_PyEval_EvalFrameDefault+12637>, 0x4be912 
<_PyEval_EvalFrameDefault+12946>,           0x4be971 
<_PyEval_EvalFrameDefault+13041>, 0x4be777 <_PyEval_EvalFrameDefault+12535>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c1d13 
<_PyEval_EvalFrameDefault+26259>, 0x4c1dcf <_PyEval_EvalFrameDefault+26447>, 
0x4c18cc <_PyEval_EvalFrameDefault+25164>, 0x4c2750 
<_PyEval_EvalFrameDefault+28880>,           0x4bcb82 
<_PyEval_EvalFrameDefault+5378>, 0x4bcbfa <_PyEval_EvalFrameDefault+5498>, 
0x4bf45b <_PyEval_EvalFrameDefault+15835>, 0x4be83d 
<_PyEval_EvalFrameDefault+12733>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c0c25 
<_PyEval_EvalFrameDefault+21925>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4c1860 <_PyEval_EvalFrameDefault+25056>, 
0x4c25d0 <_PyEval_EvalFrameDefault+28496>, 0x4bf239 
<_PyEval_EvalFrameDefault+15289>,           0x4be9d7 
<_PyEval_EvalFrameDefault+13143>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c1af3 
<_PyEval_EvalFrameDefault+25715>,           0x4c1b9f 
<_PyEval_EvalFrameDefault+25887>, 0x4bedb8 <_PyEval_EvalFrameDefault+14136>, 
0x4bee4f <_PyEval_EvalFrameDefault+14287>, 0x4bf3e1 
<_PyEval_EvalFrameDefault+15713>,           0x4bf36e 
<_PyEval_EvalFrameDefault+15598>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555> 
<repeats 90 times>}
        PyId_displayhook = {string = 0x64aae2 "displayhook", index = -1}
        PyId_send = {string = 0x6a362a "send", index = -1}
        PyId_{}build_class{} = {string = 0x64ac69 "{}build_class{}", index = 18}
{}Type <RET> for more, q to quit, c to continue without paging{}
        PyId_{}annotations{} = {string = 0x655175 "{}annotations{}", index = -1}
        PyId_{}aenter{} = {string = 0x64ae53 "{}aenter{}", index = -1}
        PyId_{}aexit{} = {string = 0x64ae5e "{}aexit{}", index = -1}
        PyId_{}enter{} = {string = 0x606990 "{}enter{}", index = 40}
        PyId_{}exit{} = {string = 0x60699a "{}exit{}", index = 41}
        trace_info = {code = 0x0, bounds = {ar_start = 15, ar_end = 0, ar_line 
= -1767671200, opaque = {computed_line = -1767152416, lo_next = 0x7ffdcda1e830 
"\220\364\245\226\357\177",
              limit = 0x5989e3 <frame_dealloc+163> 
"\353\333A\213D$P\205\300~>1\333\353\032f.\017\037\204"}}, cframe = 
{use_tracing = 0, previous = 0x7ffdcda1ea40}}
        _unknown_opcode = <optimized out>
#32 0x00000000004bb57d in _PyEval_EvalFrame (tstate=0x1a4acd0, 
f=0x7fef96a5f490, throwflag=0) at ./Include/internal/pycore_ceval.h:46
No locals.
#33 _PyEval_Vector (tstate=0x1a4acd0, con=0x7fef96a79520, locals=<optimized 
out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) 
at Python/ceval.c:5065
        f = 0x7fef96a5f490
        retval = <optimized out>
#34 0x00000000004c4823 in call_function (tstate=<optimized out>, 
tstate@entry=0x1a4acd0, trace_info=trace_info@entry=0x7ffdcda1ea10, 
pp_stack=pp_stack@entry=0x7ffdcda1eac8, oparg=<optimized out>,
    oparg@entry=27569360, kwnames=0xffffffff, kwnames@entry=0x0) at 
./Include/cpython/abstract.h:115
        pfunc = 0x7fef96ad5140
        func = 0x7fef96a79510
        nkwargs = <optimized out>
        nargs = <optimized out>
        stack = 0x7fef96ad5148
        x = <optimized out>
        w = <optimized out>
#35 0x00000000004c1c0b in _PyEval_EvalFrameDefault (tstate=<optimized out>, 
f=0x7fef96ad4fc0, throwflag=<optimized out>) at Python/ceval.c:4181
        sp = 0x7fef96ad5158
        meth = <optimized out>
        res = <optimized out>
        opcode_targets =
{0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bbe90 
<_PyEval_EvalFrameDefault+2064>, 0x4bbeda <_PyEval_EvalFrameDefault+2138>, 
0x4bbf20 <_PyEval_EvalFrameDefault+2208>,           0x4bbfba 
<_PyEval_EvalFrameDefault+2362>, 0x4bc00f <_PyEval_EvalFrameDefault+2447>, 
0x4bbf69 <_PyEval_EvalFrameDefault+2281>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bbd3f <_PyEval_EvalFrameDefault+1727>, 
0x4bc070 <_PyEval_EvalFrameDefault+2544>, 0x4bc0e7 
<_PyEval_EvalFrameDefault+2663>,           0x4bc15e 
<_PyEval_EvalFrameDefault+2782>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bc23f 
<_PyEval_EvalFrameDefault+3007>,           0x4bc3e8 
<_PyEval_EvalFrameDefault+3432>, 0x4bcda4 <_PyEval_EvalFrameDefault+5924>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bc2b6 
<_PyEval_EvalFrameDefault+3126>,           0x4bc353 
<_PyEval_EvalFrameDefault+3283>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4bc5a7 <_PyEval_EvalFrameDefault+3879>, 0x4bc6af 
<_PyEval_EvalFrameDefault+4143>,           0x4bc76f 
<_PyEval_EvalFrameDefault+4335>, 0x4bc804 <_PyEval_EvalFrameDefault+4484>, 
0x4bc512 <_PyEval_EvalFrameDefault+3730>, 0x4bc47d 
<_PyEval_EvalFrameDefault+3581>,           0x4bcece 
<_PyEval_EvalFrameDefault+6222>, 0x4bce39 <_PyEval_EvalFrameDefault+6073>, 
0x4c0bbe <_PyEval_EvalFrameDefault+21822>, 0x4c0ff9 
<_PyEval_EvalFrameDefault+22905>,           0x4c1067 
<_PyEval_EvalFrameDefault+23015>, 0x4c10d5 <_PyEval_EvalFrameDefault+23125>, 
0x4c142b <_PyEval_EvalFrameDefault+23979>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555> <repeats 14 times>,           0x4c19fa 
<_PyEval_EvalFrameDefault+25466>, 0x4bd6de <_PyEval_EvalFrameDefault+8286>, 
0x4bd78d <_PyEval_EvalFrameDefault+8461>, 0x4c175b 
<_PyEval_EvalFrameDefault+24795>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bdc9f <_PyEval_EvalFrameDefault+9759>, 
0x4bd01c <_PyEval_EvalFrameDefault+6556>, 0x4bd0dc 
<_PyEval_EvalFrameDefault+6748>,           0x4bcd0f 
<_PyEval_EvalFrameDefault+5775>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4bcf63 <_PyEval_EvalFrameDefault+6371>, 0x4bd45a 
<_PyEval_EvalFrameDefault+7642>,           0x4bd51b 
<_PyEval_EvalFrameDefault+7835>, 0x4bc899 <_PyEval_EvalFrameDefault+4633>, 
0x4bc92e <_PyEval_EvalFrameDefault+4782>, 0x4bc9c3 
<_PyEval_EvalFrameDefault+4931>,           0x4bca58 
<_PyEval_EvalFrameDefault+5080>, 0x4bcaed <_PyEval_EvalFrameDefault+5229>, 
0x4bcc72 <_PyEval_EvalFrameDefault+5618>, 0x4c14e1 
<_PyEval_EvalFrameDefault+24161>,           0x4c1558 
<_PyEval_EvalFrameDefault+24280>, 0x4bd5cb <_PyEval_EvalFrameDefault+8011>, 
0x4bde54 <_PyEval_EvalFrameDefault+10196>, 0x4bd962 
<_PyEval_EvalFrameDefault+8930>,           0x4bd855 
<_PyEval_EvalFrameDefault+8661>, 0x4bddfc <_PyEval_EvalFrameDefault+10108>, 
0x4bd171 <_PyEval_EvalFrameDefault+6897>, 0x4bd206 
<_PyEval_EvalFrameDefault+7046>,           0x4bd29b 
<_PyEval_EvalFrameDefault+7195>, 0x4bd330 <_PyEval_EvalFrameDefault+7344>, 
0x4bd3c5 <_PyEval_EvalFrameDefault+7493>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bed46 <_PyEval_EvalFrameDefault+14022>, 
0x4c2ef5 <_PyEval_EvalFrameDefault+30837>, 0x4c008f 
<_PyEval_EvalFrameDefault+18959>,           0x4bf0e3 
<_PyEval_EvalFrameDefault+14947>, 0x4c2f5b <_PyEval_EvalFrameDefault+30939>, 
0x4bdc60 <_PyEval_EvalFrameDefault+9696>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bdb97 
<_PyEval_EvalFrameDefault+9495>, 0x4bdee7 <_PyEval_EvalFrameDefault+10343>, 
0x4bdf9a <_PyEval_EvalFrameDefault+10522>, 0x4bdffe 
<_PyEval_EvalFrameDefault+10622>,           0x4c1604 
<_PyEval_EvalFrameDefault+24452>, 0x4be190 <_PyEval_EvalFrameDefault+11024>, 
0x4be223 <_PyEval_EvalFrameDefault+11171>, 0x4be2c3 
<_PyEval_EvalFrameDefault+11331>, --Type <RET> for more, q to quit, c to 
continue without paging--           0x4be342 <_PyEval_EvalFrameDefault+11458>, 
0x4be3c3 <_PyEval_EvalFrameDefault+11587>, 0x4c26d1 
<_PyEval_EvalFrameDefault+28753>, 0x4bbdcd <_PyEval_EvalFrameDefault+1869>,     
      0x4be465 <_PyEval_EvalFrameDefault+11749>, 0x4bea95 
<_PyEval_EvalFrameDefault+13333>, 0x4bec25 <_PyEval_EvalFrameDefault+13733>, 
0x4beec7 <_PyEval_EvalFrameDefault+14407>,           0x4befda 
<_PyEval_EvalFrameDefault+14682>, 0x4bf953 <_PyEval_EvalFrameDefault+17107>, 
0x4bfb3b <_PyEval_EvalFrameDefault+17595>, 0x4bfec6 
<_PyEval_EvalFrameDefault+18502>,           0x4c047d 
<_PyEval_EvalFrameDefault+19965>, 0x4c05a9 <_PyEval_EvalFrameDefault+20265>, 
0x4c08f0 <_PyEval_EvalFrameDefault+21104>, 0x4c0a2a 
<_PyEval_EvalFrameDefault+21418>,           0x4c0b66 
<_PyEval_EvalFrameDefault+21734>, 0x4c05e7 <_PyEval_EvalFrameDefault+20327>, 
0x4c0764 <_PyEval_EvalFrameDefault+20708>, 0x4be53b 
<_PyEval_EvalFrameDefault+11963>,           0x4bfbd3 
<_PyEval_EvalFrameDefault+17747>, 0x4bfc69 <_PyEval_EvalFrameDefault+17897>, 
0x4c2f1b <_PyEval_EvalFrameDefault+30875>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bfd26 
<_PyEval_EvalFrameDefault+18086>, 0x4c1706 <_PyEval_EvalFrameDefault+24710>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bbd76 
<_PyEval_EvalFrameDefault+1782>,           0x4bbe2e 
<_PyEval_EvalFrameDefault+1966>, 0x4be715 <_PyEval_EvalFrameDefault+12437>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bdb4d 
<_PyEval_EvalFrameDefault+9421>, 0x4c2ec8 <_PyEval_EvalFrameDefault+30792>, 
0x4c1c7d <_PyEval_EvalFrameDefault+26109>, 0x4bbc00 
<_PyEval_EvalFrameDefault+1408>,           0x4c2502 
<_PyEval_EvalFrameDefault+28290>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4be7dd <_PyEval_EvalFrameDefault+12637>, 0x4be912 
<_PyEval_EvalFrameDefault+12946>,           0x4be971 
<_PyEval_EvalFrameDefault+13041>, 0x4be777 <_PyEval_EvalFrameDefault+12535>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c1d13 
<_PyEval_EvalFrameDefault+26259>, 0x4c1dcf <_PyEval_EvalFrameDefault+26447>, 
0x4c18cc <_PyEval_EvalFrameDefault+25164>, 0x4c2750 
<_PyEval_EvalFrameDefault+28880>,           0x4bcb82 
<_PyEval_EvalFrameDefault+5378>, 0x4bcbfa <_PyEval_EvalFrameDefault+5498>, 
0x4bf45b <_PyEval_EvalFrameDefault+15835>, 0x4be83d 
<_PyEval_EvalFrameDefault+12733>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c0c25 
<_PyEval_EvalFrameDefault+21925>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4c1860 <_PyEval_EvalFrameDefault+25056>, 
0x4c25d0 <_PyEval_EvalFrameDefault+28496>, 0x4bf239 
<_PyEval_EvalFrameDefault+15289>,           0x4be9d7 
<_PyEval_EvalFrameDefault+13143>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c1af3 
<_PyEval_EvalFrameDefault+25715>,           0x4c1b9f 
<_PyEval_EvalFrameDefault+25887>, 0x4bedb8 <_PyEval_EvalFrameDefault+14136>, 
0x4bee4f <_PyEval_EvalFrameDefault+14287>, 0x4bf3e1 
<_PyEval_EvalFrameDefault+15713>,           0x4bf36e 
<_PyEval_EvalFrameDefault+15598>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555> 
<repeats 90 times>}
        PyId_displayhook = {string = 0x64aae2 "displayhook", index = -1}
        PyId_send = {string = 0x6a362a "send", index = -1}
        PyId_{}build_class{} = {string = 0x64ac69 "{}build_class{}", index = 18}
        PyId_{}annotations{} = {string = 0x655175 "{}annotations{}", index = -1}
        PyId_{}aenter{} = {string = 0x64ae53 "{}aenter{}", index = -1}
        PyId_{}aexit{} = {string = 0x64ae5e "{}aexit{}", index = -1}
        PyId_{}enter{} = {string = 0x606990 "{}enter{}", index = 40}
        PyId_{}exit{} = {string = 0x60699a "{}exit{}", index = 41}
        trace_info = {code = 0x0, bounds = {ar_start = 64, ar_end = 0, ar_line 
= -1786174976, opaque = {computed_line = 28322560, lo_next = 0x725a70 
<PyMethod_Type> "\026", limit = 0x7fef95884eb0 "\003"}},
          cframe = {use_tracing = 0, previous = 0x7ffdcda1ec90}}
        _unknown_opcode = <optimized out>
#36 0x00000000004bb57d in _PyEval_EvalFrame (tstate=0x1a4acd0, 
f=0x7fef96ad4fc0, throwflag=0) at ./Include/internal/pycore_ceval.h:46
No locals.
#37 _PyEval_Vector (tstate=0x1a4acd0, con=0x7fef96afe600, locals=<optimized 
out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) 
at Python/ceval.c:5065
        f = 0x7fef96ad4fc0
        retval = <optimized out>
{code}
It seems both my python binding and pyarrow uses arrow's code to do some 
initialization, the `arrow::io::internal::GetIOThreadPool` for some reason 
fails to work in this case and caused the segfault.

 

{*}4) Since it is related with 
`::arrow::internal::GetEnvVar("ARROW_IO_THREADS");`{*}, I tried setting the 
`ARROW_IO_THREADS` env var to a number and gave it another try. And the program 
still caused a segfault, but reporting a different error (there is no `free(): 
invalid pointer` printed this time):
{code:java}
Fatal Python error: Segmentation fault
Current thread 0x00007fea55bd09c0 (most recent call first):
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1176 in create_module
  File "<frozen importlib._bootstrap>", line 571 in module_from_spec
  File "<frozen importlib._bootstrap>", line 674 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1006 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1027 in _find_and_load
  File 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/{}init{}.py",
 line 65 in <module>
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 883 in exec_module
  File "<frozen importlib._bootstrap>", line 688 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1006 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1027 in _find_and_load
  File "/usr/src/stonewave/bindings/python/<redated>/<redated>/search.py", line 
16 in search{code}
{*}5) I used gdb to view the core dump again{*}, and it reported error like 
below:
{code:java}
#0  raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {__val = {0 <repeats 16 times>}}
        pid = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
#1  <signal handler called>
No locals.
#2  0x00007fea5d4a60bb in std::{}shared_ptr<arrow::DataType, 
({}gnu_cxx::Lock_policy)2>::_shared_ptr (this=0x5)
    at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:1181
No locals.
#3  0x00007fea5d4a6093 in std::shared_ptr<arrow::DataType>::shared_ptr 
(this=0x5) at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr.h:149
No locals.
#4  0x00007fea5d9da822 in arrow::int32 () at 
/vcpkg/buildtrees/arrow/src/c4eb0a0543-8e1ffd6d16.clean/cpp/src/arrow/type.cc:2165
        result = warning: RTTI symbol not found for class 
'std::Sp_counted_ptr_inplace<arrow::Int32Type, 
std::allocator<arrow::Int32Type>, (_gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 
'std::Sp_counted_ptr_inplace<arrow::Int32Type, 
std::allocator<arrow::Int32Type>, (_gnu_cxx::_Lock_policy)2>'
std::shared_ptr<arrow::DataType> (use count 1053, weak count 0) = {get() = 
0x108ba70}
#5  0x00007fea364ff4af in GLOBAL_sub_I_unity_1_cxx.cxx () from 
/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/libarrow_dataset.so.1000
No symbol table info available.
#6  0x00007fea6b82ffe2 in call_init (l=<optimized out>, argc=argc@entry=5, 
argv=argv@entry=0x7fff106aae38, env=env@entry=0x168fd50) at dl-init.c:72
        j = 0
        jm = <optimized out>
        addrs = <optimized out>
        init_array = <optimized out>
#7  0x00007fea6b8300e9 in call_init (env=0x168fd50, argv=0x7fff106aae38, 
argc=5, l=<optimized out>) at dl-init.c:30
        init_array = <optimized out>
        j = <optimized out>
        jm = <optimized out>
        addrs = <optimized out>
#8  _dl_init (main_map=0x1918190, argc=5, argv=0x7fff106aae38, env=0x168fd50) 
at dl-init.c:119
        preinit_array = <optimized out>
        preinit_array_size = <optimized out>
        i = <optimized out>
#9  0x00007fea575a2aed in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x0, operate=operate@entry=0x7fea6b8335d0 
<call_dl_init>, args=args@entry=0x7fff106a1cd0)
    at dl-error-skeleton.c:182
        old = <optimized out>
        errcode = 0
        c = {exception = 0x7fff106a1c30, errcode = 0x0, env = {{__jmpbuf =
{140733468777520, 0, 0, 140643321125720, 26313976, 140643321198124, 
140643321095744, 140643323642840}
,
              {}mask_was_saved = 322015232, _saved_mask = {_val =
{0, 140733468777616, 140644478215584, 0, 0, 0, 0, 0, 0, 0, 0, 
12468370135039750697, 140733468778096, 140733468777584,                   
140733468778096, 140733468777760}
}}}}
        old = <optimized out>
#10 0x00007fea6b834058 in dl_open_worker (a=a@entry=0x7fff106a1e70) at 
dl-open.c:758
        init_args = {new = 0x1918190, argc = 5, argv = 0x7fff106aae38, env = 
0x168fd50}
        args = 0x7fff106a1e70
        file = <optimized out>
        mode = <optimized out>
        call_map = <optimized out>
        dst = <optimized out>
        new = 0x1918190
        {}PRETTY_FUNCTION{} = "dl_open_worker"
        r = <optimized out>
{}Type <RET> for more, q to quit, c to continue without paging{}
        reloc_mode = <optimized out>
        nmaps = <optimized out>
        l = <optimized out>
        maps = <error reading variable maps (value requires 138793856 bytes, 
which is more than max-value-size)>
        relocation_in_progress = <optimized out>
        any_tls = <optimized out>
#11 0x00007fea575a2a90 in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x7fff106a1e50, operate=operate@entry=0x7fea6b833ca0 
<dl_open_worker>, args=args@entry=0x7fff106a1e70)
    at dl-error-skeleton.c:208
        errcode = 0
        c = {exception = 0x7fff106a1e50, errcode = 0x7fff106a1d5c, env = 
{{__jmpbuf =
{2147483650, 1061564265845182786, -74376, 5, 5369100, -2, 1049880826869928258, 
1061551455913726274}
,
              {}mask_was_saved = 0, _saved_mask = {_val =
{140644403015840, 140644403015840, 4506233, 140644402510488, 15, 
140644402510432, 140644403015888, 140733468778048,                   
140733468778080, 140733468779105, 10865718445837529600, 140733468778848, 0, 
257, 140733468778080, 6671076}
}}}}
        old = 0x7fff106a1f40
#12 0x00007fea6b8338fa in _dl_open (file=0x7fea5165efc0 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
    mode=-2147483646, caller_dlopen=0x51ed0c <_PyImport_FindSharedFuncptr+284>, 
nsid=-2, argc=5, argv=0x7fff106a1e50, env=0x168fd50) at dl-open.c:837
        args =
{file = 0x7fea5165efc0 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
           mode = -2147483646, caller_dlopen = 0x51ed0c 
<_PyImport_FindSharedFuncptr+284>, map = 0x1918190, nsid = 0, 
original_global_scope_pending_adds = 0, argc = 5,           argv = 
0x7fff106aae38, env = 0x168fd50}
        exception =
{objname = 0x439830 <list_richcompare> "UAWAVAUATSPH\213G\b\366\200\253", 
errstring = 0x7fff106a1f50 "8Y\b\001",           message_buffer = 0xfbad8001 
<error: Cannot access memory at address 0xfbad8001>}
        errcode = <optimized out>
        {}PRETTY_FUNCTION{} = "_dl_open"
#13 0x00007fea5778d258 in dlopen_doit (a=a@entry=0x7fff106a2090) at dlopen.c:66
        args = 0x7fff106a2090
#14 0x00007fea575a2a90 in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x7fff106a2030, operate=operate@entry=0x7fea5778d200 
<dlopen_doit>, args=args@entry=0x7fff106a2090)
    at dl-error-skeleton.c:208
        errcode = 32746
        c = {exception = 0x7fff106a2030, errcode = 0x7fff106a1f3c, env = 
{{__jmpbuf =
{17324344, -1049391729601195710, -74376, 140644364656960, 140644364656832, 
140644364709824,                 1049880826807013698, 1061551455913726274}
, {}mask_was_saved = 0, _saved_mask = {_val =
{10865718445837529600, 9223372036854775807, 258, 0, 0, 140644364656960,         
          140733468778848, 140644364709824, 5216203, 206158430248, 
140733468778704, 140733468778496, 140644402549736, 140644402549736, 2, 
140644402612032}
}}}}
        old = 0x0
#15 0x00007fea575a2b4f in {}GI{_}_dl_catch_error 
(objname=objname@entry=0x1085940, errstring=errstring@entry=0x1085948, 
mallocedp=mallocedp@entry=0x1085938,
    operate=operate@entry=0x7fea5778d200 <dlopen_doit>, 
args=args@entry=0x7fff106a2090) at dl-error-skeleton.c:227
        exception = {objname = 0x0, errstring = 0x2 <error: Cannot access 
memory at address 0x2>, message_buffer = 0x1 <error: Cannot access memory at 
address 0x1>}
        errorcode = <optimized out>
#16 0x00007fea5778da65 in _dlerror_run (operate=operate@entry=0x7fea5778d200 
<dlopen_doit>, args=args@entry=0x7fff106a2090) at dlerror.c:170
        result = 0x1085930
#17 0x00007fea5778d2e4 in __dlopen (file=<optimized out>, mode=<optimized out>) 
at dlopen.c:87
        args =
{file = 0x7fea5165efc0 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 mode = 2,           new = 0x11f6700, caller = 0x51ed0c 
<_PyImport_FindSharedFuncptr+284>}
#18 0x000000000051ed0c in _PyImport_FindSharedFuncptr (prefix=0x64fb3d 
"PyInit", shortname=0x7fea516520c0 "lib",
    pathname=0x7fea5165efc0 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 fp=0x0)
    at ./Python/dynload_shlib.c:100
        funcname = "PyInit_lib", '\000' <repeats 22 times>, 
"\320\315qR\352\177\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\001",
 '\000' <repeats 43 times>, 
"O\373d\000\000\000\000\000\000g\037\001\000\000\000\000\200sfQ\352\177\000\000P\"j\020\377\177\000\000\002\000\000\000\000\000\000\000P\"j\020\377\177\000\000\000\000\000\000\000\000\000\000V\357Y\000\000\000\000\000\240\356Y\000\000\000\000\000\240
 eQ\352\177\000\000\070\067hQ\352\177\000\000"...
        pathbuf = 
"\002\000\000\000\000\000\000\000\264\212\035\305yz\306d\000\021\260S\352\177\000\000\236\272D\000\000\000\000\000\230\272\246S\352\177\000\000\000\000\000\000\000\000\000\000p\036hQ\352\177\000\000@!eQ\352\177\000\000p;xQ\352\177\000\000\240
 
eQ\352\177\000\000\000\000\000\000\000\000\000\000\023\305P\000\000\000\000\000\020\000\000\000\060\000\000\000\260#j\0
20\377\177\000\000\360\"j\020\377\177\000\000@!eQ\352\177\000\000\000\000\000\000\000\000\000\000Q\274D\000\000\000\000\000p\036hQ\352\177\000\000p;xQ\352\177\000\000\340\251p\000\000\000\000\000\340\251p\000\000\000\000\000\360\071j\000\000\000\000\000\003",
 '\000' <repeats 15 times>...
        dlopenflags = 1799967928
        handle = <optimized out>
        p = <optimized out>
#19 0x00000000004eaa4e in _PyImport_LoadDynamicModuleWithSpec 
(spec=0x7fea51652140, fp=0x0) at ./Python/importdl.c:137
        m = 0x0
        path = <optimized out>
        name = 0x7fea516520a0
        name_unicode = 0x7fea51681e70
        pathbytes = 0x7fea5165efa0
        hook_prefix = 0x64fb3d "PyInit"
        name_buf = 0x7fea516520c0 "lib"
        exportfunc = <optimized out>
        p0 = <optimized out>
        oldcontext = <optimized out>
        def = <optimized out>
        modules = <optimized out>
{code}
It is different with previously core dump, but I have no idea how this happens 
now. And the behavior is pretty consistent, if I unset the `ARROW_IO_THREADS` 
env var and run the program again, the previous core dump will be generated 
again.

 

*Summary:*

I don't know how to proceed any more. Basically:

1) I create a C++ library with arrow C++ library

2) I create a python binding for the C++ library using pybind

3) Instead of importing pyarrow.h header, I now import <arrow/c/abi.h> and 
<arrow/c/bridge.h> for bridging

4) In my python program, I use both my python binding and pyarrow wheel

Could you please shed some light on this issue? Do you think if this kind usage 
is supported or if it is some bug for arrow project?


was (Author: niyue):
[~kou] I follow your instruction (with some slight modification) to make it 
compiled and running but ran into some segfault during importing`pyarrow` 
module.

*1) Since I create a python binding, I use this python binding in my Python 
code.* `py::scoped_interpreter guard{}` seems not necessary because that will 
embed another interpreter, otherwise, pybind will report `the interpreter is 
already running` error. This is the only thing I revised.

*2) In my python code:*
{code:java}
import my_python_binding
import pyarrow # this lines triggers segfault{code}
Some error like below is reported:

 
{code:java}
......
free(): invalid pointer
Fatal Python error: Aborted
Current thread 0x00007fae68f939c0 (most recent call first):
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1176 in create_module
  File "<frozen importlib._bootstrap>", line 571 in module_from_spec
  File "<frozen importlib._bootstrap>", line 674 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1006 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1027 in _find_and_load
  File 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/{}init{}.py",
 line 65 in <module>
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 883 in exec_module
  File "<frozen importlib._bootstrap>", line 688 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1006 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1027 in _find_and_load
  File "/usr/src/stonewave/bindings/python/<redated>/<redated>/search.py", line 
16 in search{code}
The line 65 of `pyarrow/{_}{{_}}init{{_}}{_}.py` is (it seems JIRAkeeps 
rendering double underscores as {}):
{code:java}
import pyarrow.lib as _lib{code}
 

 

{*}3) a core dump was generated{*}, and I use gdb to briefly view the core 
dump, it looks like this:
{code:java}
#0  raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {__val = {0 <repeats 16 times>}}
        pid = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
#1  <signal handler called>
No locals.
#2  0x00007fefa03eb735 in {}gnu_cxx::{}exchange_and_add ({_}_mem=0xa, __val=-1) 
at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/ext/atomicity.h:50
No locals.
#3  {}gnu_cxx::{}exchange_and_add_dispatch ({_}_mem=0xa, __val=-1) at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/ext/atomicity.h:84
No locals.
#4  std::Sp_counted_base<(_gnu_cxx::_Lock_policy)2>::_M_release (this=0x2) at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:155
No locals.
#5  0x00007fefa03eb6da in 
std::{}shared_count<({}gnu_cxx::Lock_policy)2>::~_shared_count (this=0x1bca350) 
at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:733
No locals.
#6  0x00007fefa0463c5e in std::{}shared_ptr<arrow::StatusDetail, 
({}gnu_cxx::Lock_policy)2>::~_shared_ptr (this=0x1bca348)
    at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:1183
No locals.
#7  0x00007fefa0463c38 in std::shared_ptr<arrow::StatusDetail>::~shared_ptr 
(this=0x1bca348) at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr.h:121
No locals.
#8  0x00007fefa0463c06 in arrow::Status::State::~State (this=0x1bca320) at 
/vcpkg/installed/x64-linux-haswell/include/arrow/status.h:347
No locals.
#9  0x00007fefa0463b9e in arrow::Status::DeleteState (this=0x7ffdcda1dd20) at 
/vcpkg/installed/x64-linux-haswell/include/arrow/status.h:357
No locals.
#10 0x00007fef93345f0c in arrow::internal::GetEnvVar(char const*) () from 
/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/libarrow.so.1000
No symbol table info available.
#11 0x00007fef93398924 in arrow::io::internal::GetIOThreadPool() () from 
/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/libarrow.so.1000
No symbol table info available.
#12 0x00007fef928ca51e in GLOBAL_sub_I_unity_6_cxx.cxx () from 
/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/libarrow.so.1000
No symbol table info available.
#13 0x00007fefae7fcfe2 in call_init (l=<optimized out>, argc=argc@entry=3, 
argv=argv@entry=0x7ffdcda20dc8, env=env@entry=0x7ffdcda20de8) at dl-init.c:72
        j = 0
        jm = <optimized out>
        addrs = <optimized out>
        init_array = <optimized out>
#14 0x00007fefae7fd0e9 in call_init (env=0x7ffdcda20de8, argv=0x7ffdcda20dc8, 
argc=3, l=<optimized out>) at dl-init.c:30
        init_array = <optimized out>
        j = <optimized out>
        jm = <optimized out>
        addrs = <optimized out>
#15 _dl_init (main_map=0x1baa930, argc=3, argv=0x7ffdcda20dc8, 
env=0x7ffdcda20de8) at dl-init.c:119
        preinit_array = <optimized out>
        preinit_array_size = <optimized out>
        i = <optimized out>
#16 0x00007fef9a56faed in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x0, operate=operate@entry=0x7fefae8005d0 
<call_dl_init>, args=args@entry=0x7ffdcda1dfd0) at dl-error-skeleton.c:182
        old = <optimized out>
        errcode = 0
{}Type <RET> for more, q to quit, c to continue without paging{}
        c = {exception = 0x7ffdcda1df30, errcode = 0x0, env = {{__jmpbuf =
{140728053391152, 0, 0, 140666978835288, 29011096, 140666978907692, 
140666978805312, 140666981352408}
, __mask_was_saved = -1790078976,
              {}saved_mask = {{_}_val =
{0, 140728053391248, 140667076916640, 0, 0, 0, 0, 0, 0, 0, 0, 
12468370135039750697, 140728053391728, 140728053391216, 140728053391728, 
140728053391392}
}}}}
        old = <optimized out>
#17 0x00007fefae801058 in dl_open_worker (a=a@entry=0x7ffdcda1e170) at 
dl-open.c:758
        init_args = {new = 0x1baa930, argc = 3, argv = 0x7ffdcda20dc8, env = 
0x7ffdcda20de8}
        args = 0x7ffdcda1e170
        file = <optimized out>
        mode = <optimized out>
        call_map = <optimized out>
        dst = <optimized out>
        new = 0x1baa930
        {}PRETTY_FUNCTION{} = "dl_open_worker"
        r = <optimized out>
        reloc_mode = <optimized out>
        nmaps = <optimized out>
        l = <optimized out>
        maps = <error reading variable maps (value requires 34359738360 bytes, 
which is more than max-value-size)>
        relocation_in_progress = <optimized out>
        any_tls = <optimized out>
#18 0x00007fef9a56fa90 in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x7ffdcda1e150, operate=operate@entry=0x7fefae800ca0 
<dl_open_worker>, args=args@entry=0x7ffdcda1e170) at dl-error-skeleton.c:208
        errcode = 0
        c = {exception = 0x7ffdcda1e150, errcode = 0x7ffdcda1e05c, env = 
{{__jmpbuf =
{2147483650, -855320820084358115, -74376, 3, 5369100, -2, -863008342291758051, 
-855308368215391203}
, __mask_was_saved = 0,
              {}saved_mask = {{_}_val =
{140667001712800, 140667001712800, 4506233, 140667001207448, 15, 
140667001207392, 140667001712848, 140728053391680, 140728053391712, 
140728053392737, 660865357547929600,                   140728053392480, 0, 257, 
140728053391712, 6671076}
}}}}
        old = 0x7ffdcda1e240
#19 0x00007fefae8008fa in _dl_open (file=0x7fef95808100 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 mode=-2147483646,
    caller_dlopen=0x51ed0c <_PyImport_FindSharedFuncptr+284>, nsid=-2, argc=3, 
argv=0x7ffdcda1e150, env=0x7ffdcda20de8) at dl-open.c:837
        args =
{file = 0x7fef95808100 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 mode = -2147483646,           caller_dlopen = 0x51ed0c 
<_PyImport_FindSharedFuncptr+284>, map = 0x1baa930, nsid = 0, 
original_global_scope_pending_adds = 0, argc = 3, argv = 0x7ffdcda20dc8, env = 
0x7ffdcda20de8}
        exception =
{objname = 0x439830 <list_richcompare> "UAWAVAUATSPH\213G\b\366\200\253", 
errstring = 0x7ffdcda1e250 "8Y\217\001",           message_buffer = 0xfbad8001 
<error: Cannot access memory at address 0xfbad8001>}
        errcode = <optimized out>
        {}PRETTY_FUNCTION{} = "_dl_open"
#20 0x00007fef9a75a258 in dlopen_doit (a=a@entry=0x7ffdcda1e390) at dlopen.c:66
        args = 0x7ffdcda1e390
#21 0x00007fef9a56fa90 in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x7ffdcda1e330, operate=operate@entry=0x7fef9a75a200 
<dlopen_doit>, args=args@entry=0x7ffdcda1e390) at dl-error-skeleton.c:208
        errcode = 32751
        c = {exception = 0x7ffdcda1e330, errcode = 0x7ffdcda1e23c, env = 
{{__jmpbuf =
{26171704, 864236073942795293, -74376, 140666982652160, 140666983577264, 
140666982138112, -863008342354672611,                 -855308368215391203}
, {}mask_was_saved = 0, _saved_mask = {_val =
{660865357547929600, 9223372036854775807, 258, 0, 0, 140666982652160, 
140728053392480, 140666982138112, 5216203, 206158430248,                   
140728053392336, 140728053392128, 140667001246696, 140667001246696, 2, 
140667001308992}
}}}}
        old = 0x0
#22 0x00007fef9a56fb4f in {}GI{_}_dl_catch_error 
(objname=objname@entry=0x18f5940, errstring=errstring@entry=0x18f5948, 
mallocedp=mallocedp@entry=0x18f5938, operate=operate@entry=0x7fef9a75a200 
<dlopen_doit>,
    args=args@entry=0x7ffdcda1e390) at dl-error-skeleton.c:227
        exception = {objname = 0x0, errstring = 0x2 <error: Cannot access 
memory at address 0x2>, message_buffer = 0x1 <error: Cannot access memory at 
address 0x1>}
        errorcode = <optimized out>
#23 0x00007fef9a75aa65 in _dlerror_run (operate=operate@entry=0x7fef9a75a200 
<dlopen_doit>, args=args@entry=0x7ffdcda1e390) at dlerror.c:170
        result = 0x18f5930
{}Type <RET> for more, q to quit, c to continue without paging{}
#24 0x00007fef9a75a2e4 in __dlopen (file=<optimized out>, mode=<optimized out>) 
at dlopen.c:87
        args =
{file = 0x7fef95808100 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 mode = 2, new = 0x1a4acd0,           caller = 0x51ed0c 
<_PyImport_FindSharedFuncptr+284>}
#25 0x000000000051ed0c in _PyImport_FindSharedFuncptr (prefix=0x64fb3d 
"PyInit", shortname=0x7fef959676b0 "lib",
    pathname=0x7fef95808100 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 fp=0x0) at ./Python/dynload_shlib.c:100
        funcname = "PyInit_lib", '\000' <repeats 22 times>, 
"\340\371\234\225\357\177\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\001",
 '\000' <repeats 43 times>, 
"O\373d\000\000\000\000\000\320\254\244\001\000\000\000\000\060=\204\225\357\177\000\000P\345\241\315\375\177\000\000\002\000\000\000\000\000\000\000P\345\241\315\375\177\000\000\000\000\000\000\000\000\000\000V\357Y\000\000\000\000\000\240\356Y\000\000\000\000\000\220v\226\225\357\177\000\000\070\004\212\225\357\177\000\000"...
        pathbuf = 
"\002\000\000\000\000\000\000\000\350\357`\331\210,eY\000\321\254\226\357\177\000\000\236\272D\000\000\000\000\000\230z\243\226\357\177\000\000\000\000\000\000\000\000\000\000p\307\177\225\357\177\000\000\000Y\210\225\357\177\000\000\260A\212\225\357\177\000\000\220v\226\225\357\177\000\000\000\000\000\000\000\000\000\000\023\305P\000\000\000\000\000\020\000\000\000\060\000\000\000\260\346\241\315\375\177\000\000\360\345\241\315\375\177\000\000\000Y\210\225\357\177\000\000\000\000\000\000\000\000\000\000Q\274D\000\000\000\000\000p\307\177\225\357\177\000\000\260A\212\225\357\177\000\000\340\251p\000\000\000\000\000\340\251p\000\000\000\000\000\360\071j\000\000\000\000\000\003",
 '\000' <repeats 15 times>...
        dlopenflags = 29139752
        handle = <optimized out>
        p = <optimized out>
#26 0x00000000004eaa4e in _PyImport_LoadDynamicModuleWithSpec 
(spec=0x7fef95885900, fp=0x0) at ./Python/importdl.c:137
        m = 0x0
        path = <optimized out>
        name = 0x7fef95967690
        name_unicode = 0x7fef957fc770
        pathbytes = 0x7fef958080e0
        hook_prefix = 0x64fb3d "PyInit"
        name_buf = 0x7fef959676b0 "lib"
        exportfunc = <optimized out>
        p0 = <optimized out>
        oldcontext = <optimized out>
        def = <optimized out>
        modules = <optimized out>
#27 0x00000000004ea40e in _imp_create_dynamic_impl (module=<optimized out>, 
spec=0x7fef95885900, file=<optimized out>) at Python/import.c:2049
        name = 0x7fef957fc770
        path = 0x7fef958a41b0
        tstate = <optimized out>
        mod = 0x0
        fp = 0x0
#28 _imp_create_dynamic (module=<optimized out>, args=<optimized out>, 
nargs=<optimized out>) at Python/clinic/import.c.h:330
        file = <optimized out>
        return_value = 0x0
        spec = 0x7fef95885900
#29 0x000000000059ef56 in cfunction_vectorcall_FASTCALL (func=0x7fef96ac58a0, 
args=0x7fef95885168, nargsf=<optimized out>, kwnames=<optimized out>) at 
Objects/methodobject.c:430
        tstate = 0x1a4acd0
        nargs = 1
        meth = 0xa
        result = <optimized out>
#30 0x00000000004c1fe7 in do_call_core (tstate=0x1a4acd0, 
trace_info=0x7ffdcda1e7c0, func=0x7fef96ac58a0, callargs=0x7fef95885150, 
kwdict=0x0) at Python/ceval.c:5915
        result = <optimized out>
        nargs = <optimized out>
        self = <optimized out>
{}Type <RET> for more, q to quit, c to continue without paging{}
#31 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7fef96a5f490, 
throwflag=<optimized out>) at Python/ceval.c:4277
        func = 0x7fef96ac58a0
        kwargs = <optimized out>
        callargs = 0x7fef95885150
        result = <optimized out>
        opcode_targets =
{0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bbe90 
<_PyEval_EvalFrameDefault+2064>, 0x4bbeda <_PyEval_EvalFrameDefault+2138>, 
0x4bbf20 <_PyEval_EvalFrameDefault+2208>,           0x4bbfba 
<_PyEval_EvalFrameDefault+2362>, 0x4bc00f <_PyEval_EvalFrameDefault+2447>, 
0x4bbf69 <_PyEval_EvalFrameDefault+2281>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bbd3f <_PyEval_EvalFrameDefault+1727>, 
0x4bc070 <_PyEval_EvalFrameDefault+2544>, 0x4bc0e7 
<_PyEval_EvalFrameDefault+2663>,           0x4bc15e 
<_PyEval_EvalFrameDefault+2782>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bc23f 
<_PyEval_EvalFrameDefault+3007>,           0x4bc3e8 
<_PyEval_EvalFrameDefault+3432>, 0x4bcda4 <_PyEval_EvalFrameDefault+5924>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bc2b6 
<_PyEval_EvalFrameDefault+3126>,           0x4bc353 
<_PyEval_EvalFrameDefault+3283>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4bc5a7 <_PyEval_EvalFrameDefault+3879>, 0x4bc6af 
<_PyEval_EvalFrameDefault+4143>,           0x4bc76f 
<_PyEval_EvalFrameDefault+4335>, 0x4bc804 <_PyEval_EvalFrameDefault+4484>, 
0x4bc512 <_PyEval_EvalFrameDefault+3730>, 0x4bc47d 
<_PyEval_EvalFrameDefault+3581>,           0x4bcece 
<_PyEval_EvalFrameDefault+6222>, 0x4bce39 <_PyEval_EvalFrameDefault+6073>, 
0x4c0bbe <_PyEval_EvalFrameDefault+21822>, 0x4c0ff9 
<_PyEval_EvalFrameDefault+22905>,           0x4c1067 
<_PyEval_EvalFrameDefault+23015>, 0x4c10d5 <_PyEval_EvalFrameDefault+23125>, 
0x4c142b <_PyEval_EvalFrameDefault+23979>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555> <repeats 14 times>,           0x4c19fa 
<_PyEval_EvalFrameDefault+25466>, 0x4bd6de <_PyEval_EvalFrameDefault+8286>, 
0x4bd78d <_PyEval_EvalFrameDefault+8461>, 0x4c175b 
<_PyEval_EvalFrameDefault+24795>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bdc9f <_PyEval_EvalFrameDefault+9759>, 
0x4bd01c <_PyEval_EvalFrameDefault+6556>, 0x4bd0dc 
<_PyEval_EvalFrameDefault+6748>,           0x4bcd0f 
<_PyEval_EvalFrameDefault+5775>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4bcf63 <_PyEval_EvalFrameDefault+6371>, 0x4bd45a 
<_PyEval_EvalFrameDefault+7642>,           0x4bd51b 
<_PyEval_EvalFrameDefault+7835>, 0x4bc899 <_PyEval_EvalFrameDefault+4633>, 
0x4bc92e <_PyEval_EvalFrameDefault+4782>, 0x4bc9c3 
<_PyEval_EvalFrameDefault+4931>,           0x4bca58 
<_PyEval_EvalFrameDefault+5080>, 0x4bcaed <_PyEval_EvalFrameDefault+5229>, 
0x4bcc72 <_PyEval_EvalFrameDefault+5618>, 0x4c14e1 
<_PyEval_EvalFrameDefault+24161>,           0x4c1558 
<_PyEval_EvalFrameDefault+24280>, 0x4bd5cb <_PyEval_EvalFrameDefault+8011>, 
0x4bde54 <_PyEval_EvalFrameDefault+10196>, 0x4bd962 
<_PyEval_EvalFrameDefault+8930>,           0x4bd855 
<_PyEval_EvalFrameDefault+8661>, 0x4bddfc <_PyEval_EvalFrameDefault+10108>, 
0x4bd171 <_PyEval_EvalFrameDefault+6897>, 0x4bd206 
<_PyEval_EvalFrameDefault+7046>,           0x4bd29b 
<_PyEval_EvalFrameDefault+7195>, 0x4bd330 <_PyEval_EvalFrameDefault+7344>, 
0x4bd3c5 <_PyEval_EvalFrameDefault+7493>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bed46 <_PyEval_EvalFrameDefault+14022>, 
0x4c2ef5 <_PyEval_EvalFrameDefault+30837>, 0x4c008f 
<_PyEval_EvalFrameDefault+18959>,           0x4bf0e3 
<_PyEval_EvalFrameDefault+14947>, 0x4c2f5b <_PyEval_EvalFrameDefault+30939>, 
0x4bdc60 <_PyEval_EvalFrameDefault+9696>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bdb97 
<_PyEval_EvalFrameDefault+9495>, 0x4bdee7 <_PyEval_EvalFrameDefault+10343>, 
0x4bdf9a <_PyEval_EvalFrameDefault+10522>, 0x4bdffe 
<_PyEval_EvalFrameDefault+10622>,           0x4c1604 
<_PyEval_EvalFrameDefault+24452>, 0x4be190 <_PyEval_EvalFrameDefault+11024>, 
0x4be223 <_PyEval_EvalFrameDefault+11171>, 0x4be2c3 
<_PyEval_EvalFrameDefault+11331>,           0x4be342 
<_PyEval_EvalFrameDefault+11458>, 0x4be3c3 <_PyEval_EvalFrameDefault+11587>, 
0x4c26d1 <_PyEval_EvalFrameDefault+28753>, 0x4bbdcd 
<_PyEval_EvalFrameDefault+1869>,           0x4be465 
<_PyEval_EvalFrameDefault+11749>, 0x4bea95 <_PyEval_EvalFrameDefault+13333>, 
0x4bec25 <_PyEval_EvalFrameDefault+13733>, 0x4beec7 
<_PyEval_EvalFrameDefault+14407>,           0x4befda 
<_PyEval_EvalFrameDefault+14682>, 0x4bf953 <_PyEval_EvalFrameDefault+17107>, 
0x4bfb3b <_PyEval_EvalFrameDefault+17595>, 0x4bfec6 
<_PyEval_EvalFrameDefault+18502>,           0x4c047d 
<_PyEval_EvalFrameDefault+19965>, 0x4c05a9 <_PyEval_EvalFrameDefault+20265>, 
0x4c08f0 <_PyEval_EvalFrameDefault+21104>, 0x4c0a2a 
<_PyEval_EvalFrameDefault+21418>,           0x4c0b66 
<_PyEval_EvalFrameDefault+21734>, 0x4c05e7 <_PyEval_EvalFrameDefault+20327>, 
0x4c0764 <_PyEval_EvalFrameDefault+20708>, 0x4be53b 
<_PyEval_EvalFrameDefault+11963>,           0x4bfbd3 
<_PyEval_EvalFrameDefault+17747>, 0x4bfc69 <_PyEval_EvalFrameDefault+17897>, 
0x4c2f1b <_PyEval_EvalFrameDefault+30875>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bfd26 
<_PyEval_EvalFrameDefault+18086>, 0x4c1706 <_PyEval_EvalFrameDefault+24710>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bbd76 
<_PyEval_EvalFrameDefault+1782>,           0x4bbe2e 
<_PyEval_EvalFrameDefault+1966>, 0x4be715 <_PyEval_EvalFrameDefault+12437>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bdb4d 
<_PyEval_EvalFrameDefault+9421>, 0x4c2ec8 <_PyEval_EvalFrameDefault+30792>, 
0x4c1c7d <_PyEval_EvalFrameDefault+26109>, 0x4bbc00 
<_PyEval_EvalFrameDefault+1408>,           0x4c2502 
<_PyEval_EvalFrameDefault+28290>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4be7dd <_PyEval_EvalFrameDefault+12637>, 0x4be912 
<_PyEval_EvalFrameDefault+12946>,           0x4be971 
<_PyEval_EvalFrameDefault+13041>, 0x4be777 <_PyEval_EvalFrameDefault+12535>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c1d13 
<_PyEval_EvalFrameDefault+26259>, 0x4c1dcf <_PyEval_EvalFrameDefault+26447>, 
0x4c18cc <_PyEval_EvalFrameDefault+25164>, 0x4c2750 
<_PyEval_EvalFrameDefault+28880>,           0x4bcb82 
<_PyEval_EvalFrameDefault+5378>, 0x4bcbfa <_PyEval_EvalFrameDefault+5498>, 
0x4bf45b <_PyEval_EvalFrameDefault+15835>, 0x4be83d 
<_PyEval_EvalFrameDefault+12733>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c0c25 
<_PyEval_EvalFrameDefault+21925>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4c1860 <_PyEval_EvalFrameDefault+25056>, 
0x4c25d0 <_PyEval_EvalFrameDefault+28496>, 0x4bf239 
<_PyEval_EvalFrameDefault+15289>,           0x4be9d7 
<_PyEval_EvalFrameDefault+13143>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c1af3 
<_PyEval_EvalFrameDefault+25715>,           0x4c1b9f 
<_PyEval_EvalFrameDefault+25887>, 0x4bedb8 <_PyEval_EvalFrameDefault+14136>, 
0x4bee4f <_PyEval_EvalFrameDefault+14287>, 0x4bf3e1 
<_PyEval_EvalFrameDefault+15713>,           0x4bf36e 
<_PyEval_EvalFrameDefault+15598>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555> 
<repeats 90 times>}
        PyId_displayhook = {string = 0x64aae2 "displayhook", index = -1}
        PyId_send = {string = 0x6a362a "send", index = -1}
        PyId_{}build_class{} = {string = 0x64ac69 "{}build_class{}", index = 18}
{}Type <RET> for more, q to quit, c to continue without paging{}
        PyId_{}annotations{} = {string = 0x655175 "{}annotations{}", index = -1}
        PyId_{}aenter{} = {string = 0x64ae53 "{}aenter{}", index = -1}
        PyId_{}aexit{} = {string = 0x64ae5e "{}aexit{}", index = -1}
        PyId_{}enter{} = {string = 0x606990 "{}enter{}", index = 40}
        PyId_{}exit{} = {string = 0x60699a "{}exit{}", index = 41}
        trace_info = {code = 0x0, bounds = {ar_start = 15, ar_end = 0, ar_line 
= -1767671200, opaque = {computed_line = -1767152416, lo_next = 0x7ffdcda1e830 
"\220\364\245\226\357\177",
              limit = 0x5989e3 <frame_dealloc+163> 
"\353\333A\213D$P\205\300~>1\333\353\032f.\017\037\204"}}, cframe = 
{use_tracing = 0, previous = 0x7ffdcda1ea40}}
        _unknown_opcode = <optimized out>
#32 0x00000000004bb57d in _PyEval_EvalFrame (tstate=0x1a4acd0, 
f=0x7fef96a5f490, throwflag=0) at ./Include/internal/pycore_ceval.h:46
No locals.
#33 _PyEval_Vector (tstate=0x1a4acd0, con=0x7fef96a79520, locals=<optimized 
out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) 
at Python/ceval.c:5065
        f = 0x7fef96a5f490
        retval = <optimized out>
#34 0x00000000004c4823 in call_function (tstate=<optimized out>, 
tstate@entry=0x1a4acd0, trace_info=trace_info@entry=0x7ffdcda1ea10, 
pp_stack=pp_stack@entry=0x7ffdcda1eac8, oparg=<optimized out>,
    oparg@entry=27569360, kwnames=0xffffffff, kwnames@entry=0x0) at 
./Include/cpython/abstract.h:115
        pfunc = 0x7fef96ad5140
        func = 0x7fef96a79510
        nkwargs = <optimized out>
        nargs = <optimized out>
        stack = 0x7fef96ad5148
        x = <optimized out>
        w = <optimized out>
#35 0x00000000004c1c0b in _PyEval_EvalFrameDefault (tstate=<optimized out>, 
f=0x7fef96ad4fc0, throwflag=<optimized out>) at Python/ceval.c:4181
        sp = 0x7fef96ad5158
        meth = <optimized out>
        res = <optimized out>
        opcode_targets =
{0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bbe90 
<_PyEval_EvalFrameDefault+2064>, 0x4bbeda <_PyEval_EvalFrameDefault+2138>, 
0x4bbf20 <_PyEval_EvalFrameDefault+2208>,           0x4bbfba 
<_PyEval_EvalFrameDefault+2362>, 0x4bc00f <_PyEval_EvalFrameDefault+2447>, 
0x4bbf69 <_PyEval_EvalFrameDefault+2281>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bbd3f <_PyEval_EvalFrameDefault+1727>, 
0x4bc070 <_PyEval_EvalFrameDefault+2544>, 0x4bc0e7 
<_PyEval_EvalFrameDefault+2663>,           0x4bc15e 
<_PyEval_EvalFrameDefault+2782>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bc23f 
<_PyEval_EvalFrameDefault+3007>,           0x4bc3e8 
<_PyEval_EvalFrameDefault+3432>, 0x4bcda4 <_PyEval_EvalFrameDefault+5924>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bc2b6 
<_PyEval_EvalFrameDefault+3126>,           0x4bc353 
<_PyEval_EvalFrameDefault+3283>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4bc5a7 <_PyEval_EvalFrameDefault+3879>, 0x4bc6af 
<_PyEval_EvalFrameDefault+4143>,           0x4bc76f 
<_PyEval_EvalFrameDefault+4335>, 0x4bc804 <_PyEval_EvalFrameDefault+4484>, 
0x4bc512 <_PyEval_EvalFrameDefault+3730>, 0x4bc47d 
<_PyEval_EvalFrameDefault+3581>,           0x4bcece 
<_PyEval_EvalFrameDefault+6222>, 0x4bce39 <_PyEval_EvalFrameDefault+6073>, 
0x4c0bbe <_PyEval_EvalFrameDefault+21822>, 0x4c0ff9 
<_PyEval_EvalFrameDefault+22905>,           0x4c1067 
<_PyEval_EvalFrameDefault+23015>, 0x4c10d5 <_PyEval_EvalFrameDefault+23125>, 
0x4c142b <_PyEval_EvalFrameDefault+23979>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555> <repeats 14 times>,           0x4c19fa 
<_PyEval_EvalFrameDefault+25466>, 0x4bd6de <_PyEval_EvalFrameDefault+8286>, 
0x4bd78d <_PyEval_EvalFrameDefault+8461>, 0x4c175b 
<_PyEval_EvalFrameDefault+24795>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bdc9f <_PyEval_EvalFrameDefault+9759>, 
0x4bd01c <_PyEval_EvalFrameDefault+6556>, 0x4bd0dc 
<_PyEval_EvalFrameDefault+6748>,           0x4bcd0f 
<_PyEval_EvalFrameDefault+5775>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4bcf63 <_PyEval_EvalFrameDefault+6371>, 0x4bd45a 
<_PyEval_EvalFrameDefault+7642>,           0x4bd51b 
<_PyEval_EvalFrameDefault+7835>, 0x4bc899 <_PyEval_EvalFrameDefault+4633>, 
0x4bc92e <_PyEval_EvalFrameDefault+4782>, 0x4bc9c3 
<_PyEval_EvalFrameDefault+4931>,           0x4bca58 
<_PyEval_EvalFrameDefault+5080>, 0x4bcaed <_PyEval_EvalFrameDefault+5229>, 
0x4bcc72 <_PyEval_EvalFrameDefault+5618>, 0x4c14e1 
<_PyEval_EvalFrameDefault+24161>,           0x4c1558 
<_PyEval_EvalFrameDefault+24280>, 0x4bd5cb <_PyEval_EvalFrameDefault+8011>, 
0x4bde54 <_PyEval_EvalFrameDefault+10196>, 0x4bd962 
<_PyEval_EvalFrameDefault+8930>,           0x4bd855 
<_PyEval_EvalFrameDefault+8661>, 0x4bddfc <_PyEval_EvalFrameDefault+10108>, 
0x4bd171 <_PyEval_EvalFrameDefault+6897>, 0x4bd206 
<_PyEval_EvalFrameDefault+7046>,           0x4bd29b 
<_PyEval_EvalFrameDefault+7195>, 0x4bd330 <_PyEval_EvalFrameDefault+7344>, 
0x4bd3c5 <_PyEval_EvalFrameDefault+7493>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4bed46 <_PyEval_EvalFrameDefault+14022>, 
0x4c2ef5 <_PyEval_EvalFrameDefault+30837>, 0x4c008f 
<_PyEval_EvalFrameDefault+18959>,           0x4bf0e3 
<_PyEval_EvalFrameDefault+14947>, 0x4c2f5b <_PyEval_EvalFrameDefault+30939>, 
0x4bdc60 <_PyEval_EvalFrameDefault+9696>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bdb97 
<_PyEval_EvalFrameDefault+9495>, 0x4bdee7 <_PyEval_EvalFrameDefault+10343>, 
0x4bdf9a <_PyEval_EvalFrameDefault+10522>, 0x4bdffe 
<_PyEval_EvalFrameDefault+10622>,           0x4c1604 
<_PyEval_EvalFrameDefault+24452>, 0x4be190 <_PyEval_EvalFrameDefault+11024>, 
0x4be223 <_PyEval_EvalFrameDefault+11171>, 0x4be2c3 
<_PyEval_EvalFrameDefault+11331>, --Type <RET> for more, q to quit, c to 
continue without paging--           0x4be342 <_PyEval_EvalFrameDefault+11458>, 
0x4be3c3 <_PyEval_EvalFrameDefault+11587>, 0x4c26d1 
<_PyEval_EvalFrameDefault+28753>, 0x4bbdcd <_PyEval_EvalFrameDefault+1869>,     
      0x4be465 <_PyEval_EvalFrameDefault+11749>, 0x4bea95 
<_PyEval_EvalFrameDefault+13333>, 0x4bec25 <_PyEval_EvalFrameDefault+13733>, 
0x4beec7 <_PyEval_EvalFrameDefault+14407>,           0x4befda 
<_PyEval_EvalFrameDefault+14682>, 0x4bf953 <_PyEval_EvalFrameDefault+17107>, 
0x4bfb3b <_PyEval_EvalFrameDefault+17595>, 0x4bfec6 
<_PyEval_EvalFrameDefault+18502>,           0x4c047d 
<_PyEval_EvalFrameDefault+19965>, 0x4c05a9 <_PyEval_EvalFrameDefault+20265>, 
0x4c08f0 <_PyEval_EvalFrameDefault+21104>, 0x4c0a2a 
<_PyEval_EvalFrameDefault+21418>,           0x4c0b66 
<_PyEval_EvalFrameDefault+21734>, 0x4c05e7 <_PyEval_EvalFrameDefault+20327>, 
0x4c0764 <_PyEval_EvalFrameDefault+20708>, 0x4be53b 
<_PyEval_EvalFrameDefault+11963>,           0x4bfbd3 
<_PyEval_EvalFrameDefault+17747>, 0x4bfc69 <_PyEval_EvalFrameDefault+17897>, 
0x4c2f1b <_PyEval_EvalFrameDefault+30875>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bfd26 
<_PyEval_EvalFrameDefault+18086>, 0x4c1706 <_PyEval_EvalFrameDefault+24710>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4bbd76 
<_PyEval_EvalFrameDefault+1782>,           0x4bbe2e 
<_PyEval_EvalFrameDefault+1966>, 0x4be715 <_PyEval_EvalFrameDefault+12437>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4bdb4d 
<_PyEval_EvalFrameDefault+9421>, 0x4c2ec8 <_PyEval_EvalFrameDefault+30792>, 
0x4c1c7d <_PyEval_EvalFrameDefault+26109>, 0x4bbc00 
<_PyEval_EvalFrameDefault+1408>,           0x4c2502 
<_PyEval_EvalFrameDefault+28290>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4be7dd <_PyEval_EvalFrameDefault+12637>, 0x4be912 
<_PyEval_EvalFrameDefault+12946>,           0x4be971 
<_PyEval_EvalFrameDefault+13041>, 0x4be777 <_PyEval_EvalFrameDefault+12535>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c29f3 
<_PyEval_EvalFrameDefault+29555>,           0x4c1d13 
<_PyEval_EvalFrameDefault+26259>, 0x4c1dcf <_PyEval_EvalFrameDefault+26447>, 
0x4c18cc <_PyEval_EvalFrameDefault+25164>, 0x4c2750 
<_PyEval_EvalFrameDefault+28880>,           0x4bcb82 
<_PyEval_EvalFrameDefault+5378>, 0x4bcbfa <_PyEval_EvalFrameDefault+5498>, 
0x4bf45b <_PyEval_EvalFrameDefault+15835>, 0x4be83d 
<_PyEval_EvalFrameDefault+12733>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c0c25 
<_PyEval_EvalFrameDefault+21925>,           0x4c29f3 
<_PyEval_EvalFrameDefault+29555>, 0x4c1860 <_PyEval_EvalFrameDefault+25056>, 
0x4c25d0 <_PyEval_EvalFrameDefault+28496>, 0x4bf239 
<_PyEval_EvalFrameDefault+15289>,           0x4be9d7 
<_PyEval_EvalFrameDefault+13143>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 
0x4c29f3 <_PyEval_EvalFrameDefault+29555>, 0x4c1af3 
<_PyEval_EvalFrameDefault+25715>,           0x4c1b9f 
<_PyEval_EvalFrameDefault+25887>, 0x4bedb8 <_PyEval_EvalFrameDefault+14136>, 
0x4bee4f <_PyEval_EvalFrameDefault+14287>, 0x4bf3e1 
<_PyEval_EvalFrameDefault+15713>,           0x4bf36e 
<_PyEval_EvalFrameDefault+15598>, 0x4c29f3 <_PyEval_EvalFrameDefault+29555> 
<repeats 90 times>}
        PyId_displayhook = {string = 0x64aae2 "displayhook", index = -1}
        PyId_send = {string = 0x6a362a "send", index = -1}
        PyId_{}build_class{} = {string = 0x64ac69 "{}build_class{}", index = 18}
        PyId_{}annotations{} = {string = 0x655175 "{}annotations{}", index = -1}
        PyId_{}aenter{} = {string = 0x64ae53 "{}aenter{}", index = -1}
        PyId_{}aexit{} = {string = 0x64ae5e "{}aexit{}", index = -1}
        PyId_{}enter{} = {string = 0x606990 "{}enter{}", index = 40}
        PyId_{}exit{} = {string = 0x60699a "{}exit{}", index = 41}
        trace_info = {code = 0x0, bounds = {ar_start = 64, ar_end = 0, ar_line 
= -1786174976, opaque = {computed_line = 28322560, lo_next = 0x725a70 
<PyMethod_Type> "\026", limit = 0x7fef95884eb0 "\003"}},
          cframe = {use_tracing = 0, previous = 0x7ffdcda1ec90}}
        _unknown_opcode = <optimized out>
#36 0x00000000004bb57d in _PyEval_EvalFrame (tstate=0x1a4acd0, 
f=0x7fef96ad4fc0, throwflag=0) at ./Include/internal/pycore_ceval.h:46
No locals.
#37 _PyEval_Vector (tstate=0x1a4acd0, con=0x7fef96afe600, locals=<optimized 
out>, args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>) 
at Python/ceval.c:5065
        f = 0x7fef96ad4fc0
        retval = <optimized out>
{code}
It seems both my python binding and pyarrow uses arrow's code to do some 
initialization, the `arrow::io::internal::GetIOThreadPool` for some reason 
fails to work in this case and caused the segfault.

 

{*}4) Since it is related with 
`::arrow::internal::GetEnvVar("ARROW_IO_THREADS");`{*}, I tried setting the 
`ARROW_IO_THREADS` env var to a number and gave it another try. And the program 
still caused a segfault, but reporting a different error (there is no `free(): 
invalid pointer` printed this time):
{code:java}
Fatal Python error: Segmentation fault
Current thread 0x00007fea55bd09c0 (most recent call first):
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1176 in create_module
  File "<frozen importlib._bootstrap>", line 571 in module_from_spec
  File "<frozen importlib._bootstrap>", line 674 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1006 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1027 in _find_and_load
  File 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/{}init{}.py",
 line 65 in <module>
  File "<frozen importlib._bootstrap>", line 241 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 883 in exec_module
  File "<frozen importlib._bootstrap>", line 688 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1006 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1027 in _find_and_load
  File "/usr/src/stonewave/bindings/python/<redated>/<redated>/search.py", line 
16 in search{code}
{*}5) I used gdb to view the core dump again{*}, and it reported error like 
below:
{code:java}
#0  raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {__val = {0 <repeats 16 times>}}
        pid = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
#1  <signal handler called>
No locals.
#2  0x00007fea5d4a60bb in std::{}shared_ptr<arrow::DataType, 
({}gnu_cxx::Lock_policy)2>::_shared_ptr (this=0x5)
    at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:1181
No locals.
#3  0x00007fea5d4a6093 in std::shared_ptr<arrow::DataType>::shared_ptr 
(this=0x5) at 
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr.h:149
No locals.
#4  0x00007fea5d9da822 in arrow::int32 () at 
/vcpkg/buildtrees/arrow/src/c4eb0a0543-8e1ffd6d16.clean/cpp/src/arrow/type.cc:2165
        result = warning: RTTI symbol not found for class 
'std::Sp_counted_ptr_inplace<arrow::Int32Type, 
std::allocator<arrow::Int32Type>, (_gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 
'std::Sp_counted_ptr_inplace<arrow::Int32Type, 
std::allocator<arrow::Int32Type>, (_gnu_cxx::_Lock_policy)2>'
std::shared_ptr<arrow::DataType> (use count 1053, weak count 0) = {get() = 
0x108ba70}
#5  0x00007fea364ff4af in GLOBAL_sub_I_unity_1_cxx.cxx () from 
/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/libarrow_dataset.so.1000
No symbol table info available.
#6  0x00007fea6b82ffe2 in call_init (l=<optimized out>, argc=argc@entry=5, 
argv=argv@entry=0x7fff106aae38, env=env@entry=0x168fd50) at dl-init.c:72
        j = 0
        jm = <optimized out>
        addrs = <optimized out>
        init_array = <optimized out>
#7  0x00007fea6b8300e9 in call_init (env=0x168fd50, argv=0x7fff106aae38, 
argc=5, l=<optimized out>) at dl-init.c:30
        init_array = <optimized out>
        j = <optimized out>
        jm = <optimized out>
        addrs = <optimized out>
#8  _dl_init (main_map=0x1918190, argc=5, argv=0x7fff106aae38, env=0x168fd50) 
at dl-init.c:119
        preinit_array = <optimized out>
        preinit_array_size = <optimized out>
        i = <optimized out>
#9  0x00007fea575a2aed in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x0, operate=operate@entry=0x7fea6b8335d0 
<call_dl_init>, args=args@entry=0x7fff106a1cd0)
    at dl-error-skeleton.c:182
        old = <optimized out>
        errcode = 0
        c = {exception = 0x7fff106a1c30, errcode = 0x0, env = {{__jmpbuf =
{140733468777520, 0, 0, 140643321125720, 26313976, 140643321198124, 
140643321095744, 140643323642840}
,
              {}mask_was_saved = 322015232, _saved_mask = {_val =
{0, 140733468777616, 140644478215584, 0, 0, 0, 0, 0, 0, 0, 0, 
12468370135039750697, 140733468778096, 140733468777584,                   
140733468778096, 140733468777760}
}}}}
        old = <optimized out>
#10 0x00007fea6b834058 in dl_open_worker (a=a@entry=0x7fff106a1e70) at 
dl-open.c:758
        init_args = {new = 0x1918190, argc = 5, argv = 0x7fff106aae38, env = 
0x168fd50}
        args = 0x7fff106a1e70
        file = <optimized out>
        mode = <optimized out>
        call_map = <optimized out>
        dst = <optimized out>
        new = 0x1918190
        {}PRETTY_FUNCTION{} = "dl_open_worker"
        r = <optimized out>
{}Type <RET> for more, q to quit, c to continue without paging{}
        reloc_mode = <optimized out>
        nmaps = <optimized out>
        l = <optimized out>
        maps = <error reading variable maps (value requires 138793856 bytes, 
which is more than max-value-size)>
        relocation_in_progress = <optimized out>
        any_tls = <optimized out>
#11 0x00007fea575a2a90 in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x7fff106a1e50, operate=operate@entry=0x7fea6b833ca0 
<dl_open_worker>, args=args@entry=0x7fff106a1e70)
    at dl-error-skeleton.c:208
        errcode = 0
        c = {exception = 0x7fff106a1e50, errcode = 0x7fff106a1d5c, env = 
{{__jmpbuf =
{2147483650, 1061564265845182786, -74376, 5, 5369100, -2, 1049880826869928258, 
1061551455913726274}
,
              {}mask_was_saved = 0, _saved_mask = {_val =
{140644403015840, 140644403015840, 4506233, 140644402510488, 15, 
140644402510432, 140644403015888, 140733468778048,                   
140733468778080, 140733468779105, 10865718445837529600, 140733468778848, 0, 
257, 140733468778080, 6671076}
}}}}
        old = 0x7fff106a1f40
#12 0x00007fea6b8338fa in _dl_open (file=0x7fea5165efc0 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
    mode=-2147483646, caller_dlopen=0x51ed0c <_PyImport_FindSharedFuncptr+284>, 
nsid=-2, argc=5, argv=0x7fff106a1e50, env=0x168fd50) at dl-open.c:837
        args =
{file = 0x7fea5165efc0 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
           mode = -2147483646, caller_dlopen = 0x51ed0c 
<_PyImport_FindSharedFuncptr+284>, map = 0x1918190, nsid = 0, 
original_global_scope_pending_adds = 0, argc = 5,           argv = 
0x7fff106aae38, env = 0x168fd50}
        exception =
{objname = 0x439830 <list_richcompare> "UAWAVAUATSPH\213G\b\366\200\253", 
errstring = 0x7fff106a1f50 "8Y\b\001",           message_buffer = 0xfbad8001 
<error: Cannot access memory at address 0xfbad8001>}
        errcode = <optimized out>
        {}PRETTY_FUNCTION{} = "_dl_open"
#13 0x00007fea5778d258 in dlopen_doit (a=a@entry=0x7fff106a2090) at dlopen.c:66
        args = 0x7fff106a2090
#14 0x00007fea575a2a90 in {}GI{_}_dl_catch_exception 
(exception=exception@entry=0x7fff106a2030, operate=operate@entry=0x7fea5778d200 
<dlopen_doit>, args=args@entry=0x7fff106a2090)
    at dl-error-skeleton.c:208
        errcode = 32746
        c = {exception = 0x7fff106a2030, errcode = 0x7fff106a1f3c, env = 
{{__jmpbuf =
{17324344, -1049391729601195710, -74376, 140644364656960, 140644364656832, 
140644364709824,                 1049880826807013698, 1061551455913726274}
, {}mask_was_saved = 0, _saved_mask = {_val =
{10865718445837529600, 9223372036854775807, 258, 0, 0, 140644364656960,         
          140733468778848, 140644364709824, 5216203, 206158430248, 
140733468778704, 140733468778496, 140644402549736, 140644402549736, 2, 
140644402612032}
}}}}
        old = 0x0
#15 0x00007fea575a2b4f in {}GI{_}_dl_catch_error 
(objname=objname@entry=0x1085940, errstring=errstring@entry=0x1085948, 
mallocedp=mallocedp@entry=0x1085938,
    operate=operate@entry=0x7fea5778d200 <dlopen_doit>, 
args=args@entry=0x7fff106a2090) at dl-error-skeleton.c:227
        exception = {objname = 0x0, errstring = 0x2 <error: Cannot access 
memory at address 0x2>, message_buffer = 0x1 <error: Cannot access memory at 
address 0x1>}
        errorcode = <optimized out>
#16 0x00007fea5778da65 in _dlerror_run (operate=operate@entry=0x7fea5778d200 
<dlopen_doit>, args=args@entry=0x7fff106a2090) at dlerror.c:170
        result = 0x1085930
#17 0x00007fea5778d2e4 in __dlopen (file=<optimized out>, mode=<optimized out>) 
at dlopen.c:87
        args =
{file = 0x7fea5165efc0 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 mode = 2,           new = 0x11f6700, caller = 0x51ed0c 
<_PyImport_FindSharedFuncptr+284>}
#18 0x000000000051ed0c in _PyImport_FindSharedFuncptr (prefix=0x64fb3d 
"PyInit", shortname=0x7fea516520c0 "lib",
    pathname=0x7fea5165efc0 
"/root/.cache/pypoetry/virtualenvs/<redated>-sOknH4PM-py3.10/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so",
 fp=0x0)
    at ./Python/dynload_shlib.c:100
        funcname = "PyInit_lib", '\000' <repeats 22 times>, 
"\320\315qR\352\177\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\001\000\000\000\001",
 '\000' <repeats 43 times>, 
"O\373d\000\000\000\000\000\000g\037\001\000\000\000\000\200sfQ\352\177\000\000P\"j\020\377\177\000\000\002\000\000\000\000\000\000\000P\"j\020\377\177\000\000\000\000\000\000\000\000\000\000V\357Y\000\000\000\000\000\240\356Y\000\000\000\000\000\240
 eQ\352\177\000\000\070\067hQ\352\177\000\000"...
        pathbuf = 
"\002\000\000\000\000\000\000\000\264\212\035\305yz\306d\000\021\260S\352\177\000\000\236\272D\000\000\000\000\000\230\272\246S\352\177\000\000\000\000\000\000\000\000\000\000p\036hQ\352\177\000\000@!eQ\352\177\000\000p;xQ\352\177\000\000\240
 
eQ\352\177\000\000\000\000\000\000\000\000\000\000\023\305P\000\000\000\000\000\020\000\000\000\060\000\000\000\260#j\0
20\377\177\000\000\360\"j\020\377\177\000\000@!eQ\352\177\000\000\000\000\000\000\000\000\000\000Q\274D\000\000\000\000\000p\036hQ\352\177\000\000p;xQ\352\177\000\000\340\251p\000\000\000\000\000\340\251p\000\000\000\000\000\360\071j\000\000\000\000\000\003",
 '\000' <repeats 15 times>...
        dlopenflags = 1799967928
        handle = <optimized out>
        p = <optimized out>
#19 0x00000000004eaa4e in _PyImport_LoadDynamicModuleWithSpec 
(spec=0x7fea51652140, fp=0x0) at ./Python/importdl.c:137
        m = 0x0
        path = <optimized out>
        name = 0x7fea516520a0
        name_unicode = 0x7fea51681e70
        pathbytes = 0x7fea5165efa0
        hook_prefix = 0x64fb3d "PyInit"
        name_buf = 0x7fea516520c0 "lib"
        exportfunc = <optimized out>
        p0 = <optimized out>
        oldcontext = <optimized out>
        def = <optimized out>
        modules = <optimized out>
{code}
It is different with previously core dump, but I have no idea how this happens 
now. And the behavior is pretty consistent, if I unset the `ARROW_IO_THREADS` 
env var and run the program again, the previous core dump will be generated 
again.

 

*Summary:*

I don't know how to proceed any more. Basically:

1) I create a C++ library with arrow C++ library

2) I create a python binding for the C++ library using pybind

3) Instead of importing pyarrow.h header, I now import <arrow/c/abi.h> and 
<arrow/c/bridge.h> for bridging

4) In my python program, I use both my python binding and pyarrow wheel

Could you please shed some light on this issue? Do you think if this kind usage 
is supported or if it is some bug for arrow project?

> [C++][Python] Move all Python related code into PyArrow
> -------------------------------------------------------
>
>                 Key: ARROW-16340
>                 URL: https://issues.apache.org/jira/browse/ARROW-16340
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++, Python
>            Reporter: Alenka Frim
>            Assignee: Alenka Frim
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 10.0.0
>
>          Time Spent: 33h 10m
>  Remaining Estimate: 0h
>
> Move {{src/arrow/python}} directory into {{pyarrow}} and arrange PyArrow to 
> build it.
> More details can be found on this thread:
> https://lists.apache.org/thread/jbxyldhqff4p9z53whhs95y4jcomdgd2



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to