spesmilo / electrum

Electrum Bitcoin Wallet
https://electrum.org
MIT License
7.43k stars 3.09k forks source link

Crash in function: __pthread_mutex_lock #2628

Closed hegjon closed 7 years ago

hegjon commented 7 years ago

There have been some automated crash reports on Fedora 25, I do not have more details than the stack-trace.

Electrum version: 2.8.2

Stack traces: https://retrace.fedoraproject.org/faf/reports/1719943/

Truncated backtrace:

Thread no. 1 (10 frames)
 #0 __pthread_mutex_lock at ../nptl/pthread_mutex_lock.c:67
 #1 _zbar_mutex_lock at zbar/mutex.h:128
 #2 proc_enter at zbar/processor.c:30
 #3 zbar_processor_request_size at zbar/processor.c:484
 #4 ffi_call_unix64 at ../src/x86/unix64.S:76
 #5 ffi_call at ../src/x86/ffi64.c:525
 #6 _call_function_pointer at /usr/src/debug/Python-2.7.13/Modules/_ctypes/callproc.c:841
 #7 _ctypes_callproc at /usr/src/debug/Python-2.7.13/Modules/_ctypes/callproc.c:1184
 #8 PyCFuncPtr_call at /usr/src/debug/Python-2.7.13/Modules/_ctypes/_ctypes.c:3979
 #9 PyObject_Call
hegjon commented 7 years ago

gdb backtrace:

warning: core file may not match specified executable file.
[New LWP 11067]
[New LWP 11089]
[New LWP 11078]
[New LWP 11070]
[New LWP 11081]
[New LWP 11088]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/python2 -s /usr/bin/electrum'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __GI___pthread_mutex_lock (mutex=mutex@entry=0xb165c20) at ../nptl/pthread_mutex_lock.c:67
67  ../nptl/pthread_mutex_lock.c: No such file or directory.
[Current thread is 1 (Thread 0x7f63353ff700 (LWP 11067))]

Thread 1 (Thread 0x7f63353ff700 (LWP 11067)):
#0  __GI___pthread_mutex_lock (mutex=mutex@entry=0xb165c20) at ../nptl/pthread_mutex_lock.c:67
        __PRETTY_FUNCTION__ = "__pthread_mutex_lock"
        type = <optimized out>
        id = <optimized out>
#1  0x00007f6317874ff2 in _zbar_mutex_lock (lock=0xb165c20) at zbar/mutex.h:128
No locals.
#2  proc_enter (proc=0xb165a50) at zbar/processor.c:30
No locals.
#3  zbar_processor_request_size (proc=0xb165a50, width=640, height=480) at zbar/processor.c:484
No locals.
#4  0x00007f6328645c58 in ffi_call_unix64 () at ../src/x86/unix64.S:76
No locals.
#5  0x00007f63286456ba in ffi_call (cif=cif@entry=0x7ffe2ef36d10, fn=fn@entry=0x7f6317874fd0 <zbar_processor_request_size>, rvalue=<optimized out>, rvalue@entry=0x7ffe2ef36c20, avalue=avalue@entry=0x7ffe2ef36bf0) at ../src/x86/ffi64.c:525
        classes = {X86_64_INTEGERSI_CLASS, 32611, 787705104, 32766}
        stack = <optimized out>
        argp = 0x7ffe2ef36ac0 "\n"
        arg_types = <optimized out>
        gprcount = 3
        ssecount = <optimized out>
        ngpr = 1
        nsse = 0
        i = <optimized out>
        avn = <optimized out>
        ret_in_memory = <optimized out>
        reg_args = <optimized out>
#6  0x00007f632885881f in _call_function_pointer (argcount=3, resmem=0x7ffe2ef36c20, restype=<optimized out>, atypes=<optimized out>, avalues=0x7ffe2ef36bf0, pProc=0x7f6317874fd0 <zbar_processor_request_size>, flags=4353) at /usr/src/debug/Python-2.7.13/Modules/_ctypes/callproc.c:841
        error_object = 0x0
        cc = 2
        _save = 0x55fe0a5790a0
        space = 0x7ffe2ef36e00
        cif = {abi = FFI_UNIX64, nargs = 3, arg_types = 0x7ffe2ef36bc0, rtype = 0x7f6328a86160, bytes = 0, flags = 10}
#7  _ctypes_callproc (pProc=pProc@entry=0x7f6317874fd0 <zbar_processor_request_size>, argtuple=argtuple@entry=(186014288, 640, 480), flags=4353, argtypes=argtypes@entry=0x0, restype=<_ctypes.PyCSimpleType at remote 0x55fe0a7c8980>, checker=0x0) at /usr/src/debug/Python-2.7.13/Modules/_ctypes/callproc.c:1184
        i = <optimized out>
        n = <optimized out>
        argcount = <optimized out>
        argtype_count = <optimized out>
        resbuf = <optimized out>
        args = 0x7ffe2ef36c40
        pa = <optimized out>
        atypes = <optimized out>
        rtype = <optimized out>
        avalues = <optimized out>
        retval = 0x0
#8  0x00007f6328852382 in PyCFuncPtr_call (self=<optimized out>, inargs=<optimized out>, kwds=<optimized out>) at /usr/src/debug/Python-2.7.13/Modules/_ctypes/_ctypes.c:3979
        restype = <optimized out>
        converters = <optimized out>
        checker = <optimized out>
        argtypes = <optimized out>
        dict = <optimized out>
        result = <optimized out>
        errcheck = <optimized out>
        pProc = <optimized out>
        inoutmask = 0
        outmask = 0
        numretvals = 0
#9  0x00007f6334eeadf3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
No symbol table info available.
#10 0x00007f6334f3f388 in do_call (nk=0, na=3, pp_stack=0x7ffe2ef36f10, func=<optimized out>) at /usr/src/debug/Python-2.7.13/Python/ceval.c:4646
        callargs = <optimized out>
        kwdict = <optimized out>
        result = 0x0
#11 call_function (oparg=<optimized out>, pp_stack=0x7ffe2ef36f10) at /usr/src/debug/Python-2.7.13/Python/ceval.c:4451
        func = <optimized out>
        w = <optimized out>
        na = 3
        nk = 0
        n = <optimized out>
        pfunc = 0x7f6329cb6208Python Exception <class 'gdb.error'> There is no member named ob_ival.: 

        x = <optimized out>
