numba / numba

NumPy aware dynamic Python compiler using LLVM
https://numba.pydata.org/
BSD 2-Clause "Simplified" License
9.86k stars 1.12k forks source link

Memory alignment errors on ARM in unittests #6659

Open stuartarchibald opened 3 years ago

stuartarchibald commented 3 years ago

Continuing to track memory alignment errors causing SIGBUS on various ARM system from: https://github.com/numba/numba/issues/6345#issuecomment-765602660

stuartarchibald commented 3 years ago

Copying in issue from #6345 reported by @detrout (Debian).


Two new things triggered Bus errors in the latest armhf test run.

test_getitem_slice2_kind, test_getitem_slice3_kind from test_unicode.py failed. See https://ci.debian.net/data/autopkgtest/testing/armhf/n/numba/9912630/log.gz for the stack traces.

I extracted those two tests out and ran them separately on armhf on a arm64 kernel.

It looks like it's only triggered by hash(x[i]). If I remove the call to hash the tests pass. Also if I replace the test strings with english characters it works. I modified it to print how the message from the assert and it seems like it tends to be accessing past the end of the string that causes issues.

Using this modified function:

def test_getitem_slice2_kind():
    # See issue #6135. Also see note in test_getitem_scalar_kind regarding
    # testing.
    pyfunc = getitem_check_kind_usecase
    cfunc = njit(pyfunc)
    #cfunc = pyfunc
    samples = ['abc\u1234\u1234', '¡¡¡着着着']
    #samples = ['abcde', 'abcdef']
    print("slice2[0]", len(samples[0]))
    print("slice2[1]", len(samples[1]))
    for s in samples:
        for i in [-2, -1, 0, 1, 2, len(s), len(s) + 1]:
            for j in [-2, -1, 0, 1, 2, len(s), len(s) + 1]:
                sl = slice(i, j)
                print("slice2 '%s'[%d:%d]? %s pyfunc %s" % (s, i, j, s[sl], pyfunc(s, sl)))
                assert pyfunc(s, sl) == cfunc(s, sl), "'%s'[%d:%d]?" % (s, i, j)

Here's the end of the output before the bus error.

slice2 'abcሴሴ'[1:2]? pyfunc 454941494
slice2 'abcሴሴ'[1:5]? pyfunc -721220870
Bus error
stuartarchibald commented 3 years ago

Thanks for the above @detrout, I think I'll have to extract these tests and see if I can get them to reproduce somewhere so as to debug what's going on. Wonder if there's a bug in the hash translation or its making an invalid assumption.

detrout commented 3 years ago

If you can't find your own system to test, let me know if there's anything you'd like me to try to run and report back on.

One of the other things I tried was to .encode('utf-8') on the unicode strings and pass those to hash(), and that triggered an error that there wasn't a hash function for readonly uint8 bytes. I was trying to figure out a good way to copy the slice and feed that to the hash function to see what happened.

stuartarchibald commented 3 years ago

If you can't find your own system to test, let me know if there's anything you'd like me to try to run and report back on.

Thanks very much, once 0.53 is released will try and get set up to test this and shout if it's not possible.

One of the other things I tried was to .encode('utf-8') on the unicode strings and pass those to hash(), and that triggered an error that there wasn't a hash function for readonly uint8 bytes. I was trying to figure out a good way to copy the slice and feed that to the hash function to see what happened.

Does just slicing trigger it? Or is hash required too? Any chance you could please run the test under catchsegv or gdb to get a trace?

detrout commented 3 years ago

Hash is required to trigger the bug, just accessing the variable isn't enough.

def getitem_check_kind_usecase(x, i):
    #return hash(x[i])
    return x[i]

If I use the commented out line I get the bus error, if I use the line currently uncommented in the copy above it runs.

And to explain the text printered in the gdb trace a bit below here's the version of the test I used. (In case knowing the indexes that crash are helpful.)

Is there a way to get numba to build a version of the libraries it's generating with debug symbols?

def test_getitem_slice2_kind():
    # See issue #6135. Also see note in test_getitem_scalar_kind regarding
    # testing.
    pyfunc = getitem_check_kind_usecase
    cfunc = njit(pyfunc)
    #cfunc = pyfunc
    samples = ['abc\u1234\u1234', '¡¡¡着着着']
    #samples = ['abcde', 'abcdef']
    print("slice2[0]", len(samples[0]))
    print("slice2[1]", len(samples[1]))
    for s in samples:
        for i in [-2, -1, 0, 1, 2, len(s), len(s) + 1]:
            for j in [-2, -1, 0, 1, 2, len(s), len(s) + 1]:
                sl = slice(i, j)
                print("slice2 '%s'[%d:%d]? %s pyfunc %s" % (s, i, j, s[sl], pyfunc(s, sl)))
                assert pyfunc(s, sl) == cfunc(s, sl), "'%s'[%d:%d]?" % (s, i, j)
Reading symbols from /usr/bin/python3...
Reading symbols from /usr/lib/debug/.build-id/cb/bcfee6f3f7f67884eea0d62eb03ec3b20a1f37.debug...
(gdb) set args numba_fails.py 
(gdb) run
Starting program: /usr/bin/python3 numba_fails.py 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
slice2[0] 5
slice2[1] 6
slice2 'abcሴሴ'[-2:-2]?  pyfunc 0
slice2 'abcሴሴ'[-2:-1]? ሴ pyfunc -1234641780
slice2 'abcሴሴ'[-2:0]?  pyfunc 0
slice2 'abcሴሴ'[-2:1]?  pyfunc 0
slice2 'abcሴሴ'[-2:2]?  pyfunc 0
slice2 'abcሴሴ'[-2:5]? ሴሴ pyfunc 344634321
slice2 'abcሴሴ'[-2:6]? ሴሴ pyfunc 344634321
slice2 'abcሴሴ'[-1:-2]?  pyfunc 0
slice2 'abcሴሴ'[-1:-1]?  pyfunc 0
slice2 'abcሴሴ'[-1:0]?  pyfunc 0
slice2 'abcሴሴ'[-1:1]?  pyfunc 0
slice2 'abcሴሴ'[-1:2]?  pyfunc 0
slice2 'abcሴሴ'[-1:5]? ሴ pyfunc -1234641780
slice2 'abcሴሴ'[-1:6]? ሴ pyfunc -1234641780
slice2 'abcሴሴ'[0:-2]? abc pyfunc -986970099
slice2 'abcሴሴ'[0:-1]? abcሴ pyfunc -891378533
slice2 'abcሴሴ'[0:0]?  pyfunc 0
slice2 'abcሴሴ'[0:1]? a pyfunc -1040979512
slice2 'abcሴሴ'[0:2]? ab pyfunc -122725316
slice2 'abcሴሴ'[0:5]? abcሴሴ pyfunc -833537850
slice2 'abcሴሴ'[0:6]? abcሴሴ pyfunc -833537850
slice2 'abcሴሴ'[1:-2]? bc pyfunc -1311528417
slice2 'abcሴሴ'[1:-1]? bcሴ pyfunc -1158518517
slice2 'abcሴሴ'[1:0]?  pyfunc 0
slice2 'abcሴሴ'[1:1]?  pyfunc 0
slice2 'abcሴሴ'[1:2]? b pyfunc 215792395
slice2 'abcሴሴ'[1:5]? bcሴሴ pyfunc 1782046199

