Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

python segfault during test #650

Closed
0-wiz-0 opened this issue Jun 30, 2017 · 14 comments
Closed

python segfault during test #650

0-wiz-0 opened this issue Jun 30, 2017 · 14 comments
Milestone

Comments

@0-wiz-0
Copy link

0-wiz-0 commented Jun 30, 2017

With 17.0.0, I see a segfault when running py.test. I don't know enough about py.test to identify the failing test, please advise.
Here's the output:

cd /scratch/security/py-OpenSSL/work/pyOpenSSL-17.0.0 && PYTHONPATH=src py.test-3.6
============================================================================ test session starts =============================================================================
platform netbsd8 -- Python 3.6.1, pytest-3.1.2, py-1.4.33, pluggy-0.4.0
OpenSSL: b'OpenSSL 1.0.2k  26 Jan 2017'
cryptography: 1.9
rootdir: /scratch/security/py-OpenSSL/work/pyOpenSSL-17.0.0, inifile: setup.cfg
collected 493 items 

tests/test_crypto.py ......................................................................................F........................................................[1]   Segmentation fault (core dumped) PYTHONPATH=src p...
*** Error code 139

Here's the backtrace:

Core was generated by `python3.6'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x000073e86b9a9fc0 in ?? ()
(gdb) bt
#0  0x000073e86b9a9fc0 in ?? ()
#1  0x000073e864f0e4f7 in PEM_do_header (cipher=cipher@entry=0x7f7fff4545c0,
    data=0x73e8653a6000 "Hs\241\243\236\226\304\071\023\322\033u\321D\336)\315\005\346�\034�\206\264\326L\305\002a\023\303C", plen=plen@entry=0x7f7fff4545b0,
    callback=callback@entry=0x73e86b9a9fc0, u=u@entry=0x0) at /disk/6/archive/foreign/src/crypto/external/bsd/openssl/dist/crypto/pem/pem_lib.c:461
#2  0x000073e864f0fdcc in PEM_bytes_read_bio (pdata=pdata@entry=0x7f7fff454640, plen=plen@entry=0x7f7fff454648, pnm=pnm@entry=0x7f7fff454630, name=<optimized out>,
    name@entry=0x73e864fa51c8 "ANY PRIVATE KEY", bp=0x73e86453a580, cb=cb@entry=0x73e86b9a9fc0, u=u@entry=0x0)
    at /disk/6/archive/foreign/src/crypto/external/bsd/openssl/dist/crypto/pem/pem_lib.c:304
#3  0x000073e864ed66ef in PEM_read_bio_PrivateKey (bp=<optimized out>, x=0x0, cb=cb@entry=0x73e86b9a9fc0, u=0x0)
    at /disk/6/archive/foreign/src/crypto/external/bsd/openssl/dist/crypto/pem/pem_pkey.c:88
#4  0x000073e8622713df in _cffi_f_PEM_read_bio_PrivateKey (self=<optimized out>, args=<optimized out>) at build/temp.netbsd-8.99.1-amd64-3.6/_openssl.c:42386
#5  0x000073e86b4b43bc in _PyCFunction_FastCallDict (func_obj=func_obj@entry=0x73e866f235c8, args=0x73e8639015d0, nargs=<optimized out>, kwargs=kwargs@entry=0x0)
    at Objects/methodobject.c:234
#6  0x000073e86b4b46fe in _PyCFunction_FastCallKeywords (func=func@entry=0x73e866f235c8, stack=<optimized out>, nargs=nargs@entry=4, kwnames=kwnames@entry=0x0)
    at Objects/methodobject.c:295
#7  0x000073e86b52c0f0 in call_function (pp_stack=pp_stack@entry=0x7f7fff454c90, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4798
#8  0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e863901418, throwflag=<optimized out>) at Python/ceval.c:3284
#9  0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e866ffdbc0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8649f61b0, argcount=3,
    kwnames=0x0, kwargs=kwargs@entry=0x73e8649f61c8, kwcount=0, kwstep=kwstep@entry=1, defs=0x73e866b093f0, defcount=1, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0,
    name=0x73e866b08c40, qualname=qualname@entry=0x73e866b08c40) at Python/ceval.c:4128
#10 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e8649f61b0, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#11 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff454fe0, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#12 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649f6018, throwflag=<optimized out>) at Python/ceval.c:3284
#13 0x000073e86b52b1cc in _PyFunction_FastCall (co=co@entry=0x73e866bba350, args=<optimized out>, args@entry=0x7f7fff455210, nargs=nargs@entry=1,
    globals=globals@entry=0x73e866b47b28) at Python/ceval.c:4880
#14 0x000073e86b53453f in _PyFunction_FastCallDict (func=func@entry=0x73e865b2c678, args=args@entry=0x7f7fff455210, nargs=1, kwargs=kwargs@entry=0x73e86574e9e8)
    at Python/ceval.c:4982
#15 0x000073e86b466bf8 in _PyObject_FastCallDict (func=func@entry=0x73e865b2c678, args=args@entry=0x7f7fff455210, nargs=nargs@entry=1, kwargs=kwargs@entry=0x73e86574e9e8)
    at Objects/abstract.c:2295
#16 0x000073e86b466dd2 in _PyObject_Call_Prepend (func=0x73e865b2c678, obj=<optimized out>, args=0x73e86b32f068, kwargs=0x73e86574e9e8) at Objects/abstract.c:2358
#17 0x000073e86b466983 in PyObject_Call (func=0x73e86577f958, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#18 0x000073e86b52fbf7 in do_call_core (kwdict=0x73e86574e9e8, callargs=0x73e86b32f068, func=0x73e86577f958) at Python/ceval.c:5067
#19 _PyEval_EvalFrameDefault (f=0x73e863902018, throwflag=<optimized out>) at Python/ceval.c:3366
#20 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867b94110, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8639e9430, argcount=1,
    kwnames=kwnames@entry=0x0, kwargs=kwargs@entry=0x8, 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:4128
#21 0x000073e86b52c22b in PyEval_EvalCodeEx (_co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8639e9430,
    argcount=<optimized out>, kws=kws@entry=0x0, kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, kwdefs=0x0, closure=0x0) at Python/ceval.c:4149
#22 0x000073e86b493ea1 in function_call (func=0x73e867bf4368, arg=0x73e8639e9418, kw=0x0) at Objects/funcobject.c:604
#23 0x000073e86b466983 in PyObject_Call (func=0x73e867bf4368, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#24 0x000073e86b52fbf7 in do_call_core (kwdict=0x0, callargs=0x73e8639e9418, func=0x73e867bf4368) at Python/ceval.c:5067
#25 _PyEval_EvalFrameDefault (f=0x73e8649f4418, throwflag=<optimized out>) at Python/ceval.c:3366
#26 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f695d0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8639101a0, argcount=1,
    kwnames=0x0, kwargs=kwargs@entry=0x73e8639101a8, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0,
    name=0x73e867f61340, qualname=qualname@entry=0x73e867f84570) at Python/ceval.c:4128
#27 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e8639101a0, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#28 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff455aa0, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#29 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e863910018, throwflag=<optimized out>) at Python/ceval.c:3284
#30 0x000073e86b52b1cc in _PyFunction_FastCall (co=co@entry=0x73e867f6eb30, args=<optimized out>, args@entry=0x7f7fff455cd0, nargs=nargs@entry=2,
    globals=globals@entry=0x73e867f66d48) at Python/ceval.c:4880
#31 0x000073e86b53453f in _PyFunction_FastCallDict (func=func@entry=0x73e867f6b058, args=args@entry=0x7f7fff455cd0, nargs=2, kwargs=kwargs@entry=0x0) at Python/ceval.c:4982
#32 0x000073e86b466bf8 in _PyObject_FastCallDict (func=func@entry=0x73e867f6b058, args=args@entry=0x7f7fff455cd0, nargs=nargs@entry=2, kwargs=kwargs@entry=0x0)
    at Objects/abstract.c:2295
#33 0x000073e86b466dd2 in _PyObject_Call_Prepend (func=0x73e867f6b058, obj=<optimized out>, args=0x73e8639e9a58, kwargs=0x0) at Objects/abstract.c:2358
#34 0x000073e86b466983 in PyObject_Call (func=0x73e863de8d58, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#35 0x000073e86b4cd6b2 in slot_tp_init (self=<optimized out>, args=0x73e8639e9a58, kwds=0x0) at Objects/typeobject.c:6380
#36 0x000073e86b4c99f7 in type_call (type=<optimized out>, type@entry=0x73e8687c7018, args=args@entry=0x73e8639e9a58, kwds=kwds@entry=0x0) at Objects/typeobject.c:915
#37 0x000073e86b466b17 in _PyObject_FastCallDict (func=func@entry=0x73e8687c7018, args=<optimized out>, nargs=<optimized out>, kwargs=kwargs@entry=0x0)
    at Objects/abstract.c:2316
#38 0x000073e86b467159 in _PyObject_FastCallKeywords (func=func@entry=0x73e8687c7018, stack=<optimized out>, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0)
    at Objects/abstract.c:2480
#39 0x000073e86b52bf50 in call_function (pp_stack=pp_stack@entry=0x7f7fff455fa0, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4822
#40 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649f2018, throwflag=<optimized out>) at Python/ceval.c:3284
#41 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=2, globals=<optimized out>) at Python/ceval.c:4880
#42 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#43 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff4561a0, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#44 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649f1818, throwflag=<optimized out>) at Python/ceval.c:3284
#45 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f695d0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8649ed9a8, argcount=1,
    kwnames=0x0, kwargs=kwargs@entry=0x73e8649ed9b0, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0,
    name=0x73e867f61340, qualname=qualname@entry=0x73e867f84570) at Python/ceval.c:4128
#46 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e8649ed9a8, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#47 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff4564f0, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#48 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649ed818, throwflag=<optimized out>) at Python/ceval.c:3284
#49 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f6f040, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8649cd9b8, argcount=3,
    kwnames=0x0, kwargs=kwargs@entry=0x73e8649cd9d0, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0,
    name=0x73e86abed7c0, qualname=qualname@entry=0x73e867f59880) at Python/ceval.c:4128
#50 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e8649cd9b8, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#51 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff456840, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#52 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649cd818, throwflag=<optimized out>) at Python/ceval.c:3284
#53 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=4, globals=<optimized out>) at Python/ceval.c:4880
#54 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#55 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff456a40, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#56 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e863902418, throwflag=<optimized out>) at Python/ceval.c:3284
#57 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=_co@entry=0x73e867f69ed0, globals=globals@entry=0x73e867f66d48, locals=locals@entry=0x0,
    args=args@entry=0x7f7fff456d20, argcount=argcount@entry=1, kwnames=kwnames@entry=0x73e864585730, kwargs=kwargs@entry=0x73e864585738, kwcount=2, kwcount@entry=1,
    kwstep=kwstep@entry=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x73e86b306240, qualname=0x73e867f84c50) at Python/ceval.c:4128
#58 0x000073e86b534361 in _PyFunction_FastCallDict (func=func@entry=0x73e867f778b8, args=args@entry=0x7f7fff456d20, nargs=1, kwargs=kwargs@entry=0x73e86574e8f8)
    at Python/ceval.c:5031
#59 0x000073e86b466bf8 in _PyObject_FastCallDict (func=func@entry=0x73e867f778b8, args=args@entry=0x7f7fff456d20, nargs=nargs@entry=1, kwargs=kwargs@entry=0x73e86574e8f8)
    at Objects/abstract.c:2295
#60 0x000073e86b466dd2 in _PyObject_Call_Prepend (func=0x73e867f778b8, obj=<optimized out>, args=0x73e86b32f068, kwargs=0x73e86574e8f8) at Objects/abstract.c:2358
#61 0x000073e86b466983 in PyObject_Call (func=0x73e86577fd18, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#62 0x000073e86b4cd9b9 in slot_tp_call (self=self@entry=0x73e867bd2298, args=args@entry=0x73e86b32f068, kwds=kwds@entry=0x73e86574e8f8) at Objects/typeobject.c:6167
#63 0x000073e86b466b17 in _PyObject_FastCallDict (func=func@entry=0x73e867bd2298, args=args@entry=0x73e865bddc40, nargs=nargs@entry=0, kwargs=kwargs@entry=0x73e86574e8f8)
    at Objects/abstract.c:2316
#64 0x000073e86b4670f9 in _PyObject_FastCallKeywords (func=func@entry=0x73e867bd2298, stack=0x73e865bddc40, nargs=nargs@entry=0, kwnames=kwnames@entry=0x73e867bf6618)
    at Objects/abstract.c:2480
#65 0x000073e86b52bf50 in call_function (pp_stack=pp_stack@entry=0x7f7fff457008, oparg=<optimized out>, kwnames=kwnames@entry=0x73e867bf6618) at Python/ceval.c:4822
#66 0x000073e86b52d6a1 in _PyEval_EvalFrameDefault (f=0x73e865bddab8, throwflag=<optimized out>) at Python/ceval.c:3300
#67 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=1, globals=<optimized out>) at Python/ceval.c:4880
#68 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#69 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff457200, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#70 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649eb418, throwflag=<optimized out>) at Python/ceval.c:3284
#71 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867fcc5e0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e864dfb530, argcount=1,
    kwnames=kwnames@entry=0x0, kwargs=kwargs@entry=0x8, 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:4128
#72 0x000073e86b52c22b in PyEval_EvalCodeEx (_co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e864dfb530,
    argcount=<optimized out>, kws=kws@entry=0x0, kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, kwdefs=0x0, closure=0x0) at Python/ceval.c:4149
#73 0x000073e86b493ea1 in function_call (func=0x73e86a7c7288, arg=0x73e864dfb518, kw=0x0) at Objects/funcobject.c:604
#74 0x000073e86b466983 in PyObject_Call (func=0x73e86a7c7288, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#75 0x000073e86b52fbf7 in do_call_core (kwdict=0x0, callargs=0x73e864dfb518, func=0x73e86a7c7288) at Python/ceval.c:5067
#76 _PyEval_EvalFrameDefault (f=0x73e863910418, throwflag=<optimized out>) at Python/ceval.c:3366
#77 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f695d0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8649f41a0, argcount=1,
    kwnames=0x0, kwargs=kwargs@entry=0x73e8649f41a8, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0,
    name=0x73e867f61340, qualname=qualname@entry=0x73e867f84570) at Python/ceval.c:4128
#78 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e8649f41a0, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#79 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff457900, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#80 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649f4018, throwflag=<optimized out>) at Python/ceval.c:3284
#81 0x000073e86b52b1cc in _PyFunction_FastCall (co=co@entry=0x73e867f6eb30, args=<optimized out>, args@entry=0x7f7fff457b30, nargs=nargs@entry=2,
    globals=globals@entry=0x73e867f66d48) at Python/ceval.c:4880
#82 0x000073e86b53453f in _PyFunction_FastCallDict (func=func@entry=0x73e867f6b058, args=args@entry=0x7f7fff457b30, nargs=2, kwargs=kwargs@entry=0x0) at Python/ceval.c:4982
#83 0x000073e86b466bf8 in _PyObject_FastCallDict (func=func@entry=0x73e867f6b058, args=args@entry=0x7f7fff457b30, nargs=nargs@entry=2, kwargs=kwargs@entry=0x0)
    at Objects/abstract.c:2295
#84 0x000073e86b466dd2 in _PyObject_Call_Prepend (func=0x73e867f6b058, obj=<optimized out>, args=0x73e8649b0498, kwargs=0x0) at Objects/abstract.c:2358
#85 0x000073e86b466983 in PyObject_Call (func=0x73e864d23518, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#86 0x000073e86b4cd6b2 in slot_tp_init (self=<optimized out>, args=0x73e8649b0498, kwds=0x0) at Objects/typeobject.c:6380
#87 0x000073e86b4c99f7 in type_call (type=<optimized out>, type@entry=0x73e8687c7018, args=args@entry=0x73e8649b0498, kwds=kwds@entry=0x0) at Objects/typeobject.c:915
#88 0x000073e86b466b17 in _PyObject_FastCallDict (func=func@entry=0x73e8687c7018, args=<optimized out>, nargs=<optimized out>, kwargs=kwargs@entry=0x0)
    at Objects/abstract.c:2316
#89 0x000073e86b467159 in _PyObject_FastCallKeywords (func=func@entry=0x73e8687c7018, stack=<optimized out>, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0)
    at Objects/abstract.c:2480
#90 0x000073e86b52bf50 in call_function (pp_stack=pp_stack@entry=0x7f7fff457e00, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4822
#91 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649f7018, throwflag=<optimized out>) at Python/ceval.c:3284
#92 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=2, globals=<optimized out>) at Python/ceval.c:4880
#93 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#94 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff458000, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#95 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e863985018, throwflag=<optimized out>) at Python/ceval.c:3284
#96 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f695d0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e863902fa8, argcount=1,
    kwnames=0x0, kwargs=kwargs@entry=0x73e863902fb0, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0,
    name=0x73e867f61340, qualname=qualname@entry=0x73e867f84570) at Python/ceval.c:4128
#97 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e863902fa8, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#98 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff458350, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#99 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e863902e18, throwflag=<optimized out>) at Python/ceval.c:3284
#100 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f6f040, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8639109b8, argcount=3,
    kwnames=0x0, kwargs=kwargs@entry=0x73e8639109d0, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0,
    name=0x73e86abed7c0, qualname=qualname@entry=0x73e867f59880) at Python/ceval.c:4128
#101 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e8639109b8, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#102 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff4586a0, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#103 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e863910818, throwflag=<optimized out>) at Python/ceval.c:3284
#104 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=4, globals=<optimized out>) at Python/ceval.c:4880
#105 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#106 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff4588a0, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#107 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649d1c18, throwflag=<optimized out>) at Python/ceval.c:3284
#108 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=_co@entry=0x73e867f69ed0, globals=globals@entry=0x73e867f66d48, locals=locals@entry=0x0,
    args=args@entry=0x7f7fff458b80, argcount=argcount@entry=1, kwnames=kwnames@entry=0x73e86457c830, kwargs=kwargs@entry=0x73e86457c838, kwcount=2, kwcount@entry=1,
    kwstep=kwstep@entry=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x73e86b306240, qualname=0x73e867f84c50) at Python/ceval.c:4128
#109 0x000073e86b534361 in _PyFunction_FastCallDict (func=func@entry=0x73e867f778b8, args=args@entry=0x7f7fff458b80, nargs=1, kwargs=kwargs@entry=0x73e86574e308)
    at Python/ceval.c:5031
#110 0x000073e86b466bf8 in _PyObject_FastCallDict (func=func@entry=0x73e867f778b8, args=args@entry=0x7f7fff458b80, nargs=nargs@entry=1, kwargs=kwargs@entry=0x73e86574e308)
    at Objects/abstract.c:2295
#111 0x000073e86b466dd2 in _PyObject_Call_Prepend (func=0x73e867f778b8, obj=<optimized out>, args=0x73e86b32f068, kwargs=0x73e86574e308) at Objects/abstract.c:2358
#112 0x000073e86b466983 in PyObject_Call (func=0x73e865777f58, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#113 0x000073e86b4cd9b9 in slot_tp_call (self=<optimized out>, args=0x73e86b32f068, kwds=0x73e86574e308) at Objects/typeobject.c:6167
#114 0x000073e86b466983 in PyObject_Call (func=0x73e867bd2658, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#115 0x000073e86b52fbf7 in do_call_core (kwdict=0x73e86574e308, callargs=0x73e86b32f068, func=0x73e867bd2658) at Python/ceval.c:5067
#116 _PyEval_EvalFrameDefault (f=0x73e863987c18, throwflag=<optimized out>) at Python/ceval.c:3366
#117 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867fcc8b0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e86390b5b0, argcount=0,
    kwnames=0x0, kwargs=kwargs@entry=0x73e86390b5b0, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x73e864578ad8,
    name=0x73e86abed7c0, qualname=qualname@entry=0x73e867fddbe0) at Python/ceval.c:4128
#118 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e86390b5b0, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#119 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff4590f0, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#120 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e86390b418, throwflag=<optimized out>) at Python/ceval.c:3284
#121 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=_co@entry=0x73e867fcc9d0, globals=globals@entry=0x73e867fc8f88, locals=locals@entry=0x0, 
    args=args@entry=0x7f7fff4593d0, argcount=argcount@entry=2, kwnames=kwnames@entry=0x73e86457d0f0, kwargs=kwargs@entry=0x73e86457d0f8, kwcount=2, kwcount@entry=1, 
    kwstep=kwstep@entry=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x73e86b306580, qualname=0x73e867fc9b50) at Python/ceval.c:4128
#122 0x000073e86b534361 in _PyFunction_FastCallDict (func=func@entry=0x73e86a7c7678, args=args@entry=0x7f7fff4593d0, nargs=2, kwargs=kwargs@entry=0x73e86574ad48)
    at Python/ceval.c:5031
#123 0x000073e86b466bf8 in _PyObject_FastCallDict (func=func@entry=0x73e86a7c7678, args=args@entry=0x7f7fff4593d0, nargs=nargs@entry=2, kwargs=kwargs@entry=0x73e86574ad48)
    at Objects/abstract.c:2295
#124 0x000073e86b466dd2 in _PyObject_Call_Prepend (func=0x73e86a7c7678, obj=<optimized out>, args=0x73e863de4d18, kwargs=0x73e86574ad48) at Objects/abstract.c:2358
#125 0x000073e86b466983 in PyObject_Call (func=0x73e867392218, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#126 0x000073e86b4cd6b2 in slot_tp_init (self=<optimized out>, args=0x73e863de4d18, kwds=0x73e86574ad48) at Objects/typeobject.c:6380
#127 0x000073e86b4c99f7 in type_call (type=<optimized out>, type@entry=0x73e867ff3018, args=args@entry=0x73e863de4d18, kwds=kwds@entry=0x73e86574ad48)
    at Objects/typeobject.c:915
#128 0x000073e86b466b17 in _PyObject_FastCallDict (func=func@entry=0x73e867ff3018, args=args@entry=0x73e8649a49d0, nargs=nargs@entry=1, kwargs=kwargs@entry=0x73e86574ad48)
    at Objects/abstract.c:2316
#129 0x000073e86b4670f9 in _PyObject_FastCallKeywords (func=func@entry=0x73e867ff3018, stack=0x73e8649a49d0, nargs=nargs@entry=1, kwnames=kwnames@entry=0x73e867fde198)
    at Objects/abstract.c:2480
#130 0x000073e86b52bf50 in call_function (pp_stack=pp_stack@entry=0x7f7fff4596f8, oparg=<optimized out>, kwnames=kwnames@entry=0x73e867fde198) at Python/ceval.c:4822
#131 0x000073e86b52d6a1 in _PyEval_EvalFrameDefault (f=0x73e8649a4818, throwflag=<optimized out>) at Python/ceval.c:3300
#132 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867fcc940, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e864d2d3b0, argcount=2, 
    kwnames=kwnames@entry=0x73e86b32f080, kwargs=kwargs@entry=0x73e86b32f088, 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:4128
#133 0x000073e86b52c22b in PyEval_EvalCodeEx (_co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e864d2d3b0, 
    argcount=<optimized out>, kws=kws@entry=0x73e86b32f080, kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, kwdefs=0x0, closure=0x0)
    at Python/ceval.c:4149
#134 0x000073e86b493f91 in function_call (func=0x73e86a7c7558, arg=0x73e864d2d398, kw=0x73e8657918a8) at Objects/funcobject.c:604
#135 0x000073e86b466983 in PyObject_Call (func=0x73e86a7c7558, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#136 0x000073e86b52fbf7 in do_call_core (kwdict=0x73e8657918a8, callargs=0x73e864d2d398, func=0x73e86a7c7558) at Python/ceval.c:5067
#137 _PyEval_EvalFrameDefault (f=0x73e86390d018, throwflag=<optimized out>) at Python/ceval.c:3366
#138 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867fcc790, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8649f81d0, argcount=3, 
    kwnames=0x0, kwargs=kwargs@entry=0x73e8649f81e8, kwcount=0, kwstep=kwstep@entry=1, defs=0x73e867b01a70, defcount=1, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0, 
    name=0x73e867fedb80, qualname=qualname@entry=0x73e867fedb80) at Python/ceval.c:4128
#139 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e8649f81d0, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#140 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff459df0, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#141 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649f8018, throwflag=<optimized out>) at Python/ceval.c:3284
#142 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867fcc3a0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8649abfa8, argcount=1, 
    kwnames=0x73e867feda70, kwargs=kwargs@entry=0x73e8649abfb0, kwcount=1, kwstep=kwstep@entry=1, defs=0x73e867b01a30, defcount=2, kwdefs=kwdefs@entry=0x0, 
    closure=closure@entry=0x0, name=0x73e867feda80, qualname=qualname@entry=0x73e867feda80) at Python/ceval.c:4128
#143 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e8649abfa8, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#144 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45a148, oparg=<optimized out>, kwnames=kwnames@entry=0x73e867feda58) at Python/ceval.c:4819
#145 0x000073e86b52d6a1 in _PyEval_EvalFrameDefault (f=0x73e8649abe18, throwflag=<optimized out>) at Python/ceval.c:3300
#146 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867fcc280, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e867391e30, argcount=2, 
    kwnames=kwnames@entry=0x0, kwargs=kwargs@entry=0x8, 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:4128
#147 0x000073e86b52c22b in PyEval_EvalCodeEx (_co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e867391e30, 
    argcount=<optimized out>, kws=kws@entry=0x0, kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, kwdefs=0x0, closure=0x0) at Python/ceval.c:4149
#148 0x000073e86b493ea1 in function_call (func=0x73e867ffb368, arg=0x73e867391e18, kw=0x0) at Objects/funcobject.c:604
#149 0x000073e86b466983 in PyObject_Call (func=0x73e867ffb368, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#150 0x000073e86b52fbf7 in do_call_core (kwdict=0x0, callargs=0x73e867391e18, func=0x73e867ffb368) at Python/ceval.c:5067
#151 _PyEval_EvalFrameDefault (f=0x73e86390a418, throwflag=<optimized out>) at Python/ceval.c:3366
#152 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f695d0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e863901da0, argcount=1, 
    kwnames=0x0, kwargs=kwargs@entry=0x73e863901da8, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0, 
    name=0x73e867f61340, qualname=qualname@entry=0x73e867f84570) at Python/ceval.c:4128
#153 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e863901da0, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#154 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45a840, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#155 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e863901c18, throwflag=<optimized out>) at Python/ceval.c:3284
#156 0x000073e86b52b1cc in _PyFunction_FastCall (co=co@entry=0x73e867f6eb30, args=<optimized out>, args@entry=0x7f7fff45aa70, nargs=nargs@entry=2, 
    globals=globals@entry=0x73e867f66d48) at Python/ceval.c:4880
#157 0x000073e86b53453f in _PyFunction_FastCallDict (func=func@entry=0x73e867f6b058, args=args@entry=0x7f7fff45aa70, nargs=2, kwargs=kwargs@entry=0x0) at Python/ceval.c:4982
#158 0x000073e86b466bf8 in _PyObject_FastCallDict (func=func@entry=0x73e867f6b058, args=args@entry=0x7f7fff45aa70, nargs=nargs@entry=2, kwargs=kwargs@entry=0x0)
    at Objects/abstract.c:2295
#159 0x000073e86b466dd2 in _PyObject_Call_Prepend (func=0x73e867f6b058, obj=<optimized out>, args=0x73e864daea18, kwargs=0x0) at Objects/abstract.c:2358
#160 0x000073e86b466983 in PyObject_Call (func=0x73e865751958, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#161 0x000073e86b4cd6b2 in slot_tp_init (self=<optimized out>, args=0x73e864daea18, kwds=0x0) at Objects/typeobject.c:6380
#162 0x000073e86b4c99f7 in type_call (type=<optimized out>, type@entry=0x73e8687c7018, args=args@entry=0x73e864daea18, kwds=kwds@entry=0x0) at Objects/typeobject.c:915
#163 0x000073e86b466b17 in _PyObject_FastCallDict (func=func@entry=0x73e8687c7018, args=<optimized out>, nargs=<optimized out>, kwargs=kwargs@entry=0x0)
    at Objects/abstract.c:2316
#164 0x000073e86b467159 in _PyObject_FastCallKeywords (func=func@entry=0x73e8687c7018, stack=<optimized out>, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0)
    at Objects/abstract.c:2480
#165 0x000073e86b52bf50 in call_function (pp_stack=pp_stack@entry=0x7f7fff45ad40, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4822
#166 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649f6418, throwflag=<optimized out>) at Python/ceval.c:3284
#167 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=2, globals=<optimized out>) at Python/ceval.c:4880
#168 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#169 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45af40, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#170 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649ef018, throwflag=<optimized out>) at Python/ceval.c:3284
#171 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f695d0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e863901fa0, argcount=1, 
    kwnames=0x0, kwargs=kwargs@entry=0x73e863901fa8, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0, 
    name=0x73e867f61340, qualname=qualname@entry=0x73e867f84570) at Python/ceval.c:4128
#172 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e863901fa0, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#173 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45b290, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#174 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e863901e18, throwflag=<optimized out>) at Python/ceval.c:3284
#175 0x000073e86b52b1cc in _PyFunction_FastCall (co=co@entry=0x73e867f6eb30, args=<optimized out>, args@entry=0x7f7fff45b4c0, nargs=nargs@entry=2, 
    globals=globals@entry=0x73e867f66d48) at Python/ceval.c:4880
#176 0x000073e86b53453f in _PyFunction_FastCallDict (func=func@entry=0x73e867f6b058, args=args@entry=0x7f7fff45b4c0, nargs=2, kwargs=kwargs@entry=0x0) at Python/ceval.c:4982
#177 0x000073e86b466bf8 in _PyObject_FastCallDict (func=func@entry=0x73e867f6b058, args=args@entry=0x7f7fff45b4c0, nargs=nargs@entry=2, kwargs=kwargs@entry=0x0)
    at Objects/abstract.c:2295
#178 0x000073e86b466dd2 in _PyObject_Call_Prepend (func=0x73e867f6b058, obj=<optimized out>, args=0x73e867384698, kwargs=0x0) at Objects/abstract.c:2358
#179 0x000073e86b466983 in PyObject_Call (func=0x73e864958ed8, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#180 0x000073e86b4cd6b2 in slot_tp_init (self=<optimized out>, args=0x73e867384698, kwds=0x0) at Objects/typeobject.c:6380
#181 0x000073e86b4c99f7 in type_call (type=<optimized out>, type@entry=0x73e8687c7018, args=args@entry=0x73e867384698, kwds=kwds@entry=0x0) at Objects/typeobject.c:915
#182 0x000073e86b466b17 in _PyObject_FastCallDict (func=func@entry=0x73e8687c7018, args=<optimized out>, nargs=<optimized out>, kwargs=kwargs@entry=0x0)
    at Objects/abstract.c:2316
#183 0x000073e86b467159 in _PyObject_FastCallKeywords (func=func@entry=0x73e8687c7018, stack=<optimized out>, nargs=nargs@entry=1, kwnames=kwnames@entry=0x0)
    at Objects/abstract.c:2480
#184 0x000073e86b52bf50 in call_function (pp_stack=pp_stack@entry=0x7f7fff45b790, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4822
#185 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e86456ec18, throwflag=<optimized out>) at Python/ceval.c:3284
#186 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=2, globals=<optimized out>) at Python/ceval.c:4880
#187 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#188 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45b990, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#189 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649d0018, throwflag=<optimized out>) at Python/ceval.c:3284
#190 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f695d0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e863902da8, argcount=1, 
    kwnames=0x0, kwargs=kwargs@entry=0x73e863902db0, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0, 
    name=0x73e867f61340, qualname=qualname@entry=0x73e867f84570) at Python/ceval.c:4128
#191 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e863902da8, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#192 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45bce0, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#193 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e863902c18, throwflag=<optimized out>) at Python/ceval.c:3284
#194 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f6f040, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8649f05b8, argcount=3, 
    kwnames=0x0, kwargs=kwargs@entry=0x73e8649f05d0, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0, 
    name=0x73e86abed7c0, qualname=qualname@entry=0x73e867f59880) at Python/ceval.c:4128
#195 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e8649f05b8, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#196 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45c030, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#197 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649f0418, throwflag=<optimized out>) at Python/ceval.c:3284
#198 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=4, globals=<optimized out>) at Python/ceval.c:4880
#199 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#200 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45c230, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#201 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8649f3418, throwflag=<optimized out>) at Python/ceval.c:3284
#202 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=_co@entry=0x73e867f69ed0, globals=globals@entry=0x73e867f66d48, locals=locals@entry=0x0, 
    args=args@entry=0x7f7fff45c510, argcount=argcount@entry=1, kwnames=kwnames@entry=0x73e864db69b0, kwargs=kwargs@entry=0x73e864db69b8, kwcount=4, kwcount@entry=2, 
    kwstep=kwstep@entry=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x73e86b306240, qualname=0x73e867f84c50) at Python/ceval.c:4128
#203 0x000073e86b534361 in _PyFunction_FastCallDict (func=func@entry=0x73e867f778b8, args=args@entry=0x7f7fff45c510, nargs=1, kwargs=kwargs@entry=0x73e86577b9e8)
    at Python/ceval.c:5031
#204 0x000073e86b466bf8 in _PyObject_FastCallDict (func=func@entry=0x73e867f778b8, args=args@entry=0x7f7fff45c510, nargs=nargs@entry=1, kwargs=kwargs@entry=0x73e86577b9e8)
    at Objects/abstract.c:2295
#205 0x000073e86b466dd2 in _PyObject_Call_Prepend (func=0x73e867f778b8, obj=<optimized out>, args=0x73e86b32f068, kwargs=0x73e86577b9e8) at Objects/abstract.c:2358
#206 0x000073e86b466983 in PyObject_Call (func=0x73e8673310d8, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#207 0x000073e86b4cd9b9 in slot_tp_call (self=self@entry=0x73e867bd2b58, args=args@entry=0x73e86b32f068, kwds=kwds@entry=0x73e86577b9e8) at Objects/typeobject.c:6167
#208 0x000073e86b466b17 in _PyObject_FastCallDict (func=func@entry=0x73e867bd2b58, args=args@entry=0x73e8673279c0, nargs=nargs@entry=0, kwargs=kwargs@entry=0x73e86577b9e8)
    at Objects/abstract.c:2316
#209 0x000073e86b4670f9 in _PyObject_FastCallKeywords (func=func@entry=0x73e867bd2b58, stack=0x73e8673279c0, nargs=nargs@entry=0, kwnames=kwnames@entry=0x73e867b63c98)
    at Objects/abstract.c:2480
#210 0x000073e86b52bf50 in call_function (pp_stack=pp_stack@entry=0x7f7fff45c7f8, oparg=<optimized out>, kwnames=kwnames@entry=0x73e867b63c98) at Python/ceval.c:4822
#211 0x000073e86b52d6a1 in _PyEval_EvalFrameDefault (f=0x73e867327818, throwflag=<optimized out>) at Python/ceval.c:3300
#212 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867b7e1f0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8677c8830, argcount=1, 
    kwnames=kwnames@entry=0x0, kwargs=kwargs@entry=0x8, 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:4128
#213 0x000073e86b52c22b in PyEval_EvalCodeEx (_co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8677c8830, 
    argcount=<optimized out>, kws=kws@entry=0x0, kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, kwdefs=0x0, closure=0x0) at Python/ceval.c:4149
#214 0x000073e86b493ea1 in function_call (func=0x73e867ba1168, arg=0x73e8677c8818, kw=0x0) at Objects/funcobject.c:604
#215 0x000073e86b466983 in PyObject_Call (func=0x73e867ba1168, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#216 0x000073e86b52fbf7 in do_call_core (kwdict=0x0, callargs=0x73e8677c8818, func=0x73e867ba1168) at Python/ceval.c:5067
#217 _PyEval_EvalFrameDefault (f=0x73e8653ca018, throwflag=<optimized out>) at Python/ceval.c:3366
#218 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f695d0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e865b701e8, argcount=1, 
    kwnames=0x0, kwargs=kwargs@entry=0x73e865b701f0, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0, 
    name=0x73e867f61340, qualname=qualname@entry=0x73e867f84570) at Python/ceval.c:4128
#219 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e865b701e8, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#220 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45cef0, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#221 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e865b70058, throwflag=<optimized out>) at Python/ceval.c:3284
#222 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f6f040, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e865314db8, argcount=3, 
    kwnames=0x0, kwargs=kwargs@entry=0x73e865314dd0, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0, 
    name=0x73e86abed7c0, qualname=qualname@entry=0x73e867f59880) at Python/ceval.c:4128
#223 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e865314db8, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#224 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45d240, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#225 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e865314c18, throwflag=<optimized out>) at Python/ceval.c:3284
#226 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=4, globals=<optimized out>) at Python/ceval.c:4880
#227 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#228 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45d440, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#229 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e865721418, throwflag=<optimized out>) at Python/ceval.c:3284
#230 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=_co@entry=0x73e867f69ed0, globals=globals@entry=0x73e867f66d48, locals=locals@entry=0x0, 
    args=args@entry=0x7f7fff45d720, argcount=argcount@entry=1, kwnames=kwnames@entry=0x73e868bfcff0, kwargs=kwargs@entry=0x73e868bfcff8, kwcount=2, kwcount@entry=1, 
    kwstep=kwstep@entry=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x73e86b306240, qualname=0x73e867f84c50) at Python/ceval.c:4128
#231 0x000073e86b534361 in _PyFunction_FastCallDict (func=func@entry=0x73e867f778b8, args=args@entry=0x7f7fff45d720, nargs=1, kwargs=kwargs@entry=0x73e867334b18)
    at Python/ceval.c:5031
#232 0x000073e86b466bf8 in _PyObject_FastCallDict (func=func@entry=0x73e867f778b8, args=args@entry=0x7f7fff45d720, nargs=nargs@entry=1, kwargs=kwargs@entry=0x73e867334b18)
    at Objects/abstract.c:2295
#233 0x000073e86b466dd2 in _PyObject_Call_Prepend (func=0x73e867f778b8, obj=<optimized out>, args=0x73e86b32f068, kwargs=0x73e867334b18) at Objects/abstract.c:2358
#234 0x000073e86b466983 in PyObject_Call (func=0x73e867332bd8, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#235 0x000073e86b4cd9b9 in slot_tp_call (self=self@entry=0x73e867bd2f18, args=args@entry=0x73e86b32f068, kwds=kwds@entry=0x73e867334b18) at Objects/typeobject.c:6167
#236 0x000073e86b466b17 in _PyObject_FastCallDict (func=func@entry=0x73e867bd2f18, args=args@entry=0x73e8687b2d18, nargs=nargs@entry=0, kwargs=kwargs@entry=0x73e867334b18)
    at Objects/abstract.c:2316
#237 0x000073e86b4670f9 in _PyObject_FastCallKeywords (func=func@entry=0x73e867bd2f18, stack=0x73e8687b2d18, nargs=nargs@entry=0, kwnames=kwnames@entry=0x73e867b79798)
    at Objects/abstract.c:2480
#238 0x000073e86b52bf50 in call_function (pp_stack=pp_stack@entry=0x7f7fff45da08, oparg=<optimized out>, kwnames=kwnames@entry=0x73e867b79798) at Python/ceval.c:4822
#239 0x000073e86b52d6a1 in _PyEval_EvalFrameDefault (f=0x73e8687b2b88, throwflag=<optimized out>) at Python/ceval.c:3300
#240 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=2, globals=<optimized out>) at Python/ceval.c:4880
#241 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#242 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45dc00, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#243 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e86734fc18, throwflag=<optimized out>) at Python/ceval.c:3284
#244 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=2, globals=<optimized out>) at Python/ceval.c:4880
#245 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#246 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45de00, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#247 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e867b52418, throwflag=<optimized out>) at Python/ceval.c:3284
#248 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867b7df20, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e86ab8aab0, argcount=1, 
    kwnames=kwnames@entry=0x0, kwargs=kwargs@entry=0x8, 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:4128
#249 0x000073e86b52c22b in PyEval_EvalCodeEx (_co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e86ab8aab0, 
    argcount=<optimized out>, kws=kws@entry=0x0, kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, kwdefs=0x0, closure=0x0) at Python/ceval.c:4149
#250 0x000073e86b493ea1 in function_call (func=0x73e867b954d8, arg=0x73e86ab8aa98, kw=0x0) at Objects/funcobject.c:604
#251 0x000073e86b466983 in PyObject_Call (func=0x73e867b954d8, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#252 0x000073e86b52fbf7 in do_call_core (kwdict=0x0, callargs=0x73e86ab8aa98, func=0x73e867b954d8) at Python/ceval.c:5067
#253 _PyEval_EvalFrameDefault (f=0x73e86734b418, throwflag=<optimized out>) at Python/ceval.c:3366
#254 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f695d0, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8687c41a8, argcount=1, 
    kwnames=0x0, kwargs=kwargs@entry=0x73e8687c41b0, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0, 
    name=0x73e867f61340, qualname=qualname@entry=0x73e867f84570) at Python/ceval.c:4128
#255 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e8687c41a8, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#256 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45e500, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#257 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e8687c4018, throwflag=<optimized out>) at Python/ceval.c:3284
#258 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=0x73e867f6f040, globals=<optimized out>, locals=locals@entry=0x0, args=args@entry=0x73e8673281b8, argcount=3, 
    kwnames=0x0, kwargs=kwargs@entry=0x73e8673281d0, kwcount=0, kwstep=kwstep@entry=1, defs=0x0, defcount=0, kwdefs=kwdefs@entry=0x0, closure=closure@entry=0x0, 
    name=0x73e86abed7c0, qualname=qualname@entry=0x73e867f59880) at Python/ceval.c:4128
#259 0x000073e86b52bd82 in fast_function (func=<optimized out>, stack=0x73e8673281b8, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4939
#260 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45e850, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#261 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e867328018, throwflag=<optimized out>) at Python/ceval.c:3284
#262 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=4, globals=<optimized out>) at Python/ceval.c:4880
#263 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#264 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45ea50, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#265 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e867354818, throwflag=<optimized out>) at Python/ceval.c:3284
#266 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=_co@entry=0x73e867f69ed0, globals=globals@entry=0x73e867f66d48, locals=locals@entry=0x0, 
    args=args@entry=0x7f7fff45ed30, argcount=argcount@entry=1, kwnames=kwnames@entry=0x73e868303830, kwargs=kwargs@entry=0x73e868303838, kwcount=2, kwcount@entry=1, 
    kwstep=kwstep@entry=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x73e86b306240, qualname=0x73e867f84c50) at Python/ceval.c:4128
#267 0x000073e86b534361 in _PyFunction_FastCallDict (func=func@entry=0x73e867f778b8, args=args@entry=0x7f7fff45ed30, nargs=1, kwargs=kwargs@entry=0x73e867311cf8)
    at Python/ceval.c:5031
#268 0x000073e86b466bf8 in _PyObject_FastCallDict (func=func@entry=0x73e867f778b8, args=args@entry=0x7f7fff45ed30, nargs=nargs@entry=1, kwargs=kwargs@entry=0x73e867311cf8)
    at Objects/abstract.c:2295
#269 0x000073e86b466dd2 in _PyObject_Call_Prepend (func=0x73e867f778b8, obj=<optimized out>, args=0x73e86b32f068, kwargs=0x73e867311cf8) at Objects/abstract.c:2358
#270 0x000073e86b466983 in PyObject_Call (func=0x73e86af143d8, args=<optimized out>, kwargs=<optimized out>) at Objects/abstract.c:2246
#271 0x000073e86b4cd9b9 in slot_tp_call (self=self@entry=0x73e867bf7158, args=args@entry=0x73e86b32f068, kwds=kwds@entry=0x73e867311cf8) at Objects/typeobject.c:6167
#272 0x000073e86b466b17 in _PyObject_FastCallDict (func=func@entry=0x73e867bf7158, args=args@entry=0x73e8677cd9d0, nargs=nargs@entry=0, kwargs=kwargs@entry=0x73e867311cf8)
    at Objects/abstract.c:2316
#273 0x000073e86b4670f9 in _PyObject_FastCallKeywords (func=func@entry=0x73e867bf7158, stack=0x73e8677cd9d0, nargs=nargs@entry=0, kwnames=kwnames@entry=0x73e868bf9418)
    at Objects/abstract.c:2480
#274 0x000073e86b52bf50 in call_function (pp_stack=pp_stack@entry=0x7f7fff45f018, oparg=<optimized out>, kwnames=kwnames@entry=0x73e868bf9418) at Python/ceval.c:4822
#275 0x000073e86b52d6a1 in _PyEval_EvalFrameDefault (f=0x73e8677cd818, throwflag=<optimized out>) at Python/ceval.c:3300
#276 0x000073e86b52b1cc in _PyFunction_FastCall (co=<optimized out>, args=<optimized out>, nargs=2, globals=<optimized out>) at Python/ceval.c:4880
#277 0x000073e86b52be92 in fast_function (func=<optimized out>, stack=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>) at Python/ceval.c:4922
#278 0x000073e86b52bffb in call_function (pp_stack=pp_stack@entry=0x7f7fff45f210, oparg=<optimized out>, kwnames=kwnames@entry=0x0) at Python/ceval.c:4819
#279 0x000073e86b52ef91 in _PyEval_EvalFrameDefault (f=0x73e86b361418, throwflag=<optimized out>) at Python/ceval.c:3284
#280 0x000073e86b52bbb3 in _PyEval_EvalCodeWithName (_co=_co@entry=0x73e86ab7e550, globals=globals@entry=0x73e86af6b618, locals=locals@entry=0x73e86af6b618, 
    args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0, kwargs=kwargs@entry=0x8, 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:4128
#281 0x000073e86b52c22b in PyEval_EvalCodeEx (_co=_co@entry=0x73e86ab7e550, globals=globals@entry=0x73e86af6b618, locals=locals@entry=0x73e86af6b618, args=args@entry=0x0, 
    argcount=argcount@entry=0, kws=kws@entry=0x0, kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0, kwdefs=kwdefs@entry=0x0, 
    closure=closure@entry=0x0) at Python/ceval.c:4149
#282 0x000073e86b52c292 in PyEval_EvalCode (co=co@entry=0x73e86ab7e550, globals=globals@entry=0x73e86af6b618, locals=locals@entry=0x73e86af6b618) at Python/ceval.c:695
#283 0x000073e86b5575b8 in run_mod (mod=mod@entry=0x73e86abbf798, filename=filename@entry=0x73e86abb0b10, globals=globals@entry=0x73e86af6b618, 
    locals=locals@entry=0x73e86af6b618, flags=flags@entry=0x7f7fff45f5e0, arena=arena@entry=0x73e86af062c0) at Python/pythonrun.c:980
#284 0x000073e86b559a98 in PyRun_FileExFlags (fp=fp@entry=0x73e86a37f540, filename_str=filename_str@entry=0x73e86ab86560 "/usr/pkg/bin/py.test-3.6", start=start@entry=257, 
    globals=globals@entry=0x73e86af6b618, locals=locals@entry=0x73e86af6b618, closeit=closeit@entry=1, flags=flags@entry=0x7f7fff45f5e0) at Python/pythonrun.c:933
#285 0x000073e86b559c00 in PyRun_SimpleFileExFlags (fp=fp@entry=0x73e86a37f540, filename=<optimized out>, closeit=closeit@entry=1, flags=flags@entry=0x7f7fff45f5e0)
    at Python/pythonrun.c:396
#286 0x000073e86b55a04b in PyRun_AnyFileExFlags (fp=fp@entry=0x73e86a37f540, filename=<optimized out>, closeit=closeit@entry=1, flags=flags@entry=0x7f7fff45f5e0)
    at Python/pythonrun.c:80
#287 0x000073e86b570f6b in run_file (p_cf=0x7f7fff45f5e0, filename=0x73e86b32c080 L"/usr/pkg/bin/py.test-3.6", fp=0x73e86a37f540) at Modules/main.c:338
#288 Py_Main (argc=argc@entry=2, argv=argv@entry=0x73e86b301060) at Modules/main.c:809
#289 0x0000000000400dd4 in main (argc=2, argv=0x7f7fff45f768) at ./Programs/python.c:69

It might be the same error as #596, but it's not clear to me and the backtrace is much longer.

@Lukasa
Copy link
Member

Lukasa commented Jun 30, 2017

I don't believe this is the same as #596: #596 related to the CFFI callback structure, and this backtrace is not coming out of a C callback. Instead it's coming out of crypto.load_privatekey: specifically, we're trying to load a PEM file and that is somehow causing a segfault.

What OpenSSL are you linking against please?

@0-wiz-0
Copy link
Author

0-wiz-0 commented Jun 30, 2017

OpenSSL 1.0.2k 26 Jan 2017

@Lukasa
Copy link
Member

Lukasa commented Jun 30, 2017

Hrm, there's really nothing special about that OpenSSL: certainly not anything that should cause a segfault. Are you completely confident that your header files and library versions match? You may be using header files for a different version of OpenSSL than the .so you've linked against.

@0-wiz-0
Copy link
Author

0-wiz-0 commented Jun 30, 2017

Yes. That's the native version (NetBSD base), and no other version is installed.

@Lukasa
Copy link
Member

Lukasa commented Jun 30, 2017

Hrm. It'd be good to know what test is executing. Can you run the tests in verbose mode (-v) to see what's happening when we hit the segfault?

@0-wiz-0
Copy link
Author

0-wiz-0 commented Jun 30, 2017

cd /scratch/security/py-OpenSSL/work/pyOpenSSL-17.0.0 && PYTHONPATH=src py.test-3.6 -v
============================================================================ test session starts =============================================================================
platform netbsd8 -- Python 3.6.1, pytest-3.1.2, py-1.4.33, pluggy-0.4.0 -- /usr/pkg/bin/python3.6
cachedir: .cache
OpenSSL: b'OpenSSL 1.0.2k  26 Jan 2017'
cryptography: 1.9
rootdir: /scratch/security/py-OpenSSL/work/pyOpenSSL-17.0.0, inifile: setup.cfg
collected 493 items 

tests/test_crypto.py::TestX509Ext::test_str PASSED
tests/test_crypto.py::TestX509Ext::test_type PASSED
tests/test_crypto.py::TestX509Ext::test_construction PASSED
tests/test_crypto.py::TestX509Ext::test_invalid_extension[thisIsMadeUp-False-hi] PASSED
tests/test_crypto.py::TestX509Ext::test_invalid_extension[basicConstraints-False-blah blah] PASSED
tests/test_crypto.py::TestX509Ext::test_invalid_extension[proxyCertInfo-True-language:id-ppl-anyLanguage,pathlen:1,policy:text:AB] PASSED
tests/test_crypto.py::TestX509Ext::test_get_critical[True] PASSED
tests/test_crypto.py::TestX509Ext::test_get_critical[False] PASSED
tests/test_crypto.py::TestX509Ext::test_get_short_name[basicConstraints-CA:true] PASSED
tests/test_crypto.py::TestX509Ext::test_get_short_name[nsComment-foo bar] PASSED
tests/test_crypto.py::TestX509Ext::test_get_data PASSED
tests/test_crypto.py::TestX509Ext::test_unused_subject PASSED
tests/test_crypto.py::TestX509Ext::test_subject PASSED
tests/test_crypto.py::TestX509Ext::test_missing_subject PASSED
tests/test_crypto.py::TestX509Ext::test_invalid_subject[True] PASSED
tests/test_crypto.py::TestX509Ext::test_invalid_subject[bad_obj1] PASSED
tests/test_crypto.py::TestX509Ext::test_invalid_subject[hello] PASSED
tests/test_crypto.py::TestX509Ext::test_invalid_subject[bad_obj3] PASSED
tests/test_crypto.py::TestX509Ext::test_unused_issuer PASSED
tests/test_crypto.py::TestX509Ext::test_issuer PASSED
tests/test_crypto.py::TestX509Ext::test_missing_issuer PASSED
tests/test_crypto.py::TestX509Ext::test_invalid_issuer[True] PASSED
tests/test_crypto.py::TestX509Ext::test_invalid_issuer[bad_obj1] PASSED
tests/test_crypto.py::TestX509Ext::test_invalid_issuer[hello] PASSED
tests/test_crypto.py::TestX509Ext::test_invalid_issuer[bad_obj3] PASSED
tests/test_crypto.py::TestPKey::test_convert_from_cryptography_private_key PASSED
tests/test_crypto.py::TestPKey::test_convert_from_cryptography_public_key PASSED
tests/test_crypto.py::TestPKey::test_convert_from_cryptography_unsupported_type PASSED
tests/test_crypto.py::TestPKey::test_convert_public_pkey_to_cryptography_key PASSED
tests/test_crypto.py::TestPKey::test_convert_private_pkey_to_cryptography_key PASSED
tests/test_crypto.py::TestPKey::test_type PASSED
tests/test_crypto.py::TestPKey::test_construction PASSED
tests/test_crypto.py::TestPKey::test_pregeneration PASSED
tests/test_crypto.py::TestPKey::test_failed_generation PASSED
tests/test_crypto.py::TestPKey::test_rsa_generation PASSED
tests/test_crypto.py::TestPKey::test_dsa_generation PASSED
tests/test_crypto.py::TestPKey::test_regeneration PASSED
tests/test_crypto.py::TestPKey::test_inconsistent_key PASSED
tests/test_crypto.py::TestPKey::test_check_public_key PASSED
tests/test_crypto.py::TestX509Name::test_type PASSED
tests/test_crypto.py::TestX509Name::test_only_string_attributes PASSED
tests/test_crypto.py::TestX509Name::test_set_invalid_attribute PASSED
tests/test_crypto.py::TestX509Name::test_attributes PASSED
tests/test_crypto.py::TestX509Name::test_copy PASSED
tests/test_crypto.py::TestX509Name::test_repr PASSED
tests/test_crypto.py::TestX509Name::test_comparison PASSED
tests/test_crypto.py::TestX509Name::test_hash PASSED
tests/test_crypto.py::TestX509Name::test_der PASSED
tests/test_crypto.py::TestX509Name::test_get_components PASSED
tests/test_crypto.py::TestX509Name::test_load_nul_byte_attribute PASSED
tests/test_crypto.py::TestX509Name::test_set_attribute_failure PASSED
tests/test_crypto.py::TestX509Req::test_sign_with_ungenerated PASSED
tests/test_crypto.py::TestX509Req::test_sign_with_public_key PASSED
tests/test_crypto.py::TestX509Req::test_sign_with_unknown_digest PASSED
tests/test_crypto.py::TestX509Req::test_sign PASSED
tests/test_crypto.py::TestX509Req::test_type PASSED
tests/test_crypto.py::TestX509Req::test_construction PASSED
tests/test_crypto.py::TestX509Req::test_version PASSED
tests/test_crypto.py::TestX509Req::test_version_wrong_args PASSED
tests/test_crypto.py::TestX509Req::test_get_subject PASSED
tests/test_crypto.py::TestX509Req::test_add_extensions PASSED
tests/test_crypto.py::TestX509Req::test_get_extensions PASSED
tests/test_crypto.py::TestX509Req::test_add_extensions_wrong_args PASSED
tests/test_crypto.py::TestX509Req::test_verify_wrong_args PASSED
tests/test_crypto.py::TestX509Req::test_verify_uninitialized_key PASSED
tests/test_crypto.py::TestX509Req::test_verify_wrong_key PASSED
tests/test_crypto.py::TestX509Req::test_verify_success PASSED
tests/test_crypto.py::TestX509::test_sign_with_ungenerated PASSED
tests/test_crypto.py::TestX509::test_sign_with_public_key PASSED
tests/test_crypto.py::TestX509::test_sign_with_unknown_digest PASSED
tests/test_crypto.py::TestX509::test_sign PASSED
tests/test_crypto.py::TestX509::test_type PASSED
tests/test_crypto.py::TestX509::test_construction PASSED
tests/test_crypto.py::TestX509::test_set_version_wrong_args PASSED
tests/test_crypto.py::TestX509::test_version PASSED
tests/test_crypto.py::TestX509::test_serial_number PASSED
tests/test_crypto.py::TestX509::test_set_notBefore PASSED
tests/test_crypto.py::TestX509::test_set_notAfter PASSED
tests/test_crypto.py::TestX509::test_get_notBefore PASSED
tests/test_crypto.py::TestX509::test_get_notAfter PASSED
tests/test_crypto.py::TestX509::test_gmtime_adj_notBefore_wrong_args PASSED
tests/test_crypto.py::TestX509::test_gmtime_adj_notBefore PASSED
tests/test_crypto.py::TestX509::test_gmtime_adj_notAfter_wrong_args PASSED
tests/test_crypto.py::TestX509::test_gmtime_adj_notAfter PASSED
tests/test_crypto.py::TestX509::test_has_expired PASSED
tests/test_crypto.py::TestX509::test_has_not_expired PASSED
tests/test_crypto.py::TestX509::test_root_has_not_expired FAILED
tests/test_crypto.py::TestX509::test_digest PASSED
tests/test_crypto.py::TestX509::test_extension_count PASSED
tests/test_crypto.py::TestX509::test_get_extension PASSED
tests/test_crypto.py::TestX509::test_nullbyte_subjectAltName PASSED
tests/test_crypto.py::TestX509::test_invalid_digest_algorithm PASSED
tests/test_crypto.py::TestX509::test_get_subject PASSED
tests/test_crypto.py::TestX509::test_set_subject_wrong_args PASSED
tests/test_crypto.py::TestX509::test_set_subject PASSED
tests/test_crypto.py::TestX509::test_get_issuer PASSED
tests/test_crypto.py::TestX509::test_set_issuer_wrong_args PASSED
tests/test_crypto.py::TestX509::test_set_issuer PASSED
tests/test_crypto.py::TestX509::test_get_pubkey_uninitialized PASSED
tests/test_crypto.py::TestX509::test_set_pubkey_wrong_type PASSED
tests/test_crypto.py::TestX509::test_subject_name_hash PASSED
tests/test_crypto.py::TestX509::test_get_signature_algorithm PASSED
tests/test_crypto.py::TestX509::test_get_undefined_signature_algorithm PASSED
tests/test_crypto.py::TestX509::test_sign_bad_pubkey_type PASSED
tests/test_crypto.py::TestX509Store::test_type PASSED
tests/test_crypto.py::TestX509Store::test_add_cert PASSED
tests/test_crypto.py::TestX509Store::test_add_cert_wrong_args[None] PASSED
tests/test_crypto.py::TestX509Store::test_add_cert_wrong_args[1.0] PASSED
tests/test_crypto.py::TestX509Store::test_add_cert_wrong_args[cert] PASSED
tests/test_crypto.py::TestX509Store::test_add_cert_wrong_args[cert3] PASSED
tests/test_crypto.py::TestX509Store::test_add_cert_rejects_duplicate PASSED
tests/test_crypto.py::TestPKCS12::test_type PASSED
tests/test_crypto.py::TestPKCS12::test_empty_construction PASSED
tests/test_crypto.py::TestPKCS12::test_type_errors PASSED
tests/test_crypto.py::TestPKCS12::test_key_only PASSED
tests/test_crypto.py::TestPKCS12::test_cert_only PASSED
tests/test_crypto.py::TestPKCS12::test_load_pkcs12 PASSED
tests/test_crypto.py::TestPKCS12::test_load_pkcs12_text_passphrase PASSED
tests/test_crypto.py::TestPKCS12::test_load_pkcs12_no_passphrase PASSED
tests/test_crypto.py::TestPKCS12::test_load_pkcs12_null_passphrase_load_empty PASSED
tests/test_crypto.py::TestPKCS12::test_load_pkcs12_null_passphrase_load_null PASSED
tests/test_crypto.py::TestPKCS12::test_load_pkcs12_empty_passphrase_load_empty PASSED
tests/test_crypto.py::TestPKCS12::test_load_pkcs12_empty_passphrase_load_null PASSED
tests/test_crypto.py::TestPKCS12::test_load_pkcs12_garbage PASSED
tests/test_crypto.py::TestPKCS12::test_replace PASSED
tests/test_crypto.py::TestPKCS12::test_friendly_name PASSED
tests/test_crypto.py::TestPKCS12::test_various_empty_passphrases PASSED
tests/test_crypto.py::TestPKCS12::test_removing_ca_cert PASSED
tests/test_crypto.py::TestPKCS12::test_export_without_mac PASSED
tests/test_crypto.py::TestPKCS12::test_load_without_mac PASSED
tests/test_crypto.py::TestPKCS12::test_zero_len_list_for_ca PASSED
tests/test_crypto.py::TestPKCS12::test_export_without_args PASSED
tests/test_crypto.py::TestPKCS12::test_export_without_bytes PASSED
tests/test_crypto.py::TestPKCS12::test_key_cert_mismatch PASSED
tests/test_crypto.py::TestLoadPublicKey::test_loading_works PASSED
tests/test_crypto.py::TestLoadPublicKey::test_invalid_type PASSED
tests/test_crypto.py::TestLoadPublicKey::test_invalid_key_format PASSED
tests/test_crypto.py::TestLoadPublicKey::test_tolerates_unicode_strings PASSED
tests/test_crypto.py::TestFunction::test_load_privatekey_invalid_format PASSED
tests/test_crypto.py::TestFunction::test_load_privatekey_invalid_passphrase_type PASSED
tests/test_crypto.py::TestFunction::test_load_privatekey_wrongPassphrase PASSED
tests/test_crypto.py::TestFunction::test_load_privatekey_passphraseWrongType PASSED
tests/test_crypto.py::TestFunction::test_load_privatekey_passphrase PASSED
tests/test_crypto.py::TestFunction::test_load_privatekey_passphrase_exception [1]   Segmentation fault (core dumped) PYTHONPATH=src p...
*** Error code 139

@Lukasa
Copy link
Member

Lukasa commented Jun 30, 2017

Aha, ok, this may be callback related. That specific test validates that an exception being thrown in the private key passphrase callback is correctly handled. Segfaults would, IMO, not be considered "correctly handled".

@Lukasa
Copy link
Member

Lukasa commented Jun 30, 2017

@reaperhulk, I'm going to page you in here: what's the state of affairs regarding #596?

@0-wiz-0
Copy link
Author

0-wiz-0 commented Jun 30, 2017

Is there an easy way to skip running this particular test to get a result for the other ones?

@Lukasa
Copy link
Member

Lukasa commented Jun 30, 2017

Yeah, py.test -k "not load_privatekey_passphrase_exception" will exclude that test.

@0-wiz-0
Copy link
Author

0-wiz-0 commented Jun 30, 2017

If I skip all tests that cause segfaults, the command line is:

PYTHONPATH=src py.test-3.6 -v -k "not load_privatekey_passphrase_exception and not test_load_privatekey_wrongPassphraseCallback and not te
st_load_privatekey_passphraseCallback and not test_load_privatekey_passphrase_wrong_return_type and not test_load_privatekey_passphrase_callback_length and not test_dump_priv
atekey_passphrase_callback and not test_dump_privatekey_passphrase_exception and not test_dump_privatekey_passphraseCallbackLength and not test_set_passwd_cb and not test_pas
swd_callback_exception and not test_passwd_callback_false and not test_passwd_callback_non_string and not test_passwd_callback_too_long and not test_set_info_callback and not
 test_load_verify_bytes_cafile and not test_load_verify_unicode_cafile and not test_load_verify_directory_bytes_capath and not test_load_verify_directory_unicode_capath and n
ot test_set_default_verify_paths and not test_set_verify_callback_connection_argument and not test_no_servername and not test_servername and not test_npn_success and not test
_npn_client_fail and not test_npn_select_error and not test_npn_advertise_error and not test_alpn_success and not test_alpn_set_on_connection and not test_alpn_server_fail an
d not test_alpn_callback_exception and not test_get_peer_cert_chain and not test_memory_connect and not test_outgoing_overflow and not test_set_empty_ca_list and not test_set
_one_ca_list and not test_set_multiple_ca_list and not test_reset_ca_list and not test_mutated_ca_list and not test_one_add_client and not test_multiple_add_client_ca and not
 test_set_and_add_client_ca and not test_set_after_add_client_ca and not test_client_negotiates_without_server and not test_client_receives_servers_data and not test_callback
s_are_invoked_with_connections and not test_opaque_data_is_passed_through and not test_server_returns_empty_string and not test_client_returns_false_terminates_handshake and
not test_exceptions_in_client_bubble_up and not test_exceptions_in_server_bubble_up and not test_server_must_return_bytes"

the result of that is

================================================================================== FAILURES ==================================================================================
_____________________________________________________________________ TestX509.test_root_has_not_expired _____________________________________________________________________

self = <tests.test_crypto.TestX509 object at 0x76b691b21698>

    def test_root_has_not_expired(self):
        """
            `X509.has_expired` returns `False` if the certificate's not-after time
            is in the future.
            """
        cert = load_certificate(FILETYPE_PEM, root_cert_pem)
>       assert not cert.has_expired()
E       assert not True
E        +  where True = <bound method X509.has_expired of <OpenSSL.crypto.X509 object at 0x76b691b21e58>>()
E        +    where <bound method X509.has_expired of <OpenSSL.crypto.X509 object at 0x76b691b21e58>> = <OpenSSL.crypto.X509 object at 0x76b691b21e58>.has_expired

tests/test_crypto.py:1642: AssertionError
______________________________________________________________________ TestX509StoreContext.test_valid _______________________________________________________________________

self = <tests.test_crypto.TestX509StoreContext object at 0x76b690b02518>

    def test_valid(self):
        """
            `verify_certificate` returns ``None`` when called with a certificate
            and valid chain.
            """
        store = X509Store()
        store.add_cert(self.root_cert)
        store.add_cert(self.intermediate_cert)
        store_ctx = X509StoreContext(store, self.intermediate_server_cert)
>       assert store_ctx.verify_certificate() is None

tests/test_crypto.py:3418:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <OpenSSL.crypto.X509StoreContext object at 0x76b690b0b598>

    def verify_certificate(self):
        """
            Verify a certificate in a context.
    
            .. versionadded:: 0.15
    
            :raises X509StoreContextError: If an error occurred when validating a
              certificate in the context. Sets ``certificate`` attribute to
              indicate which certificate caused the error.
            """
        # Always re-initialize the store context in case
        # :meth:`verify_certificate` is called multiple times.
        self._init()
        ret = _lib.X509_verify_cert(self._store_ctx)
        self._cleanup()
        if ret <= 0:
>           raise self._exception_from_context()
E           OpenSSL.crypto.X509StoreContextError: [10, 2, 'certificate has expired']

src/OpenSSL/crypto.py:1663: X509StoreContextError
______________________________________________________________________ TestX509StoreContext.test_reuse _______________________________________________________________________

self = <tests.test_crypto.TestX509StoreContext object at 0x76b68fb0a2d8>

    def test_reuse(self):
        """
            `verify_certificate` can be called multiple times with the same
            ``X509StoreContext`` instance to produce the same result.
            """
        store = X509Store()
        store.add_cert(self.root_cert)
        store.add_cert(self.intermediate_cert)
        store_ctx = X509StoreContext(store, self.intermediate_server_cert)
>       assert store_ctx.verify_certificate() is None

tests/test_crypto.py:3429:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <OpenSSL.crypto.X509StoreContext object at 0x76b68fb0a698>

    def verify_certificate(self):
        """
            Verify a certificate in a context.
    
            .. versionadded:: 0.15
    
            :raises X509StoreContextError: If an error occurred when validating a
              certificate in the context. Sets ``certificate`` attribute to
              indicate which certificate caused the error.
            """
        # Always re-initialize the store context in case
        # :meth:`verify_certificate` is called multiple times.
        self._init()
        ret = _lib.X509_verify_cert(self._store_ctx)
        self._cleanup()
        if ret <= 0:
>           raise self._exception_from_context()
E           OpenSSL.crypto.X509StoreContextError: [10, 2, 'certificate has expired']

src/OpenSSL/crypto.py:1663: X509StoreContextError
_______________________________________________________________ TestX509StoreContext.test_trusted_self_signed ________________________________________________________________

self = <tests.test_crypto.TestX509StoreContext object at 0x76b68edeb018>

    def test_trusted_self_signed(self):
        """
            `verify_certificate` returns ``None`` when called with a self-signed
            certificate and itself in the chain.
            """
        store = X509Store()
        store.add_cert(self.root_cert)
        store_ctx = X509StoreContext(store, self.root_cert)
>       assert store_ctx.verify_certificate() is None

tests/test_crypto.py:3440:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <OpenSSL.crypto.X509StoreContext object at 0x76b68edeb4d8>

    def verify_certificate(self):
        """
            Verify a certificate in a context.
    
            .. versionadded:: 0.15
    
            :raises X509StoreContextError: If an error occurred when validating a
              certificate in the context. Sets ``certificate`` attribute to
              indicate which certificate caused the error.
            """
        # Always re-initialize the store context in case
        # :meth:`verify_certificate` is called multiple times.
        self._init()
        ret = _lib.X509_verify_cert(self._store_ctx)
        self._cleanup()
        if ret <= 0:
>           raise self._exception_from_context()
E           OpenSSL.crypto.X509StoreContextError: [10, 0, 'certificate has expired']

src/OpenSSL/crypto.py:1663: X509StoreContextError
_____________________________________________________________ TestX509StoreContext.test_modification_pre_verify ______________________________________________________________

self = <tests.test_crypto.TestX509StoreContext object at 0x76b695dc59d8>

    def test_modification_pre_verify(self):
        """
            `verify_certificate` can use a store context modified after
            instantiation.
            """
        store_bad = X509Store()
        store_bad.add_cert(self.intermediate_cert)
        store_good = X509Store()
        store_good.add_cert(self.root_cert)
        store_good.add_cert(self.intermediate_cert)
        store_ctx = X509StoreContext(store_bad, self.intermediate_server_cert)
    
        with pytest.raises(X509StoreContextError) as exc:
            store_ctx.verify_certificate()
    
        assert exc.value.args[0][2] == 'unable to get issuer certificate'
        assert exc.value.certificate.get_subject().CN == 'intermediate'
    
        store_ctx.set_store(store_good)
>       assert store_ctx.verify_certificate() is None

tests/test_crypto.py:3504:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <OpenSSL.crypto.X509StoreContext object at 0x76b696d88958>

    def verify_certificate(self):
        """
            Verify a certificate in a context.
    
            .. versionadded:: 0.15
    
            :raises X509StoreContextError: If an error occurred when validating a
              certificate in the context. Sets ``certificate`` attribute to
              indicate which certificate caused the error.
            """
        # Always re-initialize the store context in case
        # :meth:`verify_certificate` is called multiple times.
        self._init()
        ret = _lib.X509_verify_cert(self._store_ctx)
        self._cleanup()
        if ret <= 0:
>           raise self._exception_from_context()
E           OpenSSL.crypto.X509StoreContextError: [10, 2, 'certificate has expired']

src/OpenSSL/crypto.py:1663: X509StoreContextError
_______________________________________________________________ TestContext.test_set_verify_callback_exception _______________________________________________________________

self = <tests.test_ssl.TestContext object at 0x76b692b19618>

    def test_set_verify_callback_exception(self):
        """
            If the verify callback passed to `Context.set_verify` raises an
            exception, verification fails and the exception is propagated to the
            caller of `Connection.do_handshake`.
            """
        serverContext = Context(TLSv1_METHOD)
        serverContext.use_privatekey(
            load_privatekey(FILETYPE_PEM, cleartextPrivateKeyPEM))
        serverContext.use_certificate(
            load_certificate(FILETYPE_PEM, cleartextCertificatePEM))
    
        clientContext = Context(TLSv1_METHOD)
    
        def verify_callback(*args):
            raise Exception("silly verify failure")
        clientContext.set_verify(VERIFY_PEER, verify_callback)
    
        with pytest.raises(Exception) as exc:
>           self._handshake_test(serverContext, clientContext)
E           Failed: DID NOT RAISE <class 'Exception'>

tests/test_ssl.py:1221: Failed
============================================================================ 53 tests deselected =============================================================================
====================================================== 6 failed, 421 passed, 13 skipped, 53 deselected in 36.08 seconds ======================================================
*** Error code 1

Let me know if I should file separate bug reports for any of those. Thanks!

@reaperhulk
Copy link
Member

Those should all be resolved outside of the segfault. #596 remains an issue because it appears libffi is buggy on NetBSD. Armin offered to help there, but he needs access to a system where he can replicate this so he can engage with the libffi maintainers if necessary. @0-wiz-0 if you have the ability to give him access to such a system then I'd recommend opening an issue on https://bitbucket.org/cffi/cffi and working with him. Otherwise we're stuck 😞

@alex alex modified the milestone: 17.2.0 Jun 30, 2017
@0-wiz-0
Copy link
Author

0-wiz-0 commented Jul 1, 2017

libffi is fixed, at least on NetBSD 8.99.1 with the latest libffi from pkgsrc, see libffi/libffi#294
I'm happy to give shell access to anyone who's interested in working on this, contact me privately with your ssh key.

@0-wiz-0
Copy link
Author

0-wiz-0 commented Jul 3, 2017

cffi is fixed by @jsonn (see https://bitbucket.org/cffi/cffi/issues/321/cffi-191-segmentation-fault-during-self). I'll report other test failures separately.

@0-wiz-0 0-wiz-0 closed this as completed Jul 3, 2017
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 16, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

No branches or pull requests

4 participants