#12 PyEval_EvalFrameEx (f=f@entry=, throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.13/Python/ceval.c:3063
        sp = 0x7f6329cb6210
        opcode_targets = {0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f418ba <PyEval_EvalFrameEx+31658>, 0x7f6334f418bf <PyEval_EvalFrameEx+31663>, 0x7f6334f418c4 <PyEval_EvalFrameEx+31668>, 0x7f6334f418ce <PyEval_EvalFrameEx+31678>, 0x7f6334f418c9 <PyEval_EvalFrameEx+31673>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f4185f <PyEval_EvalFrameEx+31567>, 0x7f6334f418f2 <PyEval_EvalFrameEx+31714>, 0x7f6334f418f7 <PyEval_EvalFrameEx+31719>, 0x7f6334f418fc <PyEval_EvalFrameEx+31724>, 0x7f6334f41901 <PyEval_EvalFrameEx+31729>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f41906 <PyEval_EvalFrameEx+31734>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f4190b <PyEval_EvalFrameEx+31739>, 0x7f6334f41910 <PyEval_EvalFrameEx+31744>, 0x7f6334f41915 <PyEval_EvalFrameEx+31749>, 0x7f6334f41924 <PyEval_EvalFrameEx+31764>, 0x7f6334f41929 <PyEval_EvalFrameEx+31769>, 0x7f6334f4192e <PyEval_EvalFrameEx+31774>, 0x7f6334f41933 <PyEval_EvalFrameEx+31779>, 0x7f6334f4191f <PyEval_EvalFrameEx+31759>, 0x7f6334f4191a <PyEval_EvalFrameEx+31754>, 0x7f6334f4199d <PyEval_EvalFrameEx+31885>, 0x7f6334f41998 <PyEval_EvalFrameEx+31880>, 0x7f6334f419ca <PyEval_EvalFrameEx+31930>, 0x7f6334f419da <PyEval_EvalFrameEx+31946>, 0x7f6334f419e7 <PyEval_EvalFrameEx+31959>, 0x7f6334f419f4 <PyEval_EvalFrameEx+31972>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f41a04 <PyEval_EvalFrameEx+31988>, 0x7f6334f41a17 <PyEval_EvalFrameEx+32007>, 0x7f6334f3f7e9 <PyEval_EvalFrameEx+23257>, 0x7f6334f41a27 <PyEval_EvalFrameEx+32023>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3f1d6 <PyEval_EvalFrameEx+21702>, 0x7f6334f41a37 <PyEval_EvalFrameEx+32039>, 0x7f6334f3f224 <PyEval_EvalFrameEx+21780>, 0x7f6334f41a47 <PyEval_EvalFrameEx+32055>, 0x7f6334f3fd18 <PyEval_EvalFrameEx+24584>, 0x7f6334f419a7 <PyEval_EvalFrameEx+31895>, 0x7f6334f419ac <PyEval_EvalFrameEx+31900>, 0x7f6334f4198e <PyEval_EvalFrameEx+31870>, 0x7f6334f41993 <PyEval_EvalFrameEx+31875>, 0x7f6334f419a2 <PyEval_EvalFrameEx+31890>, 0x7f6334f41a57 <PyEval_EvalFrameEx+32071>, 0x7f6334f41a5c <PyEval_EvalFrameEx+32076>, 0x7f6334f41938 <PyEval_EvalFrameEx+31784>, 0x7f6334f4193d <PyEval_EvalFrameEx+31789>, 0x7f6334f41942 <PyEval_EvalFrameEx+31794>, 0x7f6334f41947 <PyEval_EvalFrameEx+31799>, 0x7f6334f4194c <PyEval_EvalFrameEx+31804>, 0x7f6334f41989 <PyEval_EvalFrameEx+31865>, 0x7f6334f3fe32 <PyEval_EvalFrameEx+24866>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f41a61 <PyEval_EvalFrameEx+32081>, 0x7f6334f3a87e <PyEval_EvalFrameEx+2926>, 0x7f6334f3e5f6 <PyEval_EvalFrameEx+18662>, 0x7f6334f3a86c <PyEval_EvalFrameEx+2908>, 0x7f6334f3e5e4 <PyEval_EvalFrameEx+18644>, 0x7f6334f419b1 <PyEval_EvalFrameEx+31905>, 0x7f6334f419b6 <PyEval_EvalFrameEx+31910>, 0x7f6334f419bb <PyEval_EvalFrameEx+31915>, 0x7f6334f419c0 <PyEval_EvalFrameEx+31920>, 0x7f6334f419c5 <PyEval_EvalFrameEx+31925>, 0x7f6334f3e8d7 <PyEval_EvalFrameEx+19399>, 0x7f6334f3fee7 <PyEval_EvalFrameEx+25047>, 0x7f6334f40c3e <PyEval_EvalFrameEx+28462>, 0x7f6334f3d55a <PyEval_EvalFrameEx+14410>, 0x7f6334f3fd8e <PyEval_EvalFrameEx+24702>, 0x7f6334f415b2 <PyEval_EvalFrameEx+30882>, 0x7f6334f3d8f7 <PyEval_EvalFrameEx+15335>, 0x7f6334f415b7 <PyEval_EvalFrameEx+30887>, 0x7f6334f41651 <PyEval_EvalFrameEx+31041>, 0x7f6334f41659 <PyEval_EvalFrameEx+31049>, 0x7f6334f41663 <PyEval_EvalFrameEx+31059>, 0x7f6334f41680 <PyEval_EvalFrameEx+31088>, 0x7f6334f4169a <PyEval_EvalFrameEx+31114>, 0x7f6334f3fe37 <PyEval_EvalFrameEx+24871>, 0x7f6334f41951 <PyEval_EvalFrameEx+31809>, 0x7f6334f416b6 <PyEval_EvalFrameEx+31142>, 0x7f6334f416cf <PyEval_EvalFrameEx+31167>, 0x7f6334f416eb <PyEval_EvalFrameEx+31195>, 0x7f6334f41707 <PyEval_EvalFrameEx+31223>, 0x7f6334f418d6 <PyEval_EvalFrameEx+31686>, 0x7f6334f41881 <PyEval_EvalFrameEx+31601>, 0x7f6334f41720 <PyEval_EvalFrameEx+31248>, 0x7f6334f417c6 <PyEval_EvalFrameEx+31414>, 0x7f6334f3fcc7 <PyEval_EvalFrameEx+24503>, 0x7f6334f3fce1 <PyEval_EvalFrameEx+24529>, 0x7f6334f3fcfb <PyEval_EvalFrameEx+24555>, 0x7f6334f3fd36 <PyEval_EvalFrameEx+24614>, 0x7f6334f3fd50 <PyEval_EvalFrameEx+24640>, 0x7f6334f3fd6f <PyEval_EvalFrameEx+24671>, 0x7f6334f3fd93 <PyEval_EvalFrameEx+24707>, 0x7f6334f3fdb0 <PyEval_EvalFrameEx+24736>, 0x7f6334f3fe00 <PyEval_EvalFrameEx+24816>, 0x7f6334f3fe19 <PyEval_EvalFrameEx+24841>, 0x7f6334f3be62 <PyEval_EvalFrameEx+8530>, 0x7f6334f3fdc8 <PyEval_EvalFrameEx+24760>, 0x7f6334f3fde4 <PyEval_EvalFrameEx+24788>, 0x7f6334f4173e <PyEval_EvalFrameEx+31278>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3fe54 <PyEval_EvalFrameEx+24900>, 0x7f6334f3fe70 <PyEval_EvalFrameEx+24928>, 0x7f6334f3fe8f <PyEval_EvalFrameEx+24959>, 0x7f6334f3feae <PyEval_EvalFrameEx+24990>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f41864 <PyEval_EvalFrameEx+31572>, 0x7f6334f4189e <PyEval_EvalFrameEx+31630>, 0x7f6334f41758 <PyEval_EvalFrameEx+31304>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f40c20 <PyEval_EvalFrameEx+28432>, 0x7f6334f3c6f2 <PyEval_EvalFrameEx+10722>, 0x7f6334f3ff91 <PyEval_EvalFrameEx+25217>, 0x7f6334f3ffcb <PyEval_EvalFrameEx+25275>, 0x7f6334f3ffae <PyEval_EvalFrameEx+25246>, 0x7f6334f41772 <PyEval_EvalFrameEx+31330>, 0x7f6334f4178f <PyEval_EvalFrameEx+31359>, 0x7f6334f417a9 <PyEval_EvalFrameEx+31385>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3feef <PyEval_EvalFrameEx+25055>, 0x7f6334f3ff27 <PyEval_EvalFrameEx+25111>, 0x7f6334f3ff6d <PyEval_EvalFrameEx+25181>, 0x7f6334f3fecd <PyEval_EvalFrameEx+25021>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3ca82 <PyEval_EvalFrameEx+11634>, 0x7f6334f4196d <PyEval_EvalFrameEx+31837>, 0x7f6334f3fd1d <PyEval_EvalFrameEx+24589>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297> <repeats 108 times>}
        stack_pointer = <optimized out>
        next_instr = <optimized out>
        opcode = 131
        oparg = <optimized out>
        why = WHY_NOT
        err = 0
        x = <optimized out>
        v = <optimized out>
        w = <optimized out>
        u = <optimized out>
        t = <optimized out>
        stream = 0x0
        fastlocals = 0x7f6329cb61c8
        freevars = <optimized out>
        retval = <optimized out>
        tstate = <optimized out>
        co = <optimized out>
        instr_ub = <optimized out>
        instr_lb = <optimized out>
        instr_prev = <optimized out>
        first_instr = <optimized out>
        names = <optimized out>
        consts = <optimized out>
#13 0x00007f6334f4363c in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=1, kws=0x7f63251debb0, kwcount=0, defs=0x7f63251db9b0, defcount=4, closure=0x0) at /usr/src/debug/Python-2.7.13/Python/ceval.c:3661
Python Exception <class 'gdb.error'> There is no member named ob_ival.: 
        f = 
        retval = 0x0
        fastlocals = 0x7f6329cb61c8
        freevars = 0x7f6329cb6208
        tstate = 0x55fe0a5790a0
        x = <optimized out>
        u = <optimized out>
#14 0x00007f6334f3fb6c in fast_function (nk=0, na=<optimized out>, n=<optimized out>, pp_stack=0x7ffe2ef37110, func=<optimized out>) at /usr/src/debug/Python-2.7.13/Python/ceval.c:4524
        co = <optimized out>
        nd = <optimized out>
        globals = <optimized out>
        argdefs = <optimized out>
        d = <optimized out>
#15 call_function (oparg=<optimized out>, pp_stack=0x7ffe2ef37110) at /usr/src/debug/Python-2.7.13/Python/ceval.c:4449
        func = <optimized out>
        w = <optimized out>
        na = <optimized out>
        nk = 0
        n = <optimized out>
        pfunc = 0x7f63251deba0
        x = <optimized out>
