Bug 1458282 - fedmsg-tail segmentation fault
Summary: fedmsg-tail segmentation fault
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-m2ext
Version: 26
Hardware: Unspecified
OS: Unspecified
unspecified
urgent
Target Milestone: ---
Assignee: Fedora Infrastructure SIG
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-06-02 13:13 UTC by Viktor Ashirov
Modified: 2017-09-22 18:50 UTC (History)
8 users (show)

Fixed In Version: python-m2ext-0.1-12.fc26
Clone Of:
Environment:
Last Closed: 2017-09-22 18:50:40 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Viktor Ashirov 2017-06-02 13:13:45 UTC
Description of problem:
fedmsg-tail segfaults

Version-Release number of selected component (if applicable):
fedmsg-0.18.2-2.fc26.noarch
fedmsg-base-0.18.2-2.fc26.noarch
python2-fedmsg-commands-0.18.2-2.fc26.noarch
python2-fedmsg-consumers-0.18.2-2.fc26.noarch
python2-fedmsg-core-0.18.2-2.fc26.noarch


How reproducible:
always

Steps to Reproduce:
1. dnf install fedmsg
2. fedmsg-tail
3.

Actual results:
$ fedmsg-tail 
Segmentation fault (core dumped)


Expected results:
fedmsg-tail should be up and running

Additional info:

Comment 1 Viktor Ashirov 2017-06-02 13:15:48 UTC
{   "signal": 11
,   "executable": "/usr/bin/python2.7"
,   "stacktrace":
      [ {   "crash_thread": true
        ,   "frames":
              [ {   "address": 4294967296
                ,   "build_id_offset": 4294967296
                } ]
        }
      , {   "frames":
              [ {   "address": 140009942635379
                ,   "build_id": "3e4d91dbbc86381c7b9e9e13792bd9938281c798"
                ,   "build_id_offset": 1119091
                ,   "function_name": "epoll_wait"
                ,   "file_name": "/lib64/libc.so.6"
                }
              , {   "address": 140009746984554
                ,   "build_id": "35236b543ccbef838f30c407b7d95e4d24a49d10"
                ,   "build_id_offset": 118378
                ,   "function_name": "zmq::epoll_t::loop()"
                ,   "file_name": "/lib64/libzmq.so.5"
                }
              , {   "address": 140009747200346
                ,   "build_id": "35236b543ccbef838f30c407b7d95e4d24a49d10"
                ,   "build_id_offset": 334170
                ,   "function_name": "thread_routine"
                ,   "file_name": "/lib64/libzmq.so.5"
                }
              , {   "address": 140009953006445
                ,   "build_id": "bde992e593a39ff96f2839c656114e1aa3b6b248"
                ,   "build_id_offset": 29549
                ,   "function_name": "start_thread"
                ,   "file_name": "/lib64/libpthread.so.0"
                }
              , {   "address": 140009942633999
                ,   "build_id": "3e4d91dbbc86381c7b9e9e13792bd9938281c798"
                ,   "build_id_offset": 1117711
                ,   "function_name": "__clone"
                ,   "file_name": "/lib64/libc.so.6"
                } ]
        }
      , {   "frames":
              [ {   "address": 140009942635379
                ,   "build_id": "3e4d91dbbc86381c7b9e9e13792bd9938281c798"
                ,   "build_id_offset": 1119091
                ,   "function_name": "epoll_wait"
                ,   "file_name": "/lib64/libc.so.6"
                }
              , {   "address": 140009746984554
                ,   "build_id": "35236b543ccbef838f30c407b7d95e4d24a49d10"
                ,   "build_id_offset": 118378
                ,   "function_name": "zmq::epoll_t::loop()"
                ,   "file_name": "/lib64/libzmq.so.5"
                }
              , {   "address": 140009747200346
                ,   "build_id": "35236b543ccbef838f30c407b7d95e4d24a49d10"
                ,   "build_id_offset": 334170
                ,   "function_name": "thread_routine"
                ,   "file_name": "/lib64/libzmq.so.5"
                }
              , {   "address": 140009953006445
                ,   "build_id": "bde992e593a39ff96f2839c656114e1aa3b6b248"
                ,   "build_id_offset": 29549
                ,   "function_name": "start_thread"
                ,   "file_name": "/lib64/libpthread.so.0"
                }
              , {   "address": 140009942633999
                ,   "build_id": "3e4d91dbbc86381c7b9e9e13792bd9938281c798"
                ,   "build_id_offset": 1117711
                ,   "function_name": "__clone"
                ,   "file_name": "/lib64/libc.so.6"
                } ]
        } ]
}

