Bryan Cutler created ARROW-18360: ------------------------------------ Summary: [Python] Incorrectly passing schema=None to do_put crashes Key: ARROW-18360 URL: https://issues.apache.org/jira/browse/ARROW-18360 Project: Apache Arrow Issue Type: Bug Components: Python Affects Versions: 9.0.0 Reporter: Bryan Cutler
In pyarrow.flight, putting an incorrect value of None for schema in do_put will lead to a core dump. In pyarrow 9.0.0, trying to enter the command leads to a {code} In [3]: writer, reader = client.do_put(flight.FlightDescriptor.for_command(cmd), schema=None) Segmentation fault (core dumped) {code} In pyarrow 7.0.0, the kernel crashes after attempting to access the writer and I got the following: {code} In [38]: client = flight.FlightClient('grpc+tls://localhost:9643', disable_server_verification=True) In [39]: writer, reader = client.do_put(flight.FlightDescriptor.for_command(cmd), None) In [40]: writer./home/conda/feedstock_root/build_artifacts/arrow-cpp-ext_1644752264449/work/cpp/src/arrow/flight/client.cc:736: Check failed: (batch_writer_) != (nullptr) miniconda3/envs/dev/lib/python3.10/site-packages/pyarrow/../../../libarrow.so.700(+0x66288c)[0x7f0feeae088c] miniconda3/envs/dev/lib/python3.10/site-packages/pyarrow/../../../libarrow.so.700(_ZN5arrow4util8ArrowLogD1Ev+0x101)[0x7f0feeae0c91] miniconda3/envs/dev/lib/python3.10/site-packages/pyarrow/../../../libarrow_flight.so.700(+0x7c1e1)[0x7f0fa9e331e1] miniconda3/envs/dev/lib/python3.10/site-packages/pyarrow/lib.cpython-310-x86_64-linux-gnu.so(+0x17cf1a)[0x7f0fefe7ff1a] miniconda3/envs/dev/bin/python(_PyObject_GenericGetAttrWithDict+0x4f3)[0x559a7cb8da03] miniconda3/envs/dev/bin/python(+0x144814)[0x559a7cb8f814] miniconda3/envs/dev/bin/python(+0x1445bf)[0x559a7cb8f5bf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x30c)[0x559a7cb7ebcc] miniconda3/envs/dev/bin/python(+0x1516ac)[0x559a7cb9c6ac] miniconda3/envs/dev/bin/python(PyObject_Call+0xb8)[0x559a7cb9d348] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x2b05)[0x559a7cb813c5] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(+0x1ead44)[0x559a7cc35d44] miniconda3/envs/dev/bin/python(+0x220397)[0x559a7cc6b397] miniconda3/envs/dev/bin/python(PyObject_Call+0xb8)[0x559a7cb9d348] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x2b05)[0x559a7cb813c5] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(PyObject_Call+0xb8)[0x559a7cb9d348] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x2b05)[0x559a7cb813c5] miniconda3/envs/dev/bin/python(+0x1516ac)[0x559a7cb9c6ac] miniconda3/envs/dev/bin/python(PyObject_Call+0xb8)[0x559a7cb9d348] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x2b05)[0x559a7cb813c5] miniconda3/envs/dev/bin/python(+0x151ef3)[0x559a7cb9cef3] miniconda3/envs/dev/bin/python(+0x1ead44)[0x559a7cc35d44] miniconda3/envs/dev/bin/python(+0x220397)[0x559a7cc6b397] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x1311)[0x559a7cb7fbd1] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x30c)[0x559a7cb7ebcc] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x2b05)[0x559a7cb813c5] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x66f)[0x559a7cb7ef2f] miniconda3/envs/dev/bin/python(+0x14fc9d)[0x559a7cb9ac9d] miniconda3/envs/dev/bin/python(_PyObject_GenericGetAttrWithDict+0x4f3)[0x559a7cb8da03] miniconda3/envs/dev/bin/python(PyObject_GetAttr+0x44)[0x559a7cb8c494] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x4d8f)[0x559a7cb8364f] miniconda3/envs/dev/bin/python(+0x14fc9d)[0x559a7cb9ac9d] miniconda3/envs/dev/bin/python(+0x1416f5)[0x559a7cb8c6f5] miniconda3/envs/dev/bin/python(PyObject_GetAttr+0x52)[0x559a7cb8c4a2] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x4d8f)[0x559a7cb8364f] miniconda3/envs/dev/bin/python(+0x14fc9d)[0x559a7cb9ac9d] miniconda3/envs/dev/bin/python(_PyObject_GenericGetAttrWithDict+0x4f3)[0x559a7cb8da03] miniconda3/envs/dev/bin/python(PyObject_GetAttr+0x44)[0x559a7cb8c494] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x4d8f)[0x559a7cb8364f] miniconda3/envs/dev/bin/python(+0x15a178)[0x559a7cba5178] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x9ca)[0x559a7cb7f28a] miniconda3/envs/dev/bin/python(+0x15a178)[0x559a7cba5178] miniconda3/envs/dev/bin/python(+0x1602d9)[0x559a7cbab2d9] miniconda3/envs/dev/bin/python(+0x19d5f5)[0x559a7cbe85f5] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x30c)[0x559a7cb7ebcc] miniconda3/envs/dev/bin/python(+0x15a178)[0x559a7cba5178] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x9ca)[0x559a7cb7f28a] miniconda3/envs/dev/bin/python(+0x1f436d)[0x559a7cc3f36d] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x1ae1)[0x559a7cb803a1] miniconda3/envs/dev/bin/python(+0x15a178)[0x559a7cba5178] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x9ca)[0x559a7cb7f28a] miniconda3/envs/dev/bin/python(+0x1f436d)[0x559a7cc3f36d] miniconda3/envs/dev/bin/python(+0x209ae9)[0x559a7cc54ae9] miniconda3/envs/dev/bin/python(+0x104a5c)[0x559a7cb4fa5c] miniconda3/envs/dev/bin/python(PyIter_Send+0x53a)[0x559a7cc0dc6a] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x1ae1)[0x559a7cb803a1] miniconda3/envs/dev/bin/python(+0x1f436d)[0x559a7cc3f36d] miniconda3/envs/dev/bin/python(+0x209ae9)[0x559a7cc54ae9] miniconda3/envs/dev/bin/python(+0x104a5c)[0x559a7cb4fa5c] miniconda3/envs/dev/bin/python(PyIter_Send+0x53a)[0x559a7cc0dc6a] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x1ae1)[0x559a7cb803a1] miniconda3/envs/dev/bin/python(+0x1f436d)[0x559a7cc3f36d] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x1ae1)[0x559a7cb803a1] miniconda3/envs/dev/bin/python(+0x1f436d)[0x559a7cc3f36d] miniconda3/envs/dev/lib/python3.10/lib-dynload/_asyncio.cpython-310-x86_64-linux-gnu.so(+0x78d0)[0x7f0ff5eeb8d0] miniconda3/envs/dev/bin/python(_PyObject_MakeTpCall+0x338)[0x559a7cb88298] miniconda3/envs/dev/bin/python(+0xfe792)[0x559a7cb49792] miniconda3/envs/dev/bin/python(+0x13b8e7)[0x559a7cb868e7] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x5aec)[0x559a7cb843ac] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x66f)[0x559a7cb7ef2f] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x66f)[0x559a7cb7ef2f] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x66f)[0x559a7cb7ef2f] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x66f)[0x559a7cb7ef2f] miniconda3/envs/dev/bin/python(+0x1516ac)[0x559a7cb9c6ac] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x1311)[0x559a7cb7fbd1] miniconda3/envs/dev/bin/python(+0x1516ac)[0x559a7cb9c6ac] miniconda3/envs/dev/bin/python(PyObject_Call+0xb8)[0x559a7cb9d348] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x2b05)[0x559a7cb813c5] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x66f)[0x559a7cb7ef2f] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x66f)[0x559a7cb7ef2f] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x66f)[0x559a7cb7ef2f] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x66f)[0x559a7cb7ef2f] miniconda3/envs/dev/bin/python(+0x1516ac)[0x559a7cb9c6ac] miniconda3/envs/dev/bin/python(PyObject_Call+0xb8)[0x559a7cb9d348] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x2b05)[0x559a7cb813c5] miniconda3/envs/dev/bin/python(_PyFunction_Vectorcall+0x6f)[0x559a7cb8f3cf] miniconda3/envs/dev/bin/python(_PyEval_EvalFrameDefault+0x30c)[0x559a7cb7ebcc] miniconda3/envs/dev/bin/python(+0x1eab92)[0x559a7cc35b92] miniconda3/envs/dev/bin/python(PyEval_EvalCode+0x87)[0x559a7cc35ad7] miniconda3/envs/dev/bin/python(+0x21d709)[0x559a7cc68709] miniconda3/envs/dev/bin/python(+0x2183f4)[0x559a7cc633f4] miniconda3/envs/dev/bin/python(+0x982ba)[0x559a7cae32ba] miniconda3/envs/dev/bin/python(_PyRun_SimpleFileObject+0x1af)[0x559a7cc5d5cf] miniconda3/envs/dev/bin/python(_PyRun_AnyFileObject+0x43)[0x559a7cc5d3a3] miniconda3/envs/dev/bin/python(Py_RunMain+0x39f)[0x559a7cc5a56f] miniconda3/envs/dev/bin/python(Py_BytesMain+0x39)[0x559a7cc28e09] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f0ff77df083] miniconda3/envs/dev/bin/python(+0x1ddd11)[0x559a7cc28d11] Aborted (core dumped) {code} I know it's incorrect to use None, but we have had a report of this crashing notebook kernels. -- This message was sent by Atlassian Jira (v8.20.10#820010)