#16 PyEval_EvalFrameEx (f=f@entry=Frame 0x7f63251dea00, for file /usr/lib/python2.7/site-packages/electrum_gui/qt/qrtextedit.py, line 52, in qr_input (self=<ScanQRTextEdit(buttons=[<QToolButton at remote 0x7f62f4048478>, <QToolButton at remote 0x7f62f40482b0>], text=<built-in method toPlainText of ScanQRTextEdit object at remote 0x7f62f40485a8>, setText=<built-in method setPlainText of ScanQRTextEdit object at remote 0x7f62f40485a8>) at remote 0x7f62f40485a8>, qrscanner=<module at remote 0x7f62f4029440>, get_config=<function at remote 0x7f63263138c0>), throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.13/Python/ceval.c:3063
        sp = 0x7f63251debb0
        opcode_targets = {0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f418ba <PyEval_EvalFrameEx+31658>, 0x7f6334f418bf <PyEval_EvalFrameEx+31663>, 0x7f6334f418c4 <PyEval_EvalFrameEx+31668>, 0x7f6334f418ce <PyEval_EvalFrameEx+31678>, 0x7f6334f418c9 <PyEval_EvalFrameEx+31673>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f4185f <PyEval_EvalFrameEx+31567>, 0x7f6334f418f2 <PyEval_EvalFrameEx+31714>, 0x7f6334f418f7 <PyEval_EvalFrameEx+31719>, 0x7f6334f418fc <PyEval_EvalFrameEx+31724>, 0x7f6334f41901 <PyEval_EvalFrameEx+31729>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f41906 <PyEval_EvalFrameEx+31734>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f4190b <PyEval_EvalFrameEx+31739>, 0x7f6334f41910 <PyEval_EvalFrameEx+31744>, 0x7f6334f41915 <PyEval_EvalFrameEx+31749>, 0x7f6334f41924 <PyEval_EvalFrameEx+31764>, 0x7f6334f41929 <PyEval_EvalFrameEx+31769>, 0x7f6334f4192e <PyEval_EvalFrameEx+31774>, 0x7f6334f41933 <PyEval_EvalFrameEx+31779>, 0x7f6334f4191f <PyEval_EvalFrameEx+31759>, 0x7f6334f4191a <PyEval_EvalFrameEx+31754>, 0x7f6334f4199d <PyEval_EvalFrameEx+31885>, 0x7f6334f41998 <PyEval_EvalFrameEx+31880>, 0x7f6334f419ca <PyEval_EvalFrameEx+31930>, 0x7f6334f419da <PyEval_EvalFrameEx+31946>, 0x7f6334f419e7 <PyEval_EvalFrameEx+31959>, 0x7f6334f419f4 <PyEval_EvalFrameEx+31972>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f41a04 <PyEval_EvalFrameEx+31988>, 0x7f6334f41a17 <PyEval_EvalFrameEx+32007>, 0x7f6334f3f7e9 <PyEval_EvalFrameEx+23257>, 0x7f6334f41a27 <PyEval_EvalFrameEx+32023>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3f1d6 <PyEval_EvalFrameEx+21702>, 0x7f6334f41a37 <PyEval_EvalFrameEx+32039>, 0x7f6334f3f224 <PyEval_EvalFrameEx+21780>, 0x7f6334f41a47 <PyEval_EvalFrameEx+32055>, 0x7f6334f3fd18 <PyEval_EvalFrameEx+24584>, 0x7f6334f419a7 <PyEval_EvalFrameEx+31895>, 0x7f6334f419ac <PyEval_EvalFrameEx+31900>, 0x7f6334f4198e <PyEval_EvalFrameEx+31870>, 0x7f6334f41993 <PyEval_EvalFrameEx+31875>, 0x7f6334f419a2 <PyEval_EvalFrameEx+31890>, 0x7f6334f41a57 <PyEval_EvalFrameEx+32071>, 0x7f6334f41a5c <PyEval_EvalFrameEx+32076>, 0x7f6334f41938 <PyEval_EvalFrameEx+31784>, 0x7f6334f4193d <PyEval_EvalFrameEx+31789>, 0x7f6334f41942 <PyEval_EvalFrameEx+31794>, 0x7f6334f41947 <PyEval_EvalFrameEx+31799>, 0x7f6334f4194c <PyEval_EvalFrameEx+31804>, 0x7f6334f41989 <PyEval_EvalFrameEx+31865>, 0x7f6334f3fe32 <PyEval_EvalFrameEx+24866>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f41a61 <PyEval_EvalFrameEx+32081>, 0x7f6334f3a87e <PyEval_EvalFrameEx+2926>, 0x7f6334f3e5f6 <PyEval_EvalFrameEx+18662>, 0x7f6334f3a86c <PyEval_EvalFrameEx+2908>, 0x7f6334f3e5e4 <PyEval_EvalFrameEx+18644>, 0x7f6334f419b1 <PyEval_EvalFrameEx+31905>, 0x7f6334f419b6 <PyEval_EvalFrameEx+31910>, 0x7f6334f419bb <PyEval_EvalFrameEx+31915>, 0x7f6334f419c0 <PyEval_EvalFrameEx+31920>, 0x7f6334f419c5 <PyEval_EvalFrameEx+31925>, 0x7f6334f3e8d7 <PyEval_EvalFrameEx+19399>, 0x7f6334f3fee7 <PyEval_EvalFrameEx+25047>, 0x7f6334f40c3e <PyEval_EvalFrameEx+28462>, 0x7f6334f3d55a <PyEval_EvalFrameEx+14410>, 0x7f6334f3fd8e <PyEval_EvalFrameEx+24702>, 0x7f6334f415b2 <PyEval_EvalFrameEx+30882>, 0x7f6334f3d8f7 <PyEval_EvalFrameEx+15335>, 0x7f6334f415b7 <PyEval_EvalFrameEx+30887>, 0x7f6334f41651 <PyEval_EvalFrameEx+31041>, 0x7f6334f41659 <PyEval_EvalFrameEx+31049>, 0x7f6334f41663 <PyEval_EvalFrameEx+31059>, 0x7f6334f41680 <PyEval_EvalFrameEx+31088>, 0x7f6334f4169a <PyEval_EvalFrameEx+31114>, 0x7f6334f3fe37 <PyEval_EvalFrameEx+24871>, 0x7f6334f41951 <PyEval_EvalFrameEx+31809>, 0x7f6334f416b6 <PyEval_EvalFrameEx+31142>, 0x7f6334f416cf <PyEval_EvalFrameEx+31167>, 0x7f6334f416eb <PyEval_EvalFrameEx+31195>, 0x7f6334f41707 <PyEval_EvalFrameEx+31223>, 0x7f6334f418d6 <PyEval_EvalFrameEx+31686>, 0x7f6334f41881 <PyEval_EvalFrameEx+31601>, 0x7f6334f41720 <PyEval_EvalFrameEx+31248>, 0x7f6334f417c6 <PyEval_EvalFrameEx+31414>, 0x7f6334f3fcc7 <PyEval_EvalFrameEx+24503>, 0x7f6334f3fce1 <PyEval_EvalFrameEx+24529>, 0x7f6334f3fcfb <PyEval_EvalFrameEx+24555>, 0x7f6334f3fd36 <PyEval_EvalFrameEx+24614>, 0x7f6334f3fd50 <PyEval_EvalFrameEx+24640>, 0x7f6334f3fd6f <PyEval_EvalFrameEx+24671>, 0x7f6334f3fd93 <PyEval_EvalFrameEx+24707>, 0x7f6334f3fdb0 <PyEval_EvalFrameEx+24736>, 0x7f6334f3fe00 <PyEval_EvalFrameEx+24816>, 0x7f6334f3fe19 <PyEval_EvalFrameEx+24841>, 0x7f6334f3be62 <PyEval_EvalFrameEx+8530>, 0x7f6334f3fdc8 <PyEval_EvalFrameEx+24760>, 0x7f6334f3fde4 <PyEval_EvalFrameEx+24788>, 0x7f6334f4173e <PyEval_EvalFrameEx+31278>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3fe54 <PyEval_EvalFrameEx+24900>, 0x7f6334f3fe70 <PyEval_EvalFrameEx+24928>, 0x7f6334f3fe8f <PyEval_EvalFrameEx+24959>, 0x7f6334f3feae <PyEval_EvalFrameEx+24990>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f41864 <PyEval_EvalFrameEx+31572>, 0x7f6334f4189e <PyEval_EvalFrameEx+31630>, 0x7f6334f41758 <PyEval_EvalFrameEx+31304>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f40c20 <PyEval_EvalFrameEx+28432>, 0x7f6334f3c6f2 <PyEval_EvalFrameEx+10722>, 0x7f6334f3ff91 <PyEval_EvalFrameEx+25217>, 0x7f6334f3ffcb <PyEval_EvalFrameEx+25275>, 0x7f6334f3ffae <PyEval_EvalFrameEx+25246>, 0x7f6334f41772 <PyEval_EvalFrameEx+31330>, 0x7f6334f4178f <PyEval_EvalFrameEx+31359>, 0x7f6334f417a9 <PyEval_EvalFrameEx+31385>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3feef <PyEval_EvalFrameEx+25055>, 0x7f6334f3ff27 <PyEval_EvalFrameEx+25111>, 0x7f6334f3ff6d <PyEval_EvalFrameEx+25181>, 0x7f6334f3fecd <PyEval_EvalFrameEx+25021>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297>, 0x7f6334f3ca82 <PyEval_EvalFrameEx+11634>, 0x7f6334f4196d <PyEval_EvalFrameEx+31837>, 0x7f6334f3fd1d <PyEval_EvalFrameEx+24589>, 0x7f6334f3a9f1 <PyEval_EvalFrameEx+3297> <repeats 108 times>}
        stack_pointer = <optimized out>
        next_instr = <optimized out>
        opcode = 131
        oparg = <optimized out>
        why = WHY_NOT
        err = 0
        x = <optimized out>
        v = <optimized out>
        w = <optimized out>
        u = <optimized out>
        t = <optimized out>
        stream = 0x0
        fastlocals = 0x7f63251deb78
        freevars = <optimized out>
        retval = <optimized out>
        tstate = <optimized out>
        co = <optimized out>
        instr_ub = <optimized out>
        instr_lb = <optimized out>
        instr_prev = <optimized out>
        first_instr = <optimized out>
        names = <optimized out>
        consts = <optimized out>