Program received signal SIGBUS, Bus error.
0xf05d20b8 in numba::cpython::hashing::_siphash24$2422(unsigned long long, unsigned long long, void$2a, int) ()
(gdb) bt full
#0  0xf05d20b8 in numba::cpython::hashing::_siphash24$2422(unsigned long long, unsigned long long, void$2a, int) ()
No symbol table info available.
#1  0xf0545144 in __main__::getitem_check_kind_usecase$241(unicode_type, slice$3ca$3ab$3e) ()
No symbol table info available.
#2  0xf05452f8 in cpython::__main__::getitem_check_kind_usecase$241(unicode_type, slice$3ca$3ab$3e) ()
No symbol table info available.
#3  0xf784ccfc in Dispatcher_call (self=0xf15421b0, args=<optimized out>, kws=<optimized out>) at numba/_dispatcher.c:563
        tmptype = <optimized out>
        retval = 0x0
        tys = 0xfffef09c
        argct = <optimized out>
        i = <optimized out>
        prealloc = {8, 32, -137086464, 1, 1413551, 0, 1, -245804264, -137999488, 0, -137603120, 7, 2, 0, 543589, 1, 2, 4105776, 580663, 1, 674505, 5, 0, 1}
        matches = 1
        cfunc = <built-in method getitem_check_kind_usecase of _dynfunc._Closure object at remote 0xf08be958>
        ts = <optimized out>
        locals = 0x0
        exact_match_required = 1
