confluentinc / confluentinc/confluent-kafka-python
segfault when trying to construct AvroProducer
- Dominant language
- Python
- Stars
- 509
- Forks
- 964
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 14
Description
Description
===========
I get a SIGSEGV crashing my entire application when trying to construct an AvroProducer. I'm unclear if there is a problem with my configuration or not, but a segfault is not really acceptable. Is it possible to use cysignals sig_on() and sig_off to convert this to an exception?
How to reproduce
================
The following code produces the output below
avro_schema_options = getConfigProperties('avro.*', section=section_name)
# If there's any avro schema options provided, assume they're all provided and setup the avro producer
default_key_schema = avro.load(PERF_KEY_SCHEMA_PATH)
default_value_schema = avro.load(PERF_VALUE_SCHEMA_PATH)
avro_producer_params = {key[len('avro.'):]: value for key, value in avro_schema_options.items()}
self.logger.debug("Setting up AvroProducer with %r", avro_producer_params)
try:
producer = avro.AvroProducer(avro_producer_params,
default_key_schema=default_key_schema,
default_value_schema=default_value_schema)
except:
self.logger.warning("Failed to configure avro producer", exc_info=True)
else:
return producer
> Setting up AvroProducer with {u'bootstrap.servers': u'gpu-test4.sf.smle.co:9092', u'schema.registry.url': u'http://gpu-test4.sf.smle.co:8081', u'queue.buffering.max.ms': 10}
> ------------------------------------------------------------------------
> 0 signals.so 0x0000000103f4537b print_backtrace + 65
> 1 signals.so 0x0000000103f48c90 sigdie + 60
> 2 signals.so 0x0000000103f48c14 cysigs_signal_handler + 351
> 3 libsystem_platform.dylib 0x00007fff614efb5d _sigtramp + 29
> 4 ??? 0x00007ffeeeaa0ac0 0x0 + 140732902542016
> 5 cimpl.so 0x0000000103f5bb1d Producer__len__ + 13
> 6 Python 0x00007fff3f31ae28 _PyBuiltin_Init + 8463
> 7 Python 0x00007fff3f31ef74 PyEval_EvalFrameEx + 4753
> 8 Python 0x00007fff3f31dab2 PyEval_EvalCodeEx + 1555
> 9 Python 0x00007fff3f323d4c _PyEval_SliceIndex + 490
> 10 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 11 Python 0x00007fff3f31dab2 PyEval_EvalCodeEx + 1555
> 12 Python 0x00007fff3f323d4c _PyEval_SliceIndex + 490
> 13 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 14 Python 0x00007fff3f323cee _PyEval_SliceIndex + 396
> 15 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 16 Python 0x00007fff3f323cee _PyEval_SliceIndex + 396
> 17 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 18 Python 0x00007fff3f323cee _PyEval_SliceIndex + 396
> 19 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 20 Python 0x00007fff3f31dab2 PyEval_EvalCodeEx + 1555
> 21 Python 0x00007fff3f2c52ea PyFunction_SetClosure + 779
> 22 Python 0x00007fff3f2a8078 PyObject_Call + 97
> 23 Python 0x00007fff3f2b2695 PyMethod_New + 1169
> 24 pydevd_cython_darwin_27_64.so 0x0000000101bafbd0 __pyx_pw_14_pydevd_bundle_26pydevd_cython_darwin_27_64_9PyDBFrame_5do_wait_suspend + 224
> 25 pydevd_cython_darwin_27_64.so 0x0000000101b9a69c __pyx_f_14_pydevd_bundle_26pydevd_cython_darwin_27_64_9PyDBFrame_trace_dispatch + 25660
> 26 pydevd_cython_darwin_27_64.so 0x0000000101bae8ae __pyx_pw_14_pydevd_bundle_26pydevd_cython_darwin_27_64_9PyDBFrame_21trace_dispatch + 142
> 27 pydevd_cython_darwin_27_64.so 0x0000000101bc5e8a __pyx_pw_14_pydevd_bundle_26pydevd_cython_darwin_27_64_15SafeCallWrapper_3__call__ + 122
> 28 Python 0x00007fff3f2a8078 PyObject_Call + 97
> 29 Python 0x00007fff3f323710 PyEval_CallObjectWithKeywords + 159
> 30 Python 0x00007fff3f342f4b PySys_WriteStdout + 2646
> 31 Python 0x00007fff3f342fb3 PySys_WriteStdout + 2750
> 32 Python 0x00007fff3f31fc38 PyEval_EvalFrameEx + 8021
> 33 Python 0x00007fff3f31dab2 PyEval_EvalCodeEx + 1555
> 34 Python 0x00007fff3f2c52ea PyFunction_SetClosure + 779
> 35 Python 0x00007fff3f2a8078 PyObject_Call + 97
> 36 Python 0x00007fff3f2b2695 PyMethod_New + 1169
> 37 Python 0x00007fff3f2a8078 PyObject_Call + 97
> 38 Python 0x00007fff3f2ed603 _PyObject_SlotCompare + 5547
> 39 Python 0x00007fff3f2e8dcf _PyType_Lookup + 1372
> 40 Python 0x00007fff3f2a8078 PyObject_Call + 97
> 41 Python 0x00007fff3f31e9d3 PyEval_EvalFrameEx + 3312
> 42 Python 0x00007fff3f323cee _PyEval_SliceIndex + 396
> 43 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 44 Python 0x00007fff3f323cee _PyEval_SliceIndex + 396
> 45 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 46 Python 0x00007fff3f31dab2 PyEval_EvalCodeEx + 1555
> 47 Python 0x00007fff3f323d4c _PyEval_SliceIndex + 490
> 48 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 49 Python 0x00007fff3f323cee _PyEval_SliceIndex + 396
> 50 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 51 Python 0x00007fff3f31dab2 PyEval_EvalCodeEx + 1555
> 52 Python 0x00007fff3f31d499 PyEval_EvalCode + 32
> 53 Python 0x00007fff3f33c645 PyParser_ASTFromFile + 287
> 54 Python 0x00007fff3f33c6ec PyRun_FileExFlags + 130
> 55 Python 0x00007fff3f319ea0 _PyBuiltin_Init + 4487
> 56 Python 0x00007fff3f31e9e6 PyEval_EvalFrameEx + 3331
> 57 Python 0x00007fff3f323cee _PyEval_SliceIndex + 396
> 58 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 59 Python 0x00007fff3f31dab2 PyEval_EvalCodeEx + 1555
> 60 Python 0x00007fff3f323d4c _PyEval_SliceIndex + 490
> 61 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 62 Python 0x00007fff3f323cee _PyEval_SliceIndex + 396
> 63 Python 0x00007fff3f31e498 PyEval_EvalFrameEx + 1973
> 64 Python 0x00007fff3f31dab2 PyEval_EvalCodeEx + 1555
> 65 Python 0x00007fff3f31d499 PyEval_EvalCode + 32
> 66 Python 0x00007fff3f33c645 PyParser_ASTFromFile + 287
> 67 Python 0x00007fff3f33c6ec PyRun_FileExFlags + 130
> 68 Python 0x00007fff3f33c26b PyRun_SimpleFileExFlags + 718
> 69 Python 0x00007fff3f34dbfa Py_Main + 3174
> 70 libdyld.dylib 0x00007fff613043d5 start + 1
> ------------------------------------------------------------------------
> Unhandled SIGSEGV: A segmentation fault occurred.
> This probably occurred because a *compiled* module has a bug
> in it and is not properly wrapped with sig_on(), sig_off().
> Python will now terminate.
> ------------------------------------------------------------------------
Checklist
=========
- [x] confluent-kafka-python and librdkafka version (`confluent_kafka.version()` and `confluent_kafka.libversion()`): confluent-kafka[avro]==1.2.0, 16908288
- [ ] Apache Kafka broker version:
- [ ] Client configuration: `{...}`
- [x] Operating system: Mac OS 10.14.6, CentOS 7
- [x] Provide client logs (with `'debug': '..'` as necessary)
- [ ] Provide broker log excerpts
- [x] Critical issue
I don't know how to find the missing information. Please explain how to fill in the missing details.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.