#17 0x00007f6334f4363c in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=1, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at /usr/src/debug/Python-2.7.13/Python/ceval.c:3661
        f = Frame 0x7f63251dea00, for file /usr/lib/python2.7/site-packages/electrum_gui/qt/qrtextedit.py, line 52, in qr_input (self=<ScanQRTextEdit(buttons=[<QToolButton at remote 0x7f62f4048478>, <QToolButton at remote 0x7f62f40482b0>], text=<built-in method toPlainText of ScanQRTextEdit object at remote 0x7f62f40485a8>, setText=<built-in method setPlainText of ScanQRTextEdit object at remote 0x7f62f40485a8>) at remote 0x7f62f40485a8>, qrscanner=<module at remote 0x7f62f4029440>, get_config=<function at remote 0x7f63263138c0>)
        retval = 0x0
        fastlocals = 0x7f63251deb78
        freevars = 0x7f63251deba0
        tstate = 0x55fe0a5790a0
        x = <optimized out>
        u = <optimized out>
#18 0x00007f6334ecab6e in function_call.lto_priv () from /lib64/libpython2.7.so.1.0
No symbol table info available.
#19 0x00007f6334eeadf3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
No symbol table info available.
#20 0x00007f6334ee9b2e in instancemethod_call.lto_priv () from /lib64/libpython2.7.so.1.0
No symbol table info available.
#21 0x00007f6334eeadf3 in PyObject_Call () from /lib64/libpython2.7.so.1.0
No symbol table info available.
#22 0x00007f6334f39727 in PyEval_CallObjectWithKeywords (func=func@entry=<instancemethod at remote 0x7f63262a24b0>, arg=arg@entry=(), kw=kw@entry=0x0) at /usr/src/debug/Python-2.7.13/Python/ceval.c:4298
Python Exception <class 'gdb.error'> There is no member named ob_ival.: 
        result = <optimized out>
#23 0x00007f62ee516ca0 in sip_api_invoke_slot_ex (slot=<optimized out>, sigargs=, no_receiver_check=<optimized out>) at /usr/src/debug/sip-4.18.1/siplib/qtlib.c:222
        nsa = <optimized out>
        xtype = <type at remote 0x7f63351cea40>
        xvalue = 'qr_input() takes exactly 1 argument (2 given)'
        xtb = 0x0
        resobj = <optimized out>
        sa = ()
        oxtype = <type at remote 0x7f63351cea40>
        oxvalue = 'qr_input() takes exactly 1 argument (2 given)'
        sfunc = <instancemethod at remote 0x7f63262a24b0>
        sref = <optimized out>
#24 0x00007f62ee22bf02 in PyQtProxy::invokeSlot(qpycore_slot const&, void**, int) () from /usr/lib64/python2.7/site-packages/PyQt4/QtCore.so
No symbol table info available.
#25 0x00007f62ee22c26d in PyQtProxy::unislot(void**) () from /usr/lib64/python2.7/site-packages/PyQt4/QtCore.so
No symbol table info available.
#26 0x00007f62ee22ce4d in PyQtProxy::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/python2.7/site-packages/PyQt4/QtCore.so
No symbol table info available.
#27 0x00007f63144a21be in QMetaObject::activate (sender=sender@entry=0x55fe0b25a100, m=m@entry=0x7f62f65c8900 <QAbstractButton::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffe2ef377f0) at kernel/qobject.cpp:3597
        method = 4
        receiverInSameThread = true
        previousSender = 0x0
        callFunction = 0x0
        receiver = 0x55fe0b163af0
        currentSender = {sender = 0x55fe0b25a100, signal = 29, ref = 1}
        method_relative = <optimized out>
        c = 0x55fe0b16da40
        last = 0x55fe0b16da40
        signalOffset = <optimized out>
        methodOffset = <optimized out>
        signal_index = <optimized out>
        signal_absolute_index = <optimized out>
        empty_argv = {0x0}
        currentThreadId = 140064071874304
        locker = {val = 94549595946416}
        connectionLists = <optimized out>
        list = 0x55fe0b16dd50
#28 0x00007f62f6154622 in QAbstractButton::clicked (this=this@entry=0x55fe0b25a100, _t1=<optimized out>) at .moc/release-shared/moc_qabstractbutton.cpp:219
        _a = {0x0, 0x7ffe2ef377ec}
#29 0x00007f62f5e8b0f3 in QAbstractButtonPrivate::emitClicked (this=this@entry=0x55fe0b163430) at widgets/qabstractbutton.cpp:548
        guard = {o = 0x55fe0b25a100}
#30 0x00007f62f5e8c504 in QAbstractButtonPrivate::click (this=this@entry=0x55fe0b163430) at widgets/qabstractbutton.cpp:541
        changeState = <optimized out>
        guard = {o = 0x55fe0b25a100}
#31 0x00007f62f5e8c614 in QAbstractButton::mouseReleaseEvent (this=this@entry=0x55fe0b25a100, e=e@entry=0x7ffe2ef37dd0) at widgets/qabstractbutton.cpp:1123
        d = 0x55fe0b163430
#32 0x00007f62f5f51b5a in QToolButton::mouseReleaseEvent (this=this@entry=0x55fe0b25a100, e=e@entry=0x7ffe2ef37dd0) at widgets/qtoolbutton.cpp:723
        d = 0x55fe0b163430
#33 0x00007f62f681906b in sipQToolButton::mouseReleaseEvent (this=0x55fe0b25a100, a0=0x7ffe2ef37dd0) at sipQtGuiQToolButton.cpp:1023
        sipGILState = PyGILState_UNLOCKED
        sipMeth = <optimized out>
#34 0x00007f62f5b0d710 in QWidget::event (this=0x55fe0b25a100, event=0x7ffe2ef37dd0) at kernel/qwidget.cpp:8775
        d = <optimized out>
#35 0x00007f62f5e8d651 in QAbstractButton::event (this=this@entry=0x55fe0b25a100, e=e@entry=0x7ffe2ef37dd0) at widgets/qabstractbutton.cpp:1082
No locals.
#36 0x00007f62f5f51bf7 in QToolButton::event (this=this@entry=0x55fe0b25a100, event=event@entry=0x7ffe2ef37dd0) at widgets/qtoolbutton.cpp:1168
No locals.
#37 0x00007f62f681a1bb in sipQToolButton::event (this=0x55fe0b25a100, a0=0x7ffe2ef37dd0) at sipQtGuiQToolButton.cpp:1166
        sipGILState = (unknown: 22014)
        sipMeth = <optimized out>
#38 0x00007f62f5ab6ecc in QApplicationPrivate::notify_helper (this=0x55fe0ac7b960, receiver=0x55fe0b25a100, e=0x7ffe2ef37dd0) at kernel/qapplication.cpp:4565
        consumed = <optimized out>
#39 0x00007f62f5abf547 in QApplication::notify (this=this@entry=0x55fe0aebaf60, receiver=receiver@entry=0x55fe0b25a100, e=e@entry=0x7ffe2ef37dd0) at kernel/qapplication.cpp:4108
        d = <optimized out>
        res = false
#40 0x00007f62f6b4fe66 in sipQApplication::notify (this=0x55fe0aebaf60, a0=0x55fe0b25a100, a1=0x7ffe2ef37dd0) at sipQtGuiQApplication.cpp:356
        sipGILState = (unknown: 32766)
        sipMeth = <optimized out>
#41 0x00007f631448deed in QCoreApplication::notifyInternal (this=0x55fe0aebaf60, receiver=0x55fe0b25a100, event=0x7ffe2ef37dd0) at kernel/qcoreapplication.cpp:955
        result = false
        cbdata = {0x55fe0b25a100, 0x7ffe2ef37dd0, 0x7ffe2ef37c0f}
        d = <optimized out>
        threadData = 0x55fe0ae14260
        returnValue = <optimized out>
#42 0x00007f62f5abd56b in QApplicationPrivate::sendMouseEvent (receiver=0x55fe0b25a100, event=0x7ffe2ef37dd0, alienWidget=0x55fe0b25a100, nativeWidget=0x55fe0b116380, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true) at ../../src/corelib/kernel/qcoreapplication.h:231
        receiverGuard = {o = 0x55fe0b25a100}
        nativeGuard = {o = 0x55fe0b116380}
        alienGuard = {o = 0x55fe0b25a100}
        activePopupWidget = {o = 0x0}
        graphicsWidget = false
        wasLeaveAfterRelease = <optimized out>
        result = <optimized out>