Comment 2 Viktor Ashirov 2017-06-07 09:55:56 UTC
After downgrading python-m2ext to python-m2ext-0.1-9.fc25.x86_64.rpm fedmsg-tail works again. There was no change in the source, only rebuild for f26.

Here's the reproducer:

---------------8<---------------

import sys
from m2ext import SSL
from M2Crypto import X509

cert = X509.load_cert(sys.argv[1])
ctx = SSL.Context()
if not ctx.validate_certificate(cert):
    print("X509 certificate is not valid.")

---------------8<---------------

$ wget https://fedoraproject.org/fedmsg/ca.crt
--2017-06-07 11:54:03--  https://fedoraproject.org/fedmsg/ca.crt
Resolving fedoraproject.org (fedoraproject.org)... 140.211.169.196, 152.19.134.142, 140.211.169.206, ...
Connecting to fedoraproject.org (fedoraproject.org)|140.211.169.196|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1375 (1.3K)
Saving to: ‘ca.crt’

ca.crt                             100%[=============================================================>]   1.34K  --.-KB/s    in 0s      

2017-06-07 11:54:04 (33.4 MB/s) - ‘ca.crt’ saved [1375/1375]


~
$ python reproducer.py ca.crt 
[1]    20476 segmentation fault (core dumped)  python reproducer.py ca.crt

Comment 3 Viktor Ashirov 2017-06-07 10:20:45 UTC
Actually this might be coming from compat-openssl10

python-m2ext-0.1-10.fc26.x86_64.rpm
openssl-libs-1.1.0e-1.fc26.x86_64.rpm
openssl-1.1.0e-1.fc26.x86_64.rpm
compat-openssl10-1.0.2j-6.fc26.x86_64.rpm


