Bug 1458282
| Summary: | fedmsg-tail segmentation fault | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Viktor Ashirov <vashirov> |
| Component: | python-m2ext | Assignee: | Fedora Infrastructure SIG <infra-sig> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | urgent | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 26 | CC: | gholms, infra-sig, lewk, mitr, puiterwijk, randy, rbean, tmraz |
| Target Milestone: | --- | Keywords: | Regression |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | python-m2ext-0.1-12.fc26 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-09-22 18:50:40 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Viktor Ashirov
2017-06-02 13:13:45 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"
} ]
} ]
}
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
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 () 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 Or (if that's not possible yet) the python-m2ext against compat-openssl10. 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. python-m2ext-0.1-12.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-74c491afb5 I just found this bug independently and pushed a fixed build. 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 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. I've done the Rawhide rebuild of python-m2ext so it builds against openssl-1.1. 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. |