#43 0x00007f62f5b37fe9 in QETWidget::translateMouseEvent (this=0x55fe0b116380, event=<optimized out>) at kernel/qapplication_x11.cpp:4546
        d = <optimized out>
        type = QEvent::MouseButtonRelease
        pos = {xp = 9, yp = 16}
        globalPos = {xp = 1192, yp = 527}
        button = Qt::LeftButton
        buttons = <optimized out>
        modifiers = {i = 0}
        nextEvent = {type = 787709584, xany = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584}, xkey = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, root = 94549590865056, subwindow = 94549590865056, time = 140729686130388, x = 183218050, y = 22014, x_root = 0, y_root = 0, state = 4139468362, keycode = 32610, same_screen = -173036928}, xbutton = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, root = 94549590865056, subwindow = 94549590865056, time = 140729686130388, x = 183218050, y = 22014, x_root = 0, y_root = 0, state = 4139468362, button = 32610, same_screen = -173036928}, xmotion = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, root = 94549590865056, subwindow = 94549590865056, time = 140729686130388, x = 183218050, y = 22014, x_root = 0, y_root = 0, state = 4139468362, is_hint = 98 'b', same_screen = -173036928}, xcrossing = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, root = 94549590865056, subwindow = 94549590865056, time = 140729686130388, x = 183218050, y = 22014, x_root = 0, y_root = 0, mode = -155498934, detail = 32610, same_screen = -173036928, focus = 32610, state = 11}, xfocus = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, mode = 180810912, detail = 22014}, xexpose = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, x = 180810912, y = 22014, width = 180810912, height = 22014, count = 787709652}, xgraphicsexpose = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, drawable = 94549595811584, x = 180810912, y = 22014, width = 180810912, height = 22014, count = 787709652, major_code = 32766, minor_code = 183218050}, xnoexpose = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, drawable = 94549595811584, major_code = 180810912, minor_code = 22014}, xvisibility = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, state = 180810912}, xcreatewindow = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, parent = 94549595811584, window = 94549590865056, x = 180810912, y = 22014, width = 787709652, height = 32766, border_width = 183218050, override_redirect = 22014}, xdestroywindow = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, event = 94549595811584, window = 94549590865056}, xunmap = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, event = 94549595811584, window = 94549590865056, from_configure = 180810912}, xmap = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, event = 94549595811584, window = 94549590865056, override_redirect = 180810912}, xmaprequest = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, parent = 94549595811584, window = 94549590865056}, xreparent = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, event = 94549595811584, window = 94549590865056, parent = 94549590865056, x = 787709652, y = 32766, override_redirect = 183218050}, xconfigure = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, event = 94549595811584, window = 94549590865056, x = 180810912, y = 22014, width = 787709652, height = 32766, border_width = 183218050, above = 0, override_redirect = -155498934}, xgravity = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, event = 94549595811584, window = 94549590865056, x = 180810912, y = 22014}, xresizerequest = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, width = 180810912, height = 22014}, xconfigurerequest = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, parent = 94549595811584, window = 94549590865056, x = 180810912, y = 22014, width = 787709652, height = 32766, border_width = 183218050, above = 0, detail = -155498934, value_mask = 140063005452928}, xcirculate = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, event = 94549595811584, window = 94549590865056, place = 180810912}, xcirculaterequest = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, parent = 94549595811584, window = 94549590865056, place = 180810912}, xproperty = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, atom = 94549590865056, time = 94549590865056, state = 787709652}, xselectionclear = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, selection = 94549590865056, time = 94549590865056}, xselectionrequest = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, owner = 94549595811584, requestor = 94549590865056, selection = 94549590865056, target = 140729686130388, property = 94549593272194, time = 0}, xselection = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, requestor = 94549595811584, selection = 94549590865056, target = 94549590865056, property = 140729686130388, time = 94549593272194}, xcolormap = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, colormap = 94549590865056, c_new = 180810912, state = 22014}, xclient = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, message_type = 94549590865056, format = 180810912, data = {b = "\324~\363.\376\177\000\000\202\257\353\n\376U\000\000\000\000\000", s = {32468, 12019, 32766, 0, -20606, 2795, 22014, 0, 0, 0}, l = {140729686130388, 94549593272194, 0, 140063022990922, 140063005452928}}}, xmapping = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, request = 180810912, first_keycode = 22014, count = 180810912}, xerror = {type = 787709584, display = 0x55fe0b116380, resourceid = 140062881718496, serial = 6860480516062521088, error_code = 0 '\000', request_code = 111 'o', minor_code = 18 '\022'}, xkeymap = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, window = 94549595811584, key_vector = "\240\364\306\n\376U\000\000\240\364\306\n\376U\000\000\324~\363.\376\177\000\000\202\257\353\n\376U\000"}, xgeneric = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, extension = 185757440, evtype = 22014}, xcookie = {type = 787709584, serial = 94549595743104, send_event = -296771360, display = 0x5f3552ae54652700, extension = 185757440, evtype = 22014, cookie = 180810912, data = 0x55fe0ac6f4a0}, pad = {140729686130320, 94549595743104, 140062881718496, 6860480516062521088, 94549595811584, 94549590865056, 94549590865056, 140729686130388, 94549593272194, 0, 140063022990922, 140063005452928, 11, 94549593272160, 140729686130992, 0, 140063522389952, 94549596276352, 0, 140063022580955, 140729686130992, 6860480516062521088, 94549595743104, 140063522386136}}
#44 0x00007f62f5b3699c in QApplication::x11ProcessEvent (this=0x55fe0aebaf60, event=event@entry=0x7ffe2ef38130) at kernel/qapplication_x11.cpp:3663
        d = 0x55fe0ac7b960
        loopLevelCounter = {threadData = 0x55fe0ae14260}
        widget = 0x55fe0b116380
        keywidget = <optimized out>
        grabbed = <optimized out>