#4  0x00085060 in _PyObject_MakeTpCall (tstate=0x3ea630, callable=
    <CPUDispatcher(typingctx=<Context(_registries={<Registry(functions=[<ABCMeta(__module__='numba.core.typing.cffi_utils', key='ffi.from_buffer', generic=<function at remote 0xf154c148>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf1547f78>) at remote 0xf15483d8>], attributes=[<type at remote 0xf15485b0>], globals=[]) at remote 0xf154a0e8>: <RegistryLoader(_registrations={'functions': <generator at remote 0xf15196b8>, 'attributes': <generator at remote 0xf15196f0>, 'globals': <generator at remote 0xf1519728>}) at remote 0xf1585148>, <Registry(functions=[], attributes=[], globals=[(<built-in method tanh of module object at remote 0xf154d410>, <Function(templates=(<ABCMeta(__module__='numba.core.typing.templates', key=<built-in method tanh of module object at remote 0xf154d410>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf154d938>) at remote 0xf1548960>,), typing_key=<built-in method tanh of module object at remote 0xf154d410>, _imp...(truncated), args=0xf159531c, nargs=<optimized out>, keywords=<optimized out>) at ../Objects/call.c:191
        call = 0xf784c9f5 <Dispatcher_call>
        argstuple = ('abc\u1234\u1234', <slice at remote 0xf2261528>)
        kwdict = <optimized out>
        result = 0x0
#5  0x0007e1a2 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, 
    callable=<CPUDispatcher(typingctx=<Context(_registries={<Registry(functions=[<ABCMeta(__module__='numba.core.typing.cffi_utils', key='ffi.from_buffer', generic=<function at remote 0xf154c148>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf1547f78>) at remote 0xf15483d8>], attributes=[<type at remote 0xf15485b0>], globals=[]) at remote 0xf154a0e8>: <RegistryLoader(_registrations={'functions': <generator at remote 0xf15196b8>, 'attributes': <generator at remote 0xf15196f0>, 'globals': <generator at remote 0xf1519728>}) at remote 0xf1585148>, <Registry(functions=[], attributes=[], globals=[(<built-in method tanh of module object at remote 0xf154d410>, <Function(templates=(<ABCMeta(__module__='numba.core.typing.templates', key=<built-in method tanh of module object at remote 0xf154d410>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf154d938>) at remote 0xf1548960>,), typing_key=<built-in method tanh of module object at remote 0xf154d410>, _imp...(truncated), tstate=0x3ea630) at ../Include/cpython/abstract.h:116
        nargs = <optimized out>
        func = <optimized out>
        res = <optimized out>
#6  _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, 
    callable=<CPUDispatcher(typingctx=<Context(_registries={<Registry(functions=[<ABCMeta(__module__='numba.core.typing.cffi_utils', key='ffi.from_buffer', generic=<function at remote 0xf154c148>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf1547f78>) at remote 0xf15483d8>], attributes=[<type at remote 0xf15485b0>], globals=[]) at remote 0xf154a0e8>: <RegistryLoader(_registrations={'functions': <generator at remote 0xf15196b8>, 'attributes': <generator at remote 0xf15196f0>, 'globals': <generator at remote 0xf1519728>}) at remote 0xf1585148>, <Registry(functions=[], attributes=[], globals=[(<built-in method tanh of module object at remote 0xf154d410>, <Function(templates=(<ABCMeta(__module__='numba.core.typing.templates', key=<built-in method tanh of module object at remote 0xf154d410>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf154d938>) at remote 0xf1548960>,), typing_key=<built-in method tanh of module object at remote 0xf154d410>, _imp...(truncated), tstate=0x3ea630) at ../Include/cpython/abstract.h:103
        func = <optimized out>
        res = <optimized out>
        func = <optimized out>
        res = <optimized out>
        nargs = <optimized out>
#7  PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, 
    callable=<CPUDispatcher(typingctx=<Context(_registries={<Registry(functions=[<ABCMeta(__module__='numba.core.typing.cffi_utils', key='ffi.from_buffer', generic=<function at remote 0xf154c148>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf1547f78>) at remote 0xf15483d8>], attributes=[<type at remote 0xf15485b0>], globals=[]) at remote 0xf154a0e8>: <RegistryLoader(_registrations={'functions': <generator at remote 0xf15196b8>, 'attributes': <generator at remote 0xf15196f0>, 'globals': <generator at remote 0xf1519728>}) at remote 0xf1585148>, <Registry(functions=[], attributes=[], globals=[(<built-in method tanh of module object at remote 0xf154d410>, <Function(templates=(<ABCMeta(__module__='numba.core.typing.templates', key=<built-in method tanh of module object at remote 0xf154d410>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf154d938>) at remote 0xf1548960>,), typing_key=<built-in method tanh of module object at remote 0xf154d410>, _imp...(truncated)) at ../Include/cpython/abstract.h:127
        tstate = 0x3ea630
--Type <RET> for more, q to quit, c to continue without paging--c
        tstate = <optimized out>
#8  call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x3ea630) at ../Python/ceval.c:5072
        func = <CPUDispatcher(typingctx=<Context(_registries={<Registry(functions=[<ABCMeta(__module__='numba.core.typing.cffi_utils', key='ffi.from_buffer', generic=<function at remote 0xf154c148>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf1547f78>) at remote 0xf15483d8>], attributes=[<type at remote 0xf15485b0>], globals=[]) at remote 0xf154a0e8>: <RegistryLoader(_registrations={'functions': <generator at remote 0xf15196b8>, 'attributes': <generator at remote 0xf15196f0>, 'globals': <generator at remote 0xf1519728>}) at remote 0xf1585148>, <Registry(functions=[], attributes=[], globals=[(<built-in method tanh of module object at remote 0xf154d410>, <Function(templates=(<ABCMeta(__module__='numba.core.typing.templates', key=<built-in method tanh of module object at remote 0xf154d410>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf154d938>) at remote 0xf1548960>,), typing_key=<built-in method tanh of module object at remote 0xf154d410>, _imp...(truncated)
        w = <optimized out>
        nkwargs = 0
        nargs = <optimized out>
        pfunc = 0xf1595318
        x = <optimized out>
        stack = <optimized out>
        pfunc = <optimized out>
        func = <optimized out>
        x = <optimized out>
        w = <optimized out>
        nkwargs = <optimized out>
        nargs = <optimized out>
        stack = <optimized out>
#9  _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3518
        sp = <optimized out>
        res = <optimized out>
        __atomic_load_ptr = <optimized out>
        __atomic_load_tmp = <optimized out>
        stack_pointer = <optimized out>
        next_instr = 0xf7d3cc2e
        opcode = <optimized out>
        oparg = <optimized out>
        fastlocals = <optimized out>
        freevars = <optimized out>
        retval = <optimized out>
        ceval2 = <optimized out>
        eval_breaker = <optimized out>
        co = <optimized out>
        instr_ub = -1
        instr_lb = 0
        instr_prev = -1
        first_instr = <optimized out>
        names = <optimized out>
        consts = <optimized out>
        co_opcache = <optimized out>
        main_loop = <optimized out>
        fast_next_opcode = <optimized out>
        exception_unwind = <optimized out>
        __func__ = "_PyEval_EvalFrameDefault"
        opcode_targets = {0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7aaa4 <_PyEval_EvalFrameDefault+1968>, 0x7b802 <_PyEval_EvalFrameDefault+5390>, 0x7b9f2 <_PyEval_EvalFrameDefault+5886>, 0x7b3ac <_PyEval_EvalFrameDefault+4280>, 0x7d63a <_PyEval_EvalFrameDefault+13126>, 0x7d760 <_PyEval_EvalFrameDefault+13420>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x82034 <_PyEval_EvalFrameDefault+32064>, 0x809e4 <_PyEval_EvalFrameDefault+26352>, 0x7c832 <_PyEval_EvalFrameDefault+9534>, 0x7c892 <_PyEval_EvalFrameDefault+9630>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7cbfa <_PyEval_EvalFrameDefault+10502>, 0x80dfc <_PyEval_EvalFrameDefault+27400>, 0x80d90 <_PyEval_EvalFrameDefault+27292>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7bd70 <_PyEval_EvalFrameDefault+6780>, 0x7b0b6 <_PyEval_EvalFrameDefault+3522>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7bb16 <_PyEval_EvalFrameDefault+6178>, 0x7ae5a <_PyEval_EvalFrameDefault+2918>, 0x7b24e <_PyEval_EvalFrameDefault+3930>, 0x7abe2 <_PyEval_EvalFrameDefault+2286>, 0x7c1ec <_PyEval_EvalFrameDefault+7928>, 0x7ba3a <_PyEval_EvalFrameDefault+5958>, 0x7d686 <_PyEval_EvalFrameDefault+13202>, 0x7c0a8 <_PyEval_EvalFrameDefault+7604>, 0x80922 <_PyEval_EvalFrameDefault+26158> <repeats 18 times>, 0x7d00e <_PyEval_EvalFrameDefault+11546>, 0x7d092 <_PyEval_EvalFrameDefault+11678>, 0x7d4b0 <_PyEval_EvalFrameDefault+12732>, 0x7d868 <_PyEval_EvalFrameDefault+13684>, 0x816ac <_PyEval_EvalFrameDefault+29624>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x81646 <_PyEval_EvalFrameDefault+29522>, 0x7b786 <_PyEval_EvalFrameDefault+5266>, 0x7c72c <_PyEval_EvalFrameDefault+9272>, 0x7d10a <_PyEval_EvalFrameDefault+11798>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7db9a <_PyEval_EvalFrameDefault+14502>, 0x7b2d0 <_PyEval_EvalFrameDefault+4060>, 0x7c12c <_PyEval_EvalFrameDefault+7736>, 0x7ce2c <_PyEval_EvalFrameDefault+11064>, 0x7c7b0 <_PyEval_EvalFrameDefault+9404>, 0x7b8b2 <_PyEval_EvalFrameDefault+5566>, 0x7ceac <_PyEval_EvalFrameDefault+11192>, 0x7c97e <_PyEval_EvalFrameDefault+9866>, 0x81ebc <_PyEval_EvalFrameDefault+31688>, 0x7b34c <_PyEval_EvalFrameDefault+4184>, 0x7d96a <_PyEval_EvalFrameDefault+13942>, 0x7d532 <_PyEval_EvalFrameDefault+12862>, 0x7cb30 <_PyEval_EvalFrameDefault+10300>, 0x7bac4 <_PyEval_EvalFrameDefault+6096>, 0x7d5c0 <_PyEval_EvalFrameDefault+13004>, 0x80a70 <_PyEval_EvalFrameDefault+26492>, 0x7ccb6 <_PyEval_EvalFrameDefault+10690>, 0x7dab4 <_PyEval_EvalFrameDefault+14272>, 0x7db26 <_PyEval_EvalFrameDefault+14386>, 0x7d8f6 <_PyEval_EvalFrameDefault+13826>, 0x7cdb8 <_PyEval_EvalFrameDefault+10948>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7c904 <_PyEval_EvalFrameDefault+9744>, 0x7a9c0 <_PyEval_EvalFrameDefault+1740>, 0x7d1e2 <_PyEval_EvalFrameDefault+12014>, 0x7da28 <_PyEval_EvalFrameDefault+14132>, 0x7b1da <_PyEval_EvalFrameDefault+3814>, 0x7b190 <_PyEval_EvalFrameDefault+3740>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7bdf0 <_PyEval_EvalFrameDefault+6908>, 0x7b3f2 <_PyEval_EvalFrameDefault+4350>, 0x7d9ca <_PyEval_EvalFrameDefault+14038>, 0x7acfa <_PyEval_EvalFrameDefault+2566>, 0x7aae8 <_PyEval_EvalFrameDefault+2036>, 0x7d7ac <_PyEval_EvalFrameDefault+13496>, 0x7ade2 <_PyEval_EvalFrameDefault+2798>, 0x7c6c6 <_PyEval_EvalFrameDefault+9170>, 0x7d6f8 <_PyEval_EvalFrameDefault+13316>, 0x80c02 <_PyEval_EvalFrameDefault+26894>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7a594 <_PyEval_EvalFrameDefault+672>, 0x7b83e <_PyEval_EvalFrameDefault+5450>, 0x7b002 <_PyEval_EvalFrameDefault+3342>, 0x7b638 <_PyEval_EvalFrameDefault+4932>, 0x7d38a <_PyEval_EvalFrameDefault+12438>, 0x7b990 <_PyEval_EvalFrameDefault+5788>, 0x7a742 <_PyEval_EvalFrameDefault+1102>, 0x7aa2a <_PyEval_EvalFrameDefault+1846>, 0x7c26e <_PyEval_EvalFrameDefault+8058>, 0x7c5da <_PyEval_EvalFrameDefault+8934>, 0x7af6e <_PyEval_EvalFrameDefault+3194>, 0x7b934 <_PyEval_EvalFrameDefault+5696>, 0x7bbb0 <_PyEval_EvalFrameDefault+6332>, 0x7ac54 <_PyEval_EvalFrameDefault+2400>, 0x7a6de <_PyEval_EvalFrameDefault+1002>, 0x7ac96 <_PyEval_EvalFrameDefault+2466>, 0x7a62a <_PyEval_EvalFrameDefault+822>, 0x7ab66 <_PyEval_EvalFrameDefault+2162>, 0x7aeda <_PyEval_EvalFrameDefault+3046>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7beb0 <_PyEval_EvalFrameDefault+7100>, 0x7b12c <_PyEval_EvalFrameDefault+3640>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7a54a <_PyEval_EvalFrameDefault+598>, 0x7a5da <_PyEval_EvalFrameDefault+742>, 0x7cc5a <_PyEval_EvalFrameDefault+10598>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7cd38 <_PyEval_EvalFrameDefault+10820>, 0x7a7aa <_PyEval_EvalFrameDefault+1206>, 0x7b51c <_PyEval_EvalFrameDefault+4648>, 0x7b492 <_PyEval_EvalFrameDefault+4510>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7bd1e <_PyEval_EvalFrameDefault+6698>, 0x7afa8 <_PyEval_EvalFrameDefault+3252>, 0x7c19a <_PyEval_EvalFrameDefault+7846>, 0x81420 <_PyEval_EvalFrameDefault+28972>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7b694 <_PyEval_EvalFrameDefault+5024>, 0x7bf40 <_PyEval_EvalFrameDefault+7244>, 0x7bc24 <_PyEval_EvalFrameDefault+6448>, 0x7ab58 <_PyEval_EvalFrameDefault+2148>, 0x7b5d4 <_PyEval_EvalFrameDefault+4832>, 0x7cb96 <_PyEval_EvalFrameDefault+10402>, 0x7ca00 <_PyEval_EvalFrameDefault+9996>, 0x7cf86 <_PyEval_EvalFrameDefault+11410>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x82158 <_PyEval_EvalFrameDefault+32356>, 0x7c648 <_PyEval_EvalFrameDefault+9044>, 0x7c398 <_PyEval_EvalFrameDefault+8356>, 0x7ca9e <_PyEval_EvalFrameDefault+10154>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7a952 <_PyEval_EvalFrameDefault+1630>, 0x7a876 <_PyEval_EvalFrameDefault+1410>, 0x7c326 <_PyEval_EvalFrameDefault+8242>, 0x7cf1e <_PyEval_EvalFrameDefault+11306>, 0x7c044 <_PyEval_EvalFrameDefault+7504>, 0x7d17c <_PyEval_EvalFrameDefault+11912>, 0x80922 <_PyEval_EvalFrameDefault+26158> <repeats 90 times>}
        PyId_displayhook = {next = 0x0, string = 0x1fdb94 "displayhook", object = 0x0}
        PyId_send = {next = 0x0, string = 0x1eb980 "send", object = 0x0}
        PyId___build_class__ = {next = 0x3bfa74 <PyId___builtins__.lto_priv.0>, string = 0x1feba8 "__build_class__", object = '__build_class__'}
        PyId___annotations__ = {next = 0x3d16dc <PyId___complex__.2>, string = 0x1eb818 "__annotations__", object = '__annotations__'}
        PyId___aenter__ = {next = 0x0, string = 0x21e6a8 "__aenter__", object = 0x0}
        PyId___aexit__ = {next = 0x0, string = 0x21e69c "__aexit__", object = 0x0}
        PyId___enter__ = {next = 0x3c0628 <PyId__find_and_load.7>, string = 0x1ec46c "__enter__", object = '__enter__'}
        PyId___exit__ = {next = 0x3bfba0 <PyId___enter__.6>, string = 0x1ec478 "__exit__", object = '__exit__'}
#10 0x0008dc14 in _PyEval_EvalFrame (throwflag=0, f=Frame 0xf15951b8, for file /home/diane/numba_fails.py, line 36, in test_getitem_slice2_kind (pyfunc=<function at remote 0xf178ba90>, cfunc=<CPUDispatcher(typingctx=<Context(_registries={<Registry(functions=[<ABCMeta(__module__='numba.core.typing.cffi_utils', key='ffi.from_buffer', generic=<function at remote 0xf154c148>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf1547f78>) at remote 0xf15483d8>], attributes=[<type at remote 0xf15485b0>], globals=[]) at remote 0xf154a0e8>: <RegistryLoader(_registrations={'functions': <generator at remote 0xf15196b8>, 'attributes': <generator at remote 0xf15196f0>, 'globals': <generator at remote 0xf1519728>}) at remote 0xf1585148>, <Registry(functions=[], attributes=[], globals=[(<built-in method tanh of module object at remote 0xf154d410>, <Function(templates=(<ABCMeta(__module__='numba.core.typing.templates', key=<built-in method tanh of module object at remote 0xf154d410>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_...(truncated), tstate=0x3ea630) at ../Include/internal/pycore_ceval.h:40
No locals.
#11 function_code_fastcall (globals=<optimized out>, nargs=<optimized out>, args=<optimized out>, co=<optimized out>, tstate=0x3ea630) at ../Objects/call.c:330
        f = Frame 0xf15951b8, for file /home/diane/numba_fails.py, line 36, in test_getitem_slice2_kind (pyfunc=<function at remote 0xf178ba90>, cfunc=<CPUDispatcher(typingctx=<Context(_registries={<Registry(functions=[<ABCMeta(__module__='numba.core.typing.cffi_utils', key='ffi.from_buffer', generic=<function at remote 0xf154c148>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_abc._abc_data at remote 0xf1547f78>) at remote 0xf15483d8>], attributes=[<type at remote 0xf15485b0>], globals=[]) at remote 0xf154a0e8>: <RegistryLoader(_registrations={'functions': <generator at remote 0xf15196b8>, 'attributes': <generator at remote 0xf15196f0>, 'globals': <generator at remote 0xf1519728>}) at remote 0xf1585148>, <Registry(functions=[], attributes=[], globals=[(<built-in method tanh of module object at remote 0xf154d410>, <Function(templates=(<ABCMeta(__module__='numba.core.typing.templates', key=<built-in method tanh of module object at remote 0xf154d410>, __doc__=None, __abstractmethods__=frozenset(), _abc_impl=<_...(truncated)
        fastlocals = <optimized out>
        result = <optimized out>
        f = <optimized out>
        fastlocals = <optimized out>
        result = <optimized out>
        i = <optimized out>
#12 _PyFunction_Vectorcall (func=<optimized out>, stack=0xf7ce8f28, nargsf=<optimized out>, kwnames=<optimized out>) at ../Objects/call.c:367
        nargs = <optimized out>
        nkwargs = <optimized out>
        tstate = 0x3ea630
        co = 0x15
        globals = <optimized out>
        argdefs = <optimized out>
        kwdefs = <optimized out>
        closure = <optimized out>
        name = <optimized out>
        qualname = <optimized out>
        d = <optimized out>
        nd = <optimized out>
#13 0x0007a7ee in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<function at remote 0xf173ec88>, tstate=0x3ea630) at ../Include/cpython/abstract.h:118
        func = 0x8dad5 <_PyFunction_Vectorcall>
        res = <optimized out>
        func = <optimized out>
        res = <optimized out>
        nargs = <optimized out>
#14 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized out>, callable=<function at remote 0xf173ec88>) at ../Include/cpython/abstract.h:127
        tstate = 0x3ea630
        tstate = <optimized out>
#15 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x3ea630) at ../Python/ceval.c:5072
        func = <function at remote 0xf173ec88>
        w = <optimized out>
        nkwargs = 0
        nargs = <optimized out>
        pfunc = 0xf7ce8f24
        x = <optimized out>
        stack = <optimized out>
        pfunc = <optimized out>
        func = <optimized out>
        x = <optimized out>
        w = <optimized out>
        nkwargs = <optimized out>
        nargs = <optimized out>
        stack = <optimized out>
#16 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at ../Python/ceval.c:3518
        sp = <optimized out>
        res = <optimized out>
        __atomic_load_ptr = <optimized out>
        __atomic_load_tmp = <optimized out>
        stack_pointer = <optimized out>
        next_instr = 0xf7cc6558
        opcode = <optimized out>
        oparg = <optimized out>
        fastlocals = <optimized out>
        freevars = <optimized out>
        retval = <optimized out>
        ceval2 = <optimized out>
        eval_breaker = <optimized out>
        co = <optimized out>
        instr_ub = -1
        instr_lb = 0
        instr_prev = -1
        first_instr = <optimized out>
        names = <optimized out>
        consts = <optimized out>
        co_opcache = <optimized out>
        main_loop = <optimized out>
        fast_next_opcode = <optimized out>
        exception_unwind = <optimized out>
        __func__ = "_PyEval_EvalFrameDefault"
        opcode_targets = {0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7aaa4 <_PyEval_EvalFrameDefault+1968>, 0x7b802 <_PyEval_EvalFrameDefault+5390>, 0x7b9f2 <_PyEval_EvalFrameDefault+5886>, 0x7b3ac <_PyEval_EvalFrameDefault+4280>, 0x7d63a <_PyEval_EvalFrameDefault+13126>, 0x7d760 <_PyEval_EvalFrameDefault+13420>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x82034 <_PyEval_EvalFrameDefault+32064>, 0x809e4 <_PyEval_EvalFrameDefault+26352>, 0x7c832 <_PyEval_EvalFrameDefault+9534>, 0x7c892 <_PyEval_EvalFrameDefault+9630>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7cbfa <_PyEval_EvalFrameDefault+10502>, 0x80dfc <_PyEval_EvalFrameDefault+27400>, 0x80d90 <_PyEval_EvalFrameDefault+27292>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7bd70 <_PyEval_EvalFrameDefault+6780>, 0x7b0b6 <_PyEval_EvalFrameDefault+3522>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7bb16 <_PyEval_EvalFrameDefault+6178>, 0x7ae5a <_PyEval_EvalFrameDefault+2918>, 0x7b24e <_PyEval_EvalFrameDefault+3930>, 0x7abe2 <_PyEval_EvalFrameDefault+2286>, 0x7c1ec <_PyEval_EvalFrameDefault+7928>, 0x7ba3a <_PyEval_EvalFrameDefault+5958>, 0x7d686 <_PyEval_EvalFrameDefault+13202>, 0x7c0a8 <_PyEval_EvalFrameDefault+7604>, 0x80922 <_PyEval_EvalFrameDefault+26158> <repeats 18 times>, 0x7d00e <_PyEval_EvalFrameDefault+11546>, 0x7d092 <_PyEval_EvalFrameDefault+11678>, 0x7d4b0 <_PyEval_EvalFrameDefault+12732>, 0x7d868 <_PyEval_EvalFrameDefault+13684>, 0x816ac <_PyEval_EvalFrameDefault+29624>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x81646 <_PyEval_EvalFrameDefault+29522>, 0x7b786 <_PyEval_EvalFrameDefault+5266>, 0x7c72c <_PyEval_EvalFrameDefault+9272>, 0x7d10a <_PyEval_EvalFrameDefault+11798>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7db9a <_PyEval_EvalFrameDefault+14502>, 0x7b2d0 <_PyEval_EvalFrameDefault+4060>, 0x7c12c <_PyEval_EvalFrameDefault+7736>, 0x7ce2c <_PyEval_EvalFrameDefault+11064>, 0x7c7b0 <_PyEval_EvalFrameDefault+9404>, 0x7b8b2 <_PyEval_EvalFrameDefault+5566>, 0x7ceac <_PyEval_EvalFrameDefault+11192>, 0x7c97e <_PyEval_EvalFrameDefault+9866>, 0x81ebc <_PyEval_EvalFrameDefault+31688>, 0x7b34c <_PyEval_EvalFrameDefault+4184>, 0x7d96a <_PyEval_EvalFrameDefault+13942>, 0x7d532 <_PyEval_EvalFrameDefault+12862>, 0x7cb30 <_PyEval_EvalFrameDefault+10300>, 0x7bac4 <_PyEval_EvalFrameDefault+6096>, 0x7d5c0 <_PyEval_EvalFrameDefault+13004>, 0x80a70 <_PyEval_EvalFrameDefault+26492>, 0x7ccb6 <_PyEval_EvalFrameDefault+10690>, 0x7dab4 <_PyEval_EvalFrameDefault+14272>, 0x7db26 <_PyEval_EvalFrameDefault+14386>, 0x7d8f6 <_PyEval_EvalFrameDefault+13826>, 0x7cdb8 <_PyEval_EvalFrameDefault+10948>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7c904 <_PyEval_EvalFrameDefault+9744>, 0x7a9c0 <_PyEval_EvalFrameDefault+1740>, 0x7d1e2 <_PyEval_EvalFrameDefault+12014>, 0x7da28 <_PyEval_EvalFrameDefault+14132>, 0x7b1da <_PyEval_EvalFrameDefault+3814>, 0x7b190 <_PyEval_EvalFrameDefault+3740>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7bdf0 <_PyEval_EvalFrameDefault+6908>, 0x7b3f2 <_PyEval_EvalFrameDefault+4350>, 0x7d9ca <_PyEval_EvalFrameDefault+14038>, 0x7acfa <_PyEval_EvalFrameDefault+2566>, 0x7aae8 <_PyEval_EvalFrameDefault+2036>, 0x7d7ac <_PyEval_EvalFrameDefault+13496>, 0x7ade2 <_PyEval_EvalFrameDefault+2798>, 0x7c6c6 <_PyEval_EvalFrameDefault+9170>, 0x7d6f8 <_PyEval_EvalFrameDefault+13316>, 0x80c02 <_PyEval_EvalFrameDefault+26894>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7a594 <_PyEval_EvalFrameDefault+672>, 0x7b83e <_PyEval_EvalFrameDefault+5450>, 0x7b002 <_PyEval_EvalFrameDefault+3342>, 0x7b638 <_PyEval_EvalFrameDefault+4932>, 0x7d38a <_PyEval_EvalFrameDefault+12438>, 0x7b990 <_PyEval_EvalFrameDefault+5788>, 0x7a742 <_PyEval_EvalFrameDefault+1102>, 0x7aa2a <_PyEval_EvalFrameDefault+1846>, 0x7c26e <_PyEval_EvalFrameDefault+8058>, 0x7c5da <_PyEval_EvalFrameDefault+8934>, 0x7af6e <_PyEval_EvalFrameDefault+3194>, 0x7b934 <_PyEval_EvalFrameDefault+5696>, 0x7bbb0 <_PyEval_EvalFrameDefault+6332>, 0x7ac54 <_PyEval_EvalFrameDefault+2400>, 0x7a6de <_PyEval_EvalFrameDefault+1002>, 0x7ac96 <_PyEval_EvalFrameDefault+2466>, 0x7a62a <_PyEval_EvalFrameDefault+822>, 0x7ab66 <_PyEval_EvalFrameDefault+2162>, 0x7aeda <_PyEval_EvalFrameDefault+3046>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7beb0 <_PyEval_EvalFrameDefault+7100>, 0x7b12c <_PyEval_EvalFrameDefault+3640>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7a54a <_PyEval_EvalFrameDefault+598>, 0x7a5da <_PyEval_EvalFrameDefault+742>, 0x7cc5a <_PyEval_EvalFrameDefault+10598>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7cd38 <_PyEval_EvalFrameDefault+10820>, 0x7a7aa <_PyEval_EvalFrameDefault+1206>, 0x7b51c <_PyEval_EvalFrameDefault+4648>, 0x7b492 <_PyEval_EvalFrameDefault+4510>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7bd1e <_PyEval_EvalFrameDefault+6698>, 0x7afa8 <_PyEval_EvalFrameDefault+3252>, 0x7c19a <_PyEval_EvalFrameDefault+7846>, 0x81420 <_PyEval_EvalFrameDefault+28972>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7b694 <_PyEval_EvalFrameDefault+5024>, 0x7bf40 <_PyEval_EvalFrameDefault+7244>, 0x7bc24 <_PyEval_EvalFrameDefault+6448>, 0x7ab58 <_PyEval_EvalFrameDefault+2148>, 0x7b5d4 <_PyEval_EvalFrameDefault+4832>, 0x7cb96 <_PyEval_EvalFrameDefault+10402>, 0x7ca00 <_PyEval_EvalFrameDefault+9996>, 0x7cf86 <_PyEval_EvalFrameDefault+11410>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x82158 <_PyEval_EvalFrameDefault+32356>, 0x7c648 <_PyEval_EvalFrameDefault+9044>, 0x7c398 <_PyEval_EvalFrameDefault+8356>, 0x7ca9e <_PyEval_EvalFrameDefault+10154>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x80922 <_PyEval_EvalFrameDefault+26158>, 0x7a952 <_PyEval_EvalFrameDefault+1630>, 0x7a876 <_PyEval_EvalFrameDefault+1410>, 0x7c326 <_PyEval_EvalFrameDefault+8242>, 0x7cf1e <_PyEval_EvalFrameDefault+11306>, 0x7c044 <_PyEval_EvalFrameDefault+7504>, 0x7d17c <_PyEval_EvalFrameDefault+11912>, 0x80922 <_PyEval_EvalFrameDefault+26158> <repeats 90 times>}
        PyId_displayhook = {next = 0x0, string = 0x1fdb94 "displayhook", object = 0x0}
        PyId_send = {next = 0x0, string = 0x1eb980 "send", object = 0x0}
        PyId___build_class__ = {next = 0x3bfa74 <PyId___builtins__.lto_priv.0>, string = 0x1feba8 "__build_class__", object = '__build_class__'}
        PyId___annotations__ = {next = 0x3d16dc <PyId___complex__.2>, string = 0x1eb818 "__annotations__", object = '__annotations__'}
        PyId___aenter__ = {next = 0x0, string = 0x21e6a8 "__aenter__", object = 0x0}
        PyId___aexit__ = {next = 0x0, string = 0x21e69c "__aexit__", object = 0x0}
        PyId___enter__ = {next = 0x3c0628 <PyId__find_and_load.7>, string = 0x1ec46c "__enter__", object = '__enter__'}
        PyId___exit__ = {next = 0x3bfba0 <PyId___enter__.6>, string = 0x1ec478 "__exit__", object = '__exit__'}
#17 0x00079320 in _PyEval_EvalFrame (throwflag=0, f=Frame 0xf7ce8df0, for file /home/diane/numba_fails.py, line 73, in <module> (), tstate=0x3ea630) at ../Include/internal/pycore_ceval.h:40
No locals.
#18 _PyEval_EvalCode (tstate=<optimized out>, _co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, args@entry=0x0, argcount=<optimized out>, argcount@entry=0, kwnames=<optimized out>, kwnames@entry=0x0, kwargs=<optimized out>, kwargs@entry=0x0, kwcount=<optimized out>, kwcount@entry=0, kwstep=<optimized out>, kwstep@entry=2, defs=<optimized out>, defs@entry=0x0, defcount=<optimized out>, defcount@entry=0, kwdefs=<optimized out>, kwdefs@entry=0x0, closure=<optimized out>, closure@entry=0x0, name=<optimized out>, name@entry=0x0, qualname=<optimized out>, qualname@entry=0x0) at ../Python/ceval.c:4327
        co = <optimized out>
        f = <optimized out>
        retval = 0x0
        fastlocals = <optimized out>
        freevars = <optimized out>
        x = <optimized out>
        u = <optimized out>
        total_args = <optimized out>
        i = <optimized out>
        j = <optimized out>
        n = <optimized out>
        kwdict = <optimized out>
#19 0x00079164 in _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0, kwargs=kwargs@entry=0x0, kwcount=kwcount@entry=0, kwstep=kwstep@entry=2, defs=defs@entry=0x0, defcount=defcount@entry=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0, name=name@entry=0x0, qualname=qualname@entry=0x0) at ../Python/ceval.c:4359
        tstate = <optimized out>
#20 0x0007911a in PyEval_EvalCodeEx (closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwcount=0, kws=0x0, argcount=0, args=0x0, locals=<optimized out>, globals=<optimized out>, _co=<optimized out>) at ../Python/ceval.c:4375
No locals.
#21 PyEval_EvalCode (co=<optimized out>, globals=<optimized out>, locals=<optimized out>) at ../Python/ceval.c:826
No locals.
#22 0x0016c8a0 in run_eval_code_obj (tstate=0x3ea630, co=0xf7c4b8a8, globals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/diane/numba_fails.py') at remote 0xf7ca4c40>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0xf7d435f0>, '__file__': '/home/diane/numba_fails.py', '__cached__': None, 'njit': <function at remote 0xf17e01d8>, 'UNICODE_EXAMPLES': ['', 'ascii', '12345', '1234567890', '\xa1Y t\xfa qui\xe9n te crees?', '\U0001f40d\u26a1', '\u5927\u5904\u7740\u773c\uff0c\u5c0f\u5904\u7740\u624b\u3002'], 'getitem_usecase': <function at remote 0xf7c6e268>, 'getitem_check_kind_usecase': <function at remote 0xf178ba90>, 'test_getitem_slice2_kind': <function at remote 0xf173ec88>, 'test_slice3': <function at remote 0xf1546928>, 'test_getitem_slice3_kind': <function at remote 0xf1546a48>}, locals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/diane/numba_fails.py') at remote 0xf7ca4c40>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0xf7d435f0>, '__file__': '/home/diane/numba_fails.py', '__cached__': None, 'njit': <function at remote 0xf17e01d8>, 'UNICODE_EXAMPLES': ['', 'ascii', '12345', '1234567890', '\xa1Y t\xfa qui\xe9n te crees?', '\U0001f40d\u26a1', '\u5927\u5904\u7740\u773c\uff0c\u5c0f\u5904\u7740\u624b\u3002'], 'getitem_usecase': <function at remote 0xf7c6e268>, 'getitem_check_kind_usecase': <function at remote 0xf178ba90>, 'test_getitem_slice2_kind': <function at remote 0xf173ec88>, 'test_slice3': <function at remote 0xf1546928>, 'test_getitem_slice3_kind': <function at remote 0xf1546a48>}) at ../Python/pythonrun.c:1218
        v = <optimized out>
#23 0x00169f02 in run_mod (mod=<optimized out>, filename=<optimized out>, globals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/diane/numba_fails.py') at remote 0xf7ca4c40>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0xf7d435f0>, '__file__': '/home/diane/numba_fails.py', '__cached__': None, 'njit': <function at remote 0xf17e01d8>, 'UNICODE_EXAMPLES': ['', 'ascii', '12345', '1234567890', '\xa1Y t\xfa qui\xe9n te crees?', '\U0001f40d\u26a1', '\u5927\u5904\u7740\u773c\uff0c\u5c0f\u5904\u7740\u624b\u3002'], 'getitem_usecase': <function at remote 0xf7c6e268>, 'getitem_check_kind_usecase': <function at remote 0xf178ba90>, 'test_getitem_slice2_kind': <function at remote 0xf173ec88>, 'test_slice3': <function at remote 0xf1546928>, 'test_getitem_slice3_kind': <function at remote 0xf1546a48>}, locals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/diane/numba_fails.py') at remote 0xf7ca4c40>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0xf7d435f0>, '__file__': '/home/diane/numba_fails.py', '__cached__': None, 'njit': <function at remote 0xf17e01d8>, 'UNICODE_EXAMPLES': ['', 'ascii', '12345', '1234567890', '\xa1Y t\xfa qui\xe9n te crees?', '\U0001f40d\u26a1', '\u5927\u5904\u7740\u773c\uff0c\u5c0f\u5904\u7740\u624b\u3002'], 'getitem_usecase': <function at remote 0xf7c6e268>, 'getitem_check_kind_usecase': <function at remote 0xf178ba90>, 'test_getitem_slice2_kind': <function at remote 0xf173ec88>, 'test_slice3': <function at remote 0xf1546928>, 'test_getitem_slice3_kind': <function at remote 0xf1546a48>}, flags=0xfffef530, arena=0xf7d30bd0) at ../Python/pythonrun.c:1239
        tstate = 0x3ea630
        co = 0xf7c4b8a8
        v = <optimized out>
#24 0x0016c83c in pyrun_file (fp=0x3e8288, filename='/home/diane/numba_fails.py', start=257, globals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/diane/numba_fails.py') at remote 0xf7ca4c40>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0xf7d435f0>, '__file__': '/home/diane/numba_fails.py', '__cached__': None, 'njit': <function at remote 0xf17e01d8>, 'UNICODE_EXAMPLES': ['', 'ascii', '12345', '1234567890', '\xa1Y t\xfa qui\xe9n te crees?', '\U0001f40d\u26a1', '\u5927\u5904\u7740\u773c\uff0c\u5c0f\u5904\u7740\u624b\u3002'], 'getitem_usecase': <function at remote 0xf7c6e268>, 'getitem_check_kind_usecase': <function at remote 0xf178ba90>, 'test_getitem_slice2_kind': <function at remote 0xf173ec88>, 'test_slice3': <function at remote 0xf1546928>, 'test_getitem_slice3_kind': <function at remote 0xf1546a48>}, locals={'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/diane/numba_fails.py') at remote 0xf7ca4c40>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0xf7d435f0>, '__file__': '/home/diane/numba_fails.py', '__cached__': None, 'njit': <function at remote 0xf17e01d8>, 'UNICODE_EXAMPLES': ['', 'ascii', '12345', '1234567890', '\xa1Y t\xfa qui\xe9n te crees?', '\U0001f40d\u26a1', '\u5927\u5904\u7740\u773c\uff0c\u5c0f\u5904\u7740\u624b\u3002'], 'getitem_usecase': <function at remote 0xf7c6e268>, 'getitem_check_kind_usecase': <function at remote 0xf178ba90>, 'test_getitem_slice2_kind': <function at remote 0xf173ec88>, 'test_slice3': <function at remote 0xf1546928>, 'test_getitem_slice3_kind': <function at remote 0xf1546a48>}, closeit=1, flags=0xfffef530) at ../Python/pythonrun.c:1137
        arena = 0xf7d30bd0
        mod = 0x4461a0
        use_peg = <optimized out>
        ret = <optimized out>
#25 0x0016c408 in pyrun_simple_file (flags=0xfffef530, closeit=1, filename='/home/diane/numba_fails.py', fp=0x3e8288) at ../Python/pythonrun.c:449
        m = <module at remote 0xf7cbe4b0>
        set_file_name = 1
        ret = -1
        done = <optimized out>
        d = {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <SourceFileLoader(name='__main__', path='/home/diane/numba_fails.py') at remote 0xf7ca4c40>, '__spec__': None, '__annotations__': {}, '__builtins__': <module at remote 0xf7d435f0>, '__file__': '/home/diane/numba_fails.py', '__cached__': None, 'njit': <function at remote 0xf17e01d8>, 'UNICODE_EXAMPLES': ['', 'ascii', '12345', '1234567890', '\xa1Y t\xfa qui\xe9n te crees?', '\U0001f40d\u26a1', '\u5927\u5904\u7740\u773c\uff0c\u5c0f\u5904\u7740\u624b\u3002'], 'getitem_usecase': <function at remote 0xf7c6e268>, 'getitem_check_kind_usecase': <function at remote 0xf178ba90>, 'test_getitem_slice2_kind': <function at remote 0xf173ec88>, 'test_slice3': <function at remote 0xf1546928>, 'test_getitem_slice3_kind': <function at remote 0xf1546a48>}
        v = <optimized out>
        pyc = <optimized out>
        m = <optimized out>
        d = <optimized out>
        v = <optimized out>
        set_file_name = <optimized out>
        ret = <optimized out>
        done = <optimized out>
        pyc = <optimized out>
        pyc_fp = <optimized out>
        _py_tmp = <optimized out>
#26 PyRun_SimpleFileExFlags (fp=0x3e8288, filename=<optimized out>, closeit=1, flags=0xfffef530) at ../Python/pythonrun.c:482
        filename_obj = '/home/diane/numba_fails.py'
        res = <optimized out>
#27 0x001641ee in pymain_run_file (cf=0xfffef530, config=0x3e9a50) at ../Modules/main.c:373
        fp = 0x3e8288
        unicode = '/home/diane/numba_fails.py'
        bytes = <optimized out>
        run = <optimized out>
        filename = <optimized out>
        sb = {st_dev = 64769, __pad1 = 0, __st_ino = 920911, st_mode = 33188, st_nlink = 1, st_uid = 3358, st_gid = 3358, st_rdev = 0, __pad2 = 0, st_size = 2324, st_blksize = 4096, st_blocks = 8, st_atim = {tv_sec = 1612293417, tv_nsec = 774371352}, st_mtim = {tv_sec = 1611339585, tv_nsec = 686072359}, st_ctim = {tv_sec = 1611339585, tv_nsec = 686072359}, st_ino = 920911}
        filename_str = <optimized out>
        filename = <optimized out>
        fp = <optimized out>
        sb = {st_dev = <optimized out>, __pad1 = <optimized out>, __st_ino = <optimized out>, st_mode = <optimized out>, st_nlink = <optimized out>, st_uid = <optimized out>, st_gid = <optimized out>, st_rdev = <optimized out>, __pad2 = <optimized out>, st_size = <optimized out>, st_blksize = <optimized out>, st_blocks = <optimized out>, st_atim = {tv_sec = <optimized out>, tv_nsec = <optimized out>}, st_mtim = {tv_sec = <optimized out>, tv_nsec = <optimized out>}, st_ctim = {tv_sec = <optimized out>, tv_nsec = <optimized out>}, st_ino = <optimized out>}
        unicode = <optimized out>
        bytes = <optimized out>
        filename_str = <optimized out>
        run = <optimized out>
        cfilename_buffer = <optimized out>
        cfilename = <optimized out>
        err = <optimized out>
        ch = <optimized out>
#28 pymain_run_python (exitcode=0xfffef528) at ../Modules/main.c:598
        interp = 0x3e9838
        config = 0x3e9a50
        main_importer_path = <optimized out>
        cf = {cf_flags = 0, cf_feature_version = 9}
        interp = <optimized out>
        config = <optimized out>
        main_importer_path = <optimized out>
        error = <optimized out>
        cf = {cf_flags = <optimized out>, cf_feature_version = <optimized out>}
        done = <optimized out>
        path0 = <optimized out>
        res = <optimized out>
#29 Py_RunMain () at ../Modules/main.c:677
        exitcode = 0
#30 0x0014a658 in Py_BytesMain (argc=2, argv=<optimized out>) at ../Modules/main.c:731
        args = {argc = 2, use_bytes_argv = 1, bytes_argv = 0xfffef734, wchar_argv = 0x0}
#31 0xf7de0a20 in __libc_start_main () from /lib/arm-linux-gnueabihf/libc.so.6
No symbol table info available.
#32 0x0014a598 in _start ()
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) 
stuartarchibald commented 3 years ago

Thanks for doing that. I guess the next thing I'd look for is to try and isolate it down to just one input with no loops to see if it's something corrupting state from a previous iteration or it is something that happens due to that specific input.

Is there a way to get numba to build a version of the libraries it's generating with debug symbols?

You can get DWARF info emitted into the generated ELF via setting the environment variable NUMBA_DEBUGINFO=1 (docs).

Looks like numba::cpython::hashing::_siphash24$2422 is being run when the SIGBUS arrives, this is here: https://github.com/numba/numba/blob/aefde97722c46b1fa0a2bee5144548623a67debd/numba/cpython/hashing.py#L556-L635

if the instruction stream is still reasonable at the point of SIGBUS that might be something to grab out of gdb too, it could point to somewhere identifiable in there!?

Another thing it could be is an optimisation effect in LLVM, setting environment variable NUMBA_OPT=X where X is one of 0, 1, 2, 3 corresponds roughly to -OX in gcc. If it doesn't fail on e.g. NUMBA_OPT=X but does on NUMBA_OPT=X+1 this could be a sign that there's some transform going wrong somewhere or some assumption being made that shouldn't be.

Thanks again for your help with this.

github-actions[bot] commented 3 years ago

This issue is marked as stale as it has had no activity in the past 30 days. Please close this issue if no further response or action is needed. Otherwise, please respond with any updates and confirm that this issue still needs to be addressed.

esc commented 3 years ago

@stuartarchibald OK to remove the stale and needtriage labels?