#0  0x0000000100000000 in ?? ()
#1  0x00007fffee4e3c92 in X509_STORE_CTX_cleanup (ctx=ctx@entry=0x555555a1d300) at x509_vfy.c:2550
#2  0x00007fffee4e3d3e in X509_STORE_CTX_free (ctx=0x555555a1d300) at x509_vfy.c:2403
#3  0x00007fffeeaaea01 in _wrap_x509_store_ctx_free () from /usr/lib64/python2.7/site-packages/M2Crypto/__m2crypto.so
#4  0x00007ffff7b12a00 in call_function (oparg=<optimized out>, pp_stack=0x7fffffffcf98) at /usr/src/debug/Python-2.7.13/Python/ceval.c:4429
#5  PyEval_EvalFrameEx (f=f@entry=Frame 0x7fffec5bead0, for file /usr/lib64/python2.7/site-packages/M2Crypto/X509.py, line 876, in __del__ (self=<X509_Store_Context(ctx=<SwigPyObject at remote 0x7fffebbc6630>, _pyfree=1) at remote 0x7fffebbb1cf8>), throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.13/Python/ceval.c:3063
#6  0x00007ffff7b132c8 in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at /usr/src/debug/Python-2.7.13/Python/ceval.c:3661
#7  0x00007ffff7a5146e in function_call.lto_priv () from /lib64/libpython2.7.so.1.0
#8  0x00007ffff7a2b593 in PyObject_Call () from /lib64/libpython2.7.so.1.0
#9  0x00007ffff7a8f93e in instancemethod_call.lto_priv () from /lib64/libpython2.7.so.1.0
#10 0x00007ffff7a2b593 in PyObject_Call () from /lib64/libpython2.7.so.1.0
#11 0x00007ffff7b099e7 in PyEval_CallObjectWithKeywords (func=<instancemethod at remote 0x7fffebffcd20>, arg=(), kw=<optimized out>) at /usr/src/debug/Python-2.7.13/Python/ceval.c:4298
#12 0x00007ffff7a390db in instance_dealloc.lto_priv () from /lib64/libpython2.7.so.1.0
#13 0x00007ffff7a538d7 in frame_dealloc.lto_priv () from /lib64/libpython2.7.so.1.0
#14 0x00007ffff7b11fb5 in fast_function (nk=<optimized out>, na=<optimized out>, n=<optimized out>, pp_stack=0x7fffffffd588, func=<function at remote 0x7fffebbd3050>) at /usr/src/debug/Python-2.7.13/Python/ceval.c:4516
#15 call_function (oparg=<optimized out>, pp_stack=0x7fffffffd588) at /usr/src/debug/Python-2.7.13/Python/ceval.c:4449
#16 PyEval_EvalFrameEx (f=f@entry=Frame 0x7ffff7f65050, for file reproducer.py, line 7, in <module> (), throwflag=throwflag@entry=0) at /usr/src/debug/Python-2.7.13/Python/ceval.c:3063
#17 0x00007ffff7b132c8 in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at /usr/src/debug/Python-2.7.13/Python/ceval.c:3661
#18 0x00007ffff7b134d9 in PyEval_EvalCode (co=<optimized out>, globals=<optimized out>, locals=<optimized out>) at /usr/src/debug/Python-2.7.13/Python/ceval.c:691
#19 0x00007ffff7adc3af in run_mod () from /lib64/libpython2.7.so.1.0
#20 0x00007ffff7addaea in PyRun_FileExFlags () from /lib64/libpython2.7.so.1.0
#21 0x00007ffff7addcae in PyRun_SimpleFileExFlags () from /lib64/libpython2.7.so.1.0
#22 0x00007ffff7ad665e in Py_Main () from /lib64/libpython2.7.so.1.0
#23 0x00007ffff6ca54da in __libc_start_main (main=0x555555554740 <main>, argc=3, argv=0x7fffffffd9c8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd9b8) at ../csu/libc-start.c:295
#24 0x000055555555477a in _start ()

Comment 4 Tomas Mraz 2017-06-07 11:21:41 UTC
The python-m2ext links to openssl-1.1.0 and m2crypto to openssl-1.0.2 - this is asking for disaster and compat-openssl10 package cannot be a magical fairy that can solve such disasters.

m2crypto has to be built against openssl-1.1.0

Comment 5 Tomas Mraz 2017-06-07 11:24:41 UTC
Or (if that's not possible yet) the python-m2ext against compat-openssl10.

Comment 6 Miloslav Trmač 2017-06-07 13:46:47 UTC
Yeah, M2Crypto does not support 1.1 yet (#1384010 ). So if m2ext is supposed to be an “extension” to M2Crypto it must use the same version.

Comment 7 Fedora Update System 2017-07-14 21:33:01 UTC
python-m2ext-0.1-12.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-74c491afb5

Comment 8 Patrick Uiterwijk 2017-07-14 21:34:33 UTC
I just found this bug independently and pushed a fixed build.

Comment 9 Fedora Update System 2017-07-16 21:21:51 UTC
python-m2ext-0.1-12.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-74c491afb5

Comment 10 Miloslav Trmač 2017-09-21 23:20:28 UTC
FWIW m2crypto-0.26.2-1.fc28 in rawhide (only) has just been built against OpenSSL-1.1 , so python-m2ext might need to be rebuilt again.

Comment 11 Tomas Mraz 2017-09-22 06:53:36 UTC
I've done the Rawhide rebuild of python-m2ext so it builds against openssl-1.1.

Comment 12 Fedora Update System 2017-09-22 18:50:40 UTC
python-m2ext-0.1-12.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.