#45 0x00007f62f5b5f409 in x11EventSourceDispatch (s=0x55fe0ae05800, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:148
        event = {type = 5, xany = {type = 5, serial = 7479, send_event = 0, display = 0x55fe0ac74bb0, window = 81788970}, xkey = {type = 5, serial = 7479, send_event = 0, display = 0x55fe0ac74bb0, window = 81788970, root = 524, subwindow = 0, time = 1006153828, x = 532, y = 169, x_root = 1192, y_root = 527, state = 256, keycode = 1, same_screen = 1}, xbutton = {type = 5, serial = 7479, send_event = 0, display = 0x55fe0ac74bb0, window = 81788970, root = 524, subwindow = 0, time = 1006153828, x = 532, y = 169, x_root = 1192, y_root = 527, state = 256, button = 1, same_screen = 1}, xmotion = {type = 5, serial = 7479, send_event = 0, display = 0x55fe0ac74bb0, window = 81788970, root = 524, subwindow = 0, time = 1006153828, x = 532, y = 169, x_root = 1192, y_root = 527, state = 256, is_hint = 1 '\001', same_screen = 1}, xcrossing = {type = 5, serial = 7479, send_event = 0, display = 0x55fe0ac74bb0, window = 81788970, root = 524, subwindow = 0, time = 1006153828, x = 532, y = 169, x_root = 1192, y_root = 527, mode = 256, detail = 1, same_screen = 1, focus = 1, state = 0}, xfocus = {type = 5, serial = 7479, send_event = 0, display = 0x55fe0ac74bb0, window = 81788970, mode = 524, detail = 0}, xexpose = {type = 5, serial = 7479, send_event = 0, display = 0x55fe0ac74bb0, window = 81788970, x = 524, y = 0, width = 0, height = 0, count = 1006153828}, xgraphicsexpose = {type = 5, serial = 7479, send_event = 0, display = 0x55fe0ac74bb0, drawable = 81788970, x = 524, y = 0, width = 0, height = 0, count = 1006153828, major_code = 0, minor_code = 532}, xnoexpose = {type = 5, serial = 7479, send_event = 0, display = 0x55fe0ac74bb0, drawable = 81788970, major_code = 524, minor_code = 0}, xvisibility = {type = 5, serial = 7479, send_event = 0
Timeout exceeded: 240 seconds, killing gdb.
Looks like gdb hung while generating backtrace.
This may be a bug in gdb. Consider submitting a bug report to gdb developers.
Please attach coredump from this crash to the bug report if you do.
ecdsa commented 7 years ago

is zar is compiled with video support on fedora? does the qr scanner button work?

hegjon commented 7 years ago

Thanks, it segfaults on my machine when I press Read QR code in the send tab. I will investigate more this weekend

ecdsa commented 7 years ago

any news on that?

hegjon commented 7 years ago

It works when I run it under valgrind, so maybe a bug in zbar?

Here is a log after I open and close the qr scanner button:

$ valgrind electrum
==10572== Memcheck, a memory error detector
==10572== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==10572== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==10572== Command: /usr/bin/electrum
==10572== 
"sni-qt/10572" WARN  08:30:38.550 void StatusNotifierItemFactory::connectToSnw() Invalid interface to SNW_SERVICE 
==10572== Syscall param writev(vector[...]) points to uninitialised byte(s)
==10572==    at 0x5CC166D: ??? (in /usr/lib64/libc-2.25.so)
==10572==    by 0x21D13F86: ??? (in /usr/lib64/libxcb.so.1.1.0)
==10572==    by 0x21D14384: ??? (in /usr/lib64/libxcb.so.1.1.0)
==10572==    by 0x21D1440C: xcb_writev (in /usr/lib64/libxcb.so.1.1.0)
==10572==    by 0x1F919205: _XSend (in /usr/lib64/libX11.so.6.3.0)
==10572==    by 0x1F91957F: _XFlush (in /usr/lib64/libX11.so.6.3.0)
==10572==    by 0x1F8FA879: XFlush (in /usr/lib64/libX11.so.6.3.0)
==10572==    by 0x1E6E03DF: QWidget::setCursor(QCursor const&) (in /usr/lib64/libQtGui.so.4.8.7)
==10572==    by 0x1EAF360C: QSizeGrip::moveEvent(QMoveEvent*) (in /usr/lib64/libQtGui.so.4.8.7)
==10572==    by 0x1E6E7987: QWidget::event(QEvent*) (in /usr/lib64/libQtGui.so.4.8.7)
==10572==    by 0x1E691CDB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQtGui.so.4.8.7)
==10572==    by 0x1E698E46: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQtGui.so.4.8.7)
==10572==  Address 0x1573d4d0 is 192 bytes inside a block of size 16,384 alloc'd
==10572==    at 0x4C30A1E: calloc (vg_replace_malloc.c:711)
==10572==    by 0x1F9092D5: XOpenDisplay (in /usr/lib64/libX11.so.6.3.0)
==10572==    by 0x1E70D11B: ??? (in /usr/lib64/libQtGui.so.4.8.7)
==10572==    by 0x1E696245: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (in /usr/lib64/libQtGui.so.4.8.7)
==10572==    by 0x1E6964EE: QApplication::QApplication(int&, char**, int) (in /usr/lib64/libQtGui.so.4.8.7)
==10572==    by 0x1DFE9E7D: ??? (in /usr/lib64/python2.7/site-packages/PyQt4/QtGui.so)
==10572==    by 0x1DFEA065: ??? (in /usr/lib64/python2.7/site-packages/PyQt4/QtGui.so)
==10572==    by 0x225C0582: ??? (in /usr/lib64/python2.7/site-packages/sip.so)
==10572==    by 0x4F20E33: ??? (in /usr/lib64/libpython2.7.so.1.0)
==10572==    by 0x4ED4EA2: PyObject_Call (in /usr/lib64/libpython2.7.so.1.0)
==10572==    by 0x4FB7883: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==10572==    by 0x4FBC827: PyEval_EvalCodeEx (in /usr/lib64/libpython2.7.so.1.0)
==10572== 

==10572== Conditional jump or move depends on uninitialised value(s)
==10572==    at 0x366A7267: _zbar_processor_set_visible (x.c:263)
==10572==    by 0x3668928E: zbar_processor_set_visible (processor.c:541)
==10572==    by 0x12954BDD: ffi_call_unix64 (in /usr/lib64/libffi.so.6.0.2)
==10572==    by 0x1295454E: ffi_call (in /usr/lib64/libffi.so.6.0.2)
==10572==    by 0x12741324: _ctypes_callproc (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==10572==    by 0x1273B05D: ??? (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==10572==    by 0x4ED4EA2: PyObject_Call (in /usr/lib64/libpython2.7.so.1.0)
==10572==    by 0x4FB7883: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==10572==    by 0x4FBC827: PyEval_EvalCodeEx (in /usr/lib64/libpython2.7.so.1.0)
==10572==    by 0x4FB9862: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==10572==    by 0x4FBA1C8: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==10572==    by 0x4FBC827: PyEval_EvalCodeEx (in /usr/lib64/libpython2.7.so.1.0)
==10572== 

==10572== Conditional jump or move depends on uninitialised value(s)
==10572==    at 0x36688EB9: _zbar_processor_handle_input (processor.c:180)
==10572==    by 0x366A70C8: x_handle_event (x.c:68)
==10572==    by 0x366A70C8: x_handle_events (x.c:109)
==10572==    by 0x366A70C8: x_connection_handler (x.c:120)
==10572==    by 0x366A3A1E: proc_poll_inputs (posix.c:237)
==10572==    by 0x366A3A1E: _zbar_processor_input_wait (posix.c:268)
==10572==    by 0x3668A753: proc_wait_unthreaded (lock.c:184)
==10572==    by 0x3668A753: _zbar_processor_wait (lock.c:204)
==10572==    by 0x36689FE2: zbar_process_one (processor.c:653)
==10572==    by 0x12954BDD: ffi_call_unix64 (in /usr/lib64/libffi.so.6.0.2)
==10572==    by 0x1295454E: ffi_call (in /usr/lib64/libffi.so.6.0.2)
==10572==    by 0x12741324: _ctypes_callproc (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==10572==    by 0x1273B05D: ??? (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==10572==    by 0x4ED4EA2: PyObject_Call (in /usr/lib64/libpython2.7.so.1.0)
==10572==    by 0x4FB7883: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==10572==    by 0x4FBC827: PyEval_EvalCodeEx (in /usr/lib64/libpython2.7.so.1.0)

These two last warnings pops up when I click on the qr scanner button and when I close the zbar webcam window.

zbar version:

$ rpm -qi zbar
Name        : zbar
Version     : 0.10
Release     : 29.fc26
Architecture: x86_64
Install Date: Tue 18 Jul 2017 02:51:51 PM CEST
Group       : User Interface/X Hardware Support
Size        : 303759
License     : LGPLv2+
Signature   : RSA/SHA256, Tue 04 Apr 2017 02:49:08 AM CEST, Key ID 812a6b4b64dab85d
Source RPM  : zbar-0.10-29.fc26.src.rpm
Build Date  : Tue 04 Apr 2017 02:18:01 AM CEST
Build Host  : buildvm-32.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://zbar.sourceforge.net/
Summary     : Bar code reader
Description :
A layered barcode scanning and decoding library. Supports EAN, UPC, Code 128,
Code 39 and Interleaved 2 of 5.
Includes applications for decoding captured barcode images and using a video
device (eg, webcam) as a barcode scanner.
hegjon commented 7 years ago

Here is the warnings with the --track-origins=yes flag

==22522== Conditional jump or move depends on uninitialised value(s)
==22522==    at 0x3688A267: _zbar_processor_set_visible (x.c:263)
==22522==    by 0x3686C28E: zbar_processor_set_visible (processor.c:541)
==22522==    by 0x12954BDD: ffi_call_unix64 (unix64.S:76)
==22522==    by 0x1295454E: ffi_call (ffi64.c:525)
==22522==    by 0x12741324: _ctypes_callproc (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==22522==    by 0x1273B05D: ??? (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==22522==    by 0x4ED4EA2: PyObject_Call (in /usr/lib64/libpython2.7.so.1.0)
==22522==    by 0x4FB7883: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==22522==    by 0x4FBC827: PyEval_EvalCodeEx (in /usr/lib64/libpython2.7.so.1.0)
==22522==    by 0x4FB9862: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==22522==    by 0x4FBA1C8: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==22522==    by 0x4FBC827: PyEval_EvalCodeEx (in /usr/lib64/libpython2.7.so.1.0)
==22522==  Uninitialised value was created by a stack allocation
==22522==    at 0x12954387: ffi_call (ffi64.c:444)
==22522== 
==22522== Conditional jump or move depends on uninitialised value(s)
==22522==    at 0x3686BEB9: _zbar_processor_handle_input (processor.c:180)
==22522==    by 0x3688A0C8: x_handle_event (x.c:68)
==22522==    by 0x3688A0C8: x_handle_events (x.c:109)
==22522==    by 0x3688A0C8: x_connection_handler (x.c:120)
==22522==    by 0x36886A1E: proc_poll_inputs (posix.c:237)
==22522==    by 0x36886A1E: _zbar_processor_input_wait (posix.c:268)
==22522==    by 0x3686D753: proc_wait_unthreaded (lock.c:184)
==22522==    by 0x3686D753: _zbar_processor_wait (lock.c:204)
==22522==    by 0x3686CFE2: zbar_process_one (processor.c:653)
==22522==    by 0x12954BDD: ffi_call_unix64 (unix64.S:76)
==22522==    by 0x1295454E: ffi_call (ffi64.c:525)
==22522==    by 0x12741324: _ctypes_callproc (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==22522==    by 0x1273B05D: ??? (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==22522==    by 0x4ED4EA2: PyObject_Call (in /usr/lib64/libpython2.7.so.1.0)
==22522==    by 0x4FB7883: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==22522==    by 0x4FBC827: PyEval_EvalCodeEx (in /usr/lib64/libpython2.7.so.1.0)
==22522==  Uninitialised value was created by a stack allocation
==22522==    at 0x12954387: ffi_call (ffi64.c:444)
ecdsa commented 7 years ago

please note that you can execute the python file lib/qrscanner.py as a standalone file, without the electrum GUI. does it crash similarly?

hegjon commented 7 years ago

Thanks, yes, it behaves just like when I click on the button. Crashes without valgrind, works with valgrind.

jonny@jonny-thinkpad ~ {1.8}{6.9.4} $ python2 /usr/lib/python2.7/site-packages/electrum/qrscanner.py
Segmentation fault (core dumped)
jonny@jonny-thinkpad ~ {1.8}{6.9.4} $ valgrind python2 /usr/lib/python2.7/site-packages/electrum/qrscanner.py
==24094== Memcheck, a memory error detector
==24094== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==24094== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==24094== Command: python2 /usr/lib/python2.7/site-packages/electrum/qrscanner.py
==24094== 
==24094== Conditional jump or move depends on uninitialised value(s)
==24094==    at 0xEB8C267: _zbar_processor_set_visible (x.c:263)
==24094==    by 0xEB6E28E: zbar_processor_set_visible (processor.c:541)
==24094==    by 0xE754BDD: ffi_call_unix64 (unix64.S:76)
==24094==    by 0xE75454E: ffi_call (ffi64.c:525)
==24094==    by 0xE541324: _ctypes_callproc (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==24094==    by 0xE53B05D: ??? (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==24094==    by 0x4ED4EA2: PyObject_Call (in /usr/lib64/libpython2.7.so.1.0)
==24094==    by 0x4FB7883: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==24094==    by 0x4FBC827: PyEval_EvalCodeEx (in /usr/lib64/libpython2.7.so.1.0)
==24094==    by 0x4FB9862: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==24094==    by 0x4FBC827: PyEval_EvalCodeEx (in /usr/lib64/libpython2.7.so.1.0)
==24094==    by 0x4FBCA38: PyEval_EvalCode (in /usr/lib64/libpython2.7.so.1.0)
==24094== 
==24094== Conditional jump or move depends on uninitialised value(s)
==24094==    at 0xEB6DEB9: _zbar_processor_handle_input (processor.c:180)
==24094==    by 0xEB8C0C8: x_handle_event (x.c:68)
==24094==    by 0xEB8C0C8: x_handle_events (x.c:109)
==24094==    by 0xEB8C0C8: x_connection_handler (x.c:120)
==24094==    by 0xEB88A7F: proc_poll_inputs (posix.c:249)
==24094==    by 0xEB88A7F: _zbar_processor_input_wait (posix.c:268)
==24094==    by 0xEB6F753: proc_wait_unthreaded (lock.c:184)
==24094==    by 0xEB6F753: _zbar_processor_wait (lock.c:204)
==24094==    by 0xEB6EFE2: zbar_process_one (processor.c:653)
==24094==    by 0xE754BDD: ffi_call_unix64 (unix64.S:76)
==24094==    by 0xE75454E: ffi_call (ffi64.c:525)
==24094==    by 0xE541324: _ctypes_callproc (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==24094==    by 0xE53B05D: ??? (in /usr/lib64/python2.7/lib-dynload/_ctypes.so)
==24094==    by 0x4ED4EA2: PyObject_Call (in /usr/lib64/libpython2.7.so.1.0)
==24094==    by 0x4FB7883: PyEval_EvalFrameEx (in /usr/lib64/libpython2.7.so.1.0)
==24094==    by 0x4FBC827: PyEval_EvalCodeEx (in /usr/lib64/libpython2.7.so.1.0)
==24094== 
None
==24094== 
==24094== HEAP SUMMARY:
==24094==     in use at exit: 1,103,970 bytes in 6,725 blocks
==24094==   total heap usage: 105,051 allocs, 98,326 frees, 28,643,926 bytes allocated
==24094== 
==24094== LEAK SUMMARY:
==24094==    definitely lost: 40 bytes in 2 blocks
==24094==    indirectly lost: 176 bytes in 4 blocks
==24094==      possibly lost: 298,864 bytes in 1,212 blocks
==24094==    still reachable: 804,890 bytes in 5,507 blocks
==24094==         suppressed: 0 bytes in 0 blocks
==24094== Rerun with --leak-check=full to see details of leaked memory
==24094== 
==24094== For counts of detected and suppressed errors, rerun with: -v
==24094== Use --track-origins=yes to see where uninitialised values come from
==24094== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
ecdsa commented 7 years ago

can you compile and try the following c file?

/* gcc zbar.c -lzbar */

#include <stdlib.h>
#include <stdio.h>
#include <zbar.h>

int timeout=5000;
int disp=1;
int threaded=0;
zbar_processor_t* proc;

const zbar_symbol_set_t* symbols;
const zbar_symbol_t* symbol;
const char* data;

int main()
{

  proc = zbar_processor_create(threaded);
  zbar_processor_request_size(proc, 640, 480);
  zbar_processor_init(proc, "", disp);
  zbar_processor_set_visible(proc, 1);

  /*zbar_window_t* win = zbar_window_create();                                                                                                                                   
    zbar_window_attach(win, NULL, 0);*/

  printf("process one...\n");
  zbar_process_one(proc, timeout);
  symbols = zbar_processor_get_results(proc);
  int n = zbar_symbol_set_get_size(symbols);
  if(n == 0) return 0;
  printf("symbols: %d\n", n);
  symbol = zbar_symbol_set_first_symbol(symbols);
  data = zbar_symbol_get_data(symbol);
  printf("data: %s\n", data);
  zbar_processor_destroy(proc);

  /*zbar_window_destroy(win);*/

  return 0;
}
ecdsa commented 7 years ago

compile it with gcc zbar.c -lzbar

hegjon commented 7 years ago

That works, no segfaults (closes by it self after 5 seconds)

ecdsa commented 7 years ago

thanks! so the problem is with the python implementation. try to run the python file without the line libzbar.zbar_processor_set_visible(proc) it will not open a window, but it should still be able to scan qr codes (you can do the same test with the c file)

hegjon commented 7 years ago

Both processor.py and read_one.py at repo https://github.com/herbyme/zbar/tree/master/python/examples works

ecdsa commented 7 years ago

I know, but that example uses the zbar bindings, and we don' want to use them anymore because they are not supported with python3.

Can you also try libzbar.zbar_processor_set_visible(proc, True) (the second parameter is missing in electrum)

hegjon commented 7 years ago

Same error, will try chaning the c file too.

jonny@jonny-thinkpad ~/projects/electrum (master) {1.8}{6.9.4} $ git diff
diff --git a/lib/qrscanner.py b/lib/qrscanner.py
index 80d4adb9..56b21beb 100644
--- a/lib/qrscanner.py
+++ b/lib/qrscanner.py
@@ -47,7 +47,6 @@ def scan_barcode(device='', timeout=-1, display=True, threaded=False):
     proc = libzbar.zbar_processor_create(threaded)
     libzbar.zbar_processor_request_size(proc, 640, 480)
     libzbar.zbar_processor_init(proc, device, display)
-    libzbar.zbar_processor_set_visible(proc)
     if libzbar.zbar_process_one(proc, timeout):
         symbols = libzbar.zbar_processor_get_results(proc)
     else:
jonny@jonny-thinkpad ~/projects/electrum (master) {1.8}{6.9.4} $ python ./lib/qrscanner.py 
Segmentation fault (core dumped)
hegjon commented 7 years ago

And:

jonny@jonny-thinkpad ~/projects/electrum (master) {1.8}{6.9.4} $ git diff
diff --git a/lib/qrscanner.py b/lib/qrscanner.py
index 80d4adb9..d91e23c3 100644
--- a/lib/qrscanner.py
+++ b/lib/qrscanner.py
@@ -47,7 +47,7 @@ def scan_barcode(device='', timeout=-1, display=True, threaded=False):
     proc = libzbar.zbar_processor_create(threaded)
     libzbar.zbar_processor_request_size(proc, 640, 480)
     libzbar.zbar_processor_init(proc, device, display)
-    libzbar.zbar_processor_set_visible(proc)
+    libzbar.zbar_processor_set_visible(proc, True)
     if libzbar.zbar_process_one(proc, timeout):
         symbols = libzbar.zbar_processor_get_results(proc)
     else:
jonny@jonny-thinkpad ~/projects/electrum (master) {1.8}{6.9.4} $ python ./lib/qrscanner.py 
Segmentation fault (core dumped)
hegjon commented 7 years ago

The c file works with the window function enabled

ecdsa commented 7 years ago

ok, maybe you can try to identify which line in the python file causes the segfault? I first thought it was set_visible, but maybe it is earlier

ecdsa commented 7 years ago

when I run the c file, the timeout does not work; (the window does not close itself after 5 seconds) this suggests there is a difference between our zbar libraries

hegjon commented 7 years ago

It looks like line libzbar.zbar_processor_request_size(proc, 640, 480) triggers the segfault, but when I remove that line, then it will fail on the next line.

Poor mans debugger :P

jonny@jonny-thinkpad ~/projects/electrum (master) {1.8}{6.9.4} $ git diff
diff --git a/lib/qrscanner.py b/lib/qrscanner.py
index 80d4adb9..77b7ffc1 100644
--- a/lib/qrscanner.py
+++ b/lib/qrscanner.py
@@ -41,13 +41,20 @@ except OSError:

 def scan_barcode(device='', timeout=-1, display=True, threaded=False):
+    print("1")
     if libzbar is None:
         raise RuntimeError("Cannot start QR scanner; zbar not available.")
+    print("2")
     libzbar.zbar_symbol_get_data.restype = c_char_p
+    print("3")
     proc = libzbar.zbar_processor_create(threaded)
+    print("4")
     libzbar.zbar_processor_request_size(proc, 640, 480)
+    print("5")
     libzbar.zbar_processor_init(proc, device, display)
+    print("6")
     libzbar.zbar_processor_set_visible(proc)
+    print("7")
     if libzbar.zbar_process_one(proc, timeout):
         symbols = libzbar.zbar_processor_get_results(proc)
     else:
jonny@jonny-thinkpad ~/projects/electrum (master) {1.8}{6.9.4} $ python ./lib/qrscanner.py 
1
2
3
4
Segmentation fault (core dumped)
hegjon commented 7 years ago

What OS are you running? I see that Fedora applies a zbar_use_libv4l.patch + some other patches not sure if there are other differences

ecdsa commented 7 years ago

ubuntu. I installed this version of zbar: https://github.com/graphitemaster/zbar-lite/commits/master

ecdsa commented 7 years ago

I suggest you install zbar-lite and try again

hegjon commented 7 years ago

Ok, will test with zbar-lite, Fedora uses this http://downloads.sourceforge.net/zbar/zbar-0.10.tar.bz2

ecdsa commented 7 years ago

I think I had problems with the old zbar too.

hegjon commented 7 years ago

Do do bundle zbar-lite into the official release?

ecdsa commented 7 years ago

not for linux. the linux tar.gz is pure python. does it work with zbar-lite?

hegjon commented 7 years ago

I am not sure how to install zbar-lite

ecdsa commented 7 years ago

hold on, I'm checking. I'm not sure anymore if I'm using that version of zbar..

ecdsa commented 7 years ago

sorry I was wrong, I use /usr/lib/libzbar.so.0.2.0

ecdsa commented 7 years ago

does your zbar have the same version number?

hegjon commented 7 years ago
jonny@jonny-thinkpad ~/fedora-scm/zbar (master) {1.8}{6.9.4} $ rpm -ql zbar
/usr/bin/zbarcam
/usr/bin/zbarimg
/usr/lib64/libzbar.so.0
/usr/lib64/libzbar.so.0.2.0
/usr/share/doc/zbar
/usr/share/doc/zbar/COPYING
/usr/share/doc/zbar/LICENSE
/usr/share/doc/zbar/NEWS
/usr/share/man/man1/zbarcam.1.gz
/usr/share/man/man1/zbarimg.1.gz
jonny@jonny-thinkpad ~/fedora-scm/zbar (master) {1.8}{6.9.4} $ ldd /usr/lib64/libzbar.so.0.2.0
    linux-vdso.so.1 (0x00007ffc5d1f0000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007f3f9a0f6000)
    libXv.so.1 => /lib64/libXv.so.1 (0x00007f3f99ef1000)
    libv4l2.so.0 => /lib64/libv4l2.so.0 (0x00007f3f99ce2000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3f99ac3000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f3f996f2000)
    libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f3f994c8000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f3f992c4000)
    libXext.so.6 => /lib64/libXext.so.6 (0x00007f3f990b2000)
    libv4lconvert.so.0 => /lib64/libv4lconvert.so.0 (0x00007f3f98e38000)
    /lib64/ld-linux-x86-64.so.2 (0x0000560370761000)
    libXau.so.6 => /lib64/libXau.so.6 (0x00007f3f98c34000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f3f98a2c000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f3f98714000)
    libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007f3f984aa000)
hegjon commented 7 years ago

Is this issue related to #2527?

ecdsa commented 7 years ago

yes I believe it is the same issue. can you try the python3_new branch and see if it has the same issue?

hegjon commented 7 years ago

Same as before, print warnings when running under valgrind and crashes when run directly:

jonny@jonny-thinkpad ~/projects/electrum (python3_new) {1.8}{6.9.4} $ git log -n1
commit a69ec64c9aafa220135e3eac12b4d8168d700689 (HEAD -> python3_new, origin/python3_new)
Author: ThomasV <thomasv@electrum.org>
Date:   Sat Aug 12 21:26:57 2017 +0200

    python3 updates
jonny@jonny-thinkpad ~/projects/electrum (python3_new) {1.8}{6.9.4} $ python3 lib/qrscanner.py
Segmentation fault (core dumped)
jonny@jonny-thinkpad ~/projects/electrum (python3_new) {1.8}{6.9.4} $ valgrind python3 lib/qrscanner.py
==4892== Memcheck, a memory error detector
==4892== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==4892== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==4892== Command: python3 lib/qrscanner.py
==4892== 
==4892== Conditional jump or move depends on uninitialised value(s)
==4892==    at 0xE4AE267: ??? (in /usr/lib64/libzbar.so.0.2.0)
==4892==    by 0xE49028E: zbar_processor_set_visible (in /usr/lib64/libzbar.so.0.2.0)
==4892==    by 0xDC74BDD: ffi_call_unix64 (unix64.S:76)
==4892==    by 0xDC7454E: ffi_call (ffi64.c:525)
==4892==    by 0xDA5E4FA: _ctypes_callproc (in /usr/lib64/python3.6/lib-dynload/_ctypes.cpython-36m-x86_64-linux-gnu.so)
==4892==    by 0xDA5EF03: ??? (in /usr/lib64/python3.6/lib-dynload/_ctypes.cpython-36m-x86_64-linux-gnu.so)
==4892==    by 0x4F55643: _PyObject_FastCallDict (in /usr/lib64/libpython3.6m.so.1.0)
==4892==    by 0x4FC65EC: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==4892==    by 0x5003619: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.6m.so.1.0)
==4892==    by 0x4F88B27: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==4892==    by 0x4FC657D: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==4892==    by 0x5003619: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.6m.so.1.0)
==4892== 

==4892== Conditional jump or move depends on uninitialised value(s)
==4892==    at 0xE48FEB9: ??? (in /usr/lib64/libzbar.so.0.2.0)
==4892==    by 0xE4AE0C8: ??? (in /usr/lib64/libzbar.so.0.2.0)
==4892==    by 0xE4AAA1E: ??? (in /usr/lib64/libzbar.so.0.2.0)
==4892==    by 0xE491753: ??? (in /usr/lib64/libzbar.so.0.2.0)
==4892==    by 0xE490FE2: zbar_process_one (in /usr/lib64/libzbar.so.0.2.0)
==4892==    by 0xDC74BDD: ffi_call_unix64 (unix64.S:76)
==4892==    by 0xDC7454E: ffi_call (ffi64.c:525)
==4892==    by 0xDA5E4FA: _ctypes_callproc (in /usr/lib64/python3.6/lib-dynload/_ctypes.cpython-36m-x86_64-linux-gnu.so)
==4892==    by 0xDA5EF03: ??? (in /usr/lib64/python3.6/lib-dynload/_ctypes.cpython-36m-x86_64-linux-gnu.so)
==4892==    by 0x4F55643: _PyObject_FastCallDict (in /usr/lib64/libpython3.6m.so.1.0)
==4892==    by 0x4FC65EC: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==4892==    by 0x5003619: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.6m.so.1.0)
==4892== 
None
==4892== 
==4892== HEAP SUMMARY:
==4892==     in use at exit: 1,183,493 bytes in 9,389 blocks
==4892==   total heap usage: 63,666 allocs, 54,277 frees, 79,883,459 bytes allocated
==4892== 
==4892== LEAK SUMMARY:
==4892==    definitely lost: 160 bytes in 2 blocks
==4892==    indirectly lost: 1,552 bytes in 34 blocks
==4892==      possibly lost: 375,298 bytes in 2,400 blocks
==4892==    still reachable: 806,483 bytes in 6,953 blocks
==4892==         suppressed: 0 bytes in 0 blocks
==4892== Rerun with --leak-check=full to see details of leaked memory
==4892== 
==4892== For counts of detected and suppressed errors, rerun with: -v
==4892== Use --track-origins=yes to see where uninitialised values come from
==4892== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
ecdsa commented 7 years ago

this should be fixed by f70408cef5eff3eead108a06ee11a6106253f74d can you try?

hegjon commented 7 years ago

Yay, I ran python lib/qrscanner.py on latest master and it worked! Thanks

ecdsa commented 7 years ago

great to hear that