[
https://issues.apache.org/jira/browse/DISPATCH-848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17480579#comment-17480579
]
ASF GitHub Bot commented on DISPATCH-848:
-----------------------------------------
jiridanek commented on pull request #1052:
URL: https://github.com/apache/qpid-dispatch/pull/1052#issuecomment-1019448727
Few more issues for me to investigate,
```
21: ::OneRouterTest::test_17_multiframe_presettled FAILED
21:
21: =================================== FAILURES
===================================
21: _________________ OneRouterTest.test_17_multiframe_presettled
__________________
21:
21: self = <system_tests_one_router.OneRouterTest
testMethod=test_17_multiframe_presettled>
21:
21: def test_17_multiframe_presettled(self):
21: test = MultiframePresettledTest(self.address)
21: > test.run()
21:
21:
/home/jdanek/repos/qpid/qpid-dispatch/tests/system_tests_one_router.py:542:
21: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
21:
/home/jdanek/repos/qpid/qpid-dispatch/tests/system_tests_one_router.py:2884: in
run
21: Container(self).run()
21:
/home/jdanek/.cache/pypoetry/virtualenvs/qpid-dispatch-6uYJVB5u-py3.10/lib64/python3.10/site-packages/proton/_reactor.py:180:
in run
21: while self.process():
21:
/home/jdanek/.cache/pypoetry/virtualenvs/qpid-dispatch-6uYJVB5u-py3.10/lib64/python3.10/site-packages/proton/_reactor.py:243:
in process
21: event.dispatch(handler)
21:
/home/jdanek/.cache/pypoetry/virtualenvs/qpid-dispatch-6uYJVB5u-py3.10/lib64/python3.10/site-packages/proton/_events.py:165:
in dispatch
21: self.dispatch(h, type)
21:
/home/jdanek/.cache/pypoetry/virtualenvs/qpid-dispatch-6uYJVB5u-py3.10/lib64/python3.10/site-packages/proton/_events.py:165:
in dispatch
21: self.dispatch(h, type)
21:
/home/jdanek/.cache/pypoetry/virtualenvs/qpid-dispatch-6uYJVB5u-py3.10/lib64/python3.10/site-packages/proton/_events.py:162:
in dispatch
21: _dispatch(handler, type.method, self)
21:
/home/jdanek/.cache/pypoetry/virtualenvs/qpid-dispatch-6uYJVB5u-py3.10/lib64/python3.10/site-packages/proton/_events.py:123:
in _dispatch
21: m(*args)
21:
/home/jdanek/.cache/pypoetry/virtualenvs/qpid-dispatch-6uYJVB5u-py3.10/lib64/python3.10/site-packages/proton/_handlers.py:255:
in on_delivery
21: event.message = recv_msg(dlv)
21:
/home/jdanek/.cache/pypoetry/virtualenvs/qpid-dispatch-6uYJVB5u-py3.10/lib64/python3.10/site-packages/proton/_handlers.py:140:
in recv_msg
21: msg.decode(delivery.link.recv(delivery.pending))
21:
/home/jdanek/.cache/pypoetry/virtualenvs/qpid-dispatch-6uYJVB5u-py3.10/lib64/python3.10/site-packages/proton/_message.py:499:
in decode
21: self._check(pn_message_decode(self._msg, data))
21: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
21:
21: self = Message(priority=4), err = -6
21:
21: def _check(self, err):
21: if err < 0:
21: exc = EXCEPTIONS.get(err, MessageException)
21: > raise exc("[%s]: %s" % (err,
pn_error_text(pn_message_error(self._msg))))
21: E proton._exceptions.MessageException: [-6]: data error: (null)
21:
21:
/home/jdanek/.cache/pypoetry/virtualenvs/qpid-dispatch-6uYJVB5u-py3.10/lib64/python3.10/site-packages/proton/_message.py:80:
MessageException
21: =========================== short test summary info
============================
21: FAILED ::OneRouterTest::test_17_multiframe_presettled -
proton._exceptions.Me...
21: !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures
!!!!!!!!!!!!!!!!!!!!!!!!!!!
21: =================== 1 failed, 24 passed in 77.12s (0:01:17)
====================
Test #21: system_tests_one_router ..........***Failed 78.27 sec
```
and
https://github.com/jiridanek/qpid-dispatch/runs/4911640230?check_suite_focus=true#step:27:5140
```
37/38 Test #75: c_unittests .............................***Failed 0.46
sec
[doctest] doctest version is "2.4.7"
[doctest] run with "--help" for options
=================================================================
==3586==ERROR: AddressSanitizer: attempting double-free on 0x60600000b120 in
thread T4:
#0 0x7ffa7bf58627 in free (/lib64/libasan.so.6+0xae627)
#1 0x935f37 in router_core_thread
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/router_core_thread.c:236
#2 0x7ffa7a877a86 in start_thread (/lib64/libc.so.6+0x8da86)
#3 0x7ffa7a8fb8d3 in __GI___clone (/lib64/libc.so.6+0x1118d3)
0x60600000b120 is located 0 bytes inside of 56-byte region
[0x60600000b120,0x60600000b158)
freed by thread T4 here:
#0 0x7ffa7bf58627 in free (/lib64/libasan.so.6+0xae627)
#1 0x938cb7 in qdr_subscribe_CT
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/route_tables.c:675
#2 0x935f37 in router_core_thread
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/router_core_thread.c:236
#3 0x7ffa7a877a86 in start_thread (/lib64/libc.so.6+0x8da86)
previously allocated by thread T3 here:
#0 0x7ffa7bf5891f in __interceptor_malloc (/lib64/libasan.so.6+0xae91f)
#1 0x93ed3d in qd_malloc
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/include/qpid/dispatch/ctools.h:234
#2 0x93ed3d in qdr_core_subscribe
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/route_tables.c:147
#3 0x86e872 in IoAdapter_init
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/python_embedded.c:718
#4 0x7ffa7b81ce22 in type_call (/lib64/libpython3.10.so.1.0+0x11ae22)
Thread T4 created by T3 here:
#0 0x7ffa7bf00866 in pthread_create (/lib64/libasan.so.6+0x56866)
#1 0x86d6a5 in sys_thread
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/posix/threading.c:181
#2 0x91be02 in qdr_core
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_core/router_core.c:124
#3 0x99f402 in qd_router_setup_late
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/src/router_node.c:2127
#4 0x7ffa76707c03 in ffi_call_unix64 (/lib64/libffi.so.6+0x6c03)
#5 0x7ffa760fc98f (<unknown module>)
Thread T3 created by T0 here:
#0 0x7ffa7bf00866 in pthread_create (/lib64/libasan.so.6+0x56866)
#1 0x7ffa7b534698 in
std::thread::_M_start_thread(std::unique_ptr<std::thread::_State,
std::default_delete<std::thread::_State> >, void (*)())
(/lib64/libstdc++.so.6+0xd9698)
#2 0x519c4d in doctest::Context::run()
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/tests/c_unittests/doctest.h:6656
#3 0x45b88c in main
/home/runner/work/qpid-dispatch/qpid-dispatch/qpid-dispatch/tests/c_unittests/doctest.h:6741
#4 0x7ffa7a81755f in __libc_start_call_main (/lib64/libc.so.6+0x2d55f)
SUMMARY: AddressSanitizer: double-free (/lib64/libasan.so.6+0xae627) in free
==3586==ABORTING
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
> Direct leak of 48 byte(s) in 1 object(s) allocated from qdr_core_subscribe in
> router_core/route_tables.c:149
> ------------------------------------------------------------------------------------------------------------
>
> Key: DISPATCH-848
> URL: https://issues.apache.org/jira/browse/DISPATCH-848
> Project: Qpid Dispatch
> Issue Type: Bug
> Components: Tests
> Affects Versions: 1.1.0
> Environment: Git tip of Proton and Dtspatch, commit hashes follow
> {noformat}
> commit aece4ad2f4e4eb2d141020c59c393a30a79f53a9 (upstream/master)
> Author: Andrew Stitcher <[email protected]>
> PROTON-1609: Fix C++ example flags
> {noformat}
> {noformat}
> commit 18c5f8d6293de4227c8c17ef08675cb4eaef689c (HEAD -> master,
> upstream/master)
> Author: Ganesh Murthy <[email protected]>
> NO-JIRA - Removed accidental printf inclusion
> {noformat}
> Reporter: Jiri Daněk
> Priority: Minor
> Labels: memory-bug
> Fix For: Backlog
>
> Attachments: LSan.supp
>
>
> Compile Proton and Dispatch with the Address Sanitizer option (c.f.
> DISPATCH-809) and run ctest
> {noformat}
> # proton
> cmake .. -DBUILD_GO=OFF -DENABLE_SANITIZERS=ON
> -DCMAKE_INSTALL_PREFIX=../install_asan -DCMAKE_BUILD_TYPE=Release -GNinja
> {noformat}
> {noformat}
> # dispatch
> cmake .. -DUSE_SANITIZERS=ON
> -DProton_DIR=`pwd`/../../qpid-proton/install_asan/lib64/cmake/Proton/
> -DCMAKE_BUILD_TYPE=Release -GNinja
> LD_PRELOAD=/nix/store/zahs1kwq4742f6l6h7yy4mdj44zzc1kd-gcc-7-20170409-lib/lib/libasan.so
> ASAN_OPTIONS=symbolize=1,color=always
> LSAN_OPTIONS=suppressions=`pwd`/../../qpid-proton/LSan.supp
> PYTHONPATH=`pwd`/../../qpid-proton/install_asan/lib64/proton/bindings/python
> LD_LIBRARY_PATH=`pwd`/../../qpid-proton/install_asan/lib64 ctest -VV
> {noformat}
> {noformat}
> [...]
> 9: Test Case parse_tree_tests.test_matches: PASS
> 9: Test Case parse_tree_tests.test_multiple_matches: PASS
> 9:
> 9: =================================================================
> 9: ==25904==ERROR: LeakSanitizer: detected memory leaks
> 9:
> 9: Direct leak of 48 byte(s) in 1 object(s) allocated from:
> 9: #0 0x7fb5442cb050 in __interceptor_malloc
> (/nix/store/zahs1kwq4742f6l6h7yy4mdj44zzc1kd-gcc-7-20170409-lib/lib/libasan.so+0xd9050)
> 9: #1 0x7fb543dd94fe in qdr_core_subscribe
> ../src/router_core/route_tables.c:149
> 9: #2 0x7fb543d89ff0 in IoAdapter_init ../src/python_embedded.c:548
> 9: #3 0x7fb542ba8ecd in type_call
> (/nix/store/1snk2wkpv97an87pk1842fgskl1vqhkr-python-2.7.14/lib/libpython2.7.so.1.0+0x9fecd)
> 9:
> 9: -----------------------------------------------------
> 9: Suppressions used:
> 9: count bytes template
> 9: 1310 2021760 dictresize
> 9: 204 188272 _PyObject_GC_Malloc
> 9: 45 39369 PyString_FromStringAndSize
> 9: 308 15056 list_resize
> 9: 11 9784 PyString_FromString
> 9: 2 1280 _PyObject_GC_Resize
> 9: 1035 24104 PyList_New
> 9: 14 672 s_init
> 9: 1 32 PyThread_allocate_lock
> 9: 11 11097 type_new
> 9: 3 3984 unicode_resize
> 9: 179 204712 _PyUnicode_New.part.8
> 9: 11 8028 PyObject_Realloc
> 9: 37 120 _ctypes_alloc_format_string
> 9: 3 24576 set_table_resize
> 9: -----------------------------------------------------
> 9:
> 9: SUMMARY: AddressSanitizer: 48 byte(s) leaked in 1 allocation(s).
> 9/36 Test #9: unit_tests ................................***Failed 0.21
> sec
> {noformat}
> The relevant functions are
> {code}
> static int IoAdapter_init(IoAdapter *self, PyObject *args, PyObject *kwds)
> {
> PyObject *addr;
> char aclass = 'L';
> char phase = '0';
> int treatment = QD_TREATMENT_ANYCAST_CLOSEST;
> if (!PyArg_ParseTuple(args, "OO|cci", &self->handler, &addr, &aclass,
> &phase, &treatment))
> return -1;
> if (!PyCallable_Check(self->handler)) {
> PyErr_SetString(PyExc_TypeError, "IoAdapter.__init__ handler is not
> callable");
> return -1;
> }
> if (treatment == QD_TREATMENT_ANYCAST_BALANCED) {
> PyErr_SetString(PyExc_TypeError, "IoAdapter: ANYCAST_BALANCED is not
> supported for in-process subscriptions");
> return -1;
> }
> Py_INCREF(self->handler);
> self->qd = dispatch;
> self->core = qd_router_core(self->qd);
> const char *address = PyString_AsString(addr);
> if (!address) return -1;
> qd_error_clear();
> self->sub = qdr_core_subscribe(self->core, address, aclass, phase,
> treatment, qd_io_rx_handler, self);
> if (qd_error_code()) {
> PyErr_SetString(PyExc_RuntimeError, qd_error_message());
> return -1;
> }
> return 0;
> }
> {code}
> {code}
> static void IoAdapter_dealloc(IoAdapter* self)
> {
> qdr_core_unsubscribe(self->sub);
> Py_DECREF(self->handler);
> self->ob_type->tp_free((PyObject*)self);
> }
> {code}
> {code}
> static PyTypeObject IoAdapterType = {
> PyObject_HEAD_INIT(0)
> 0, /* ob_size*/
> DISPATCH_MODULE ".IoAdapter", /* tp_name*/
> sizeof(IoAdapter), /* tp_basicsize*/
> 0, /* tp_itemsize*/
> (destructor)IoAdapter_dealloc, /* tp_dealloc*/
> 0, /* tp_print*/
> 0, /* tp_getattr*/
> 0, /* tp_setattr*/
> 0, /* tp_compare*/
> 0, /* tp_repr*/
> 0, /* tp_as_number*/
> 0, /* tp_as_sequence*/
> 0, /* tp_as_mapping*/
> 0, /* tp_hash */
> 0, /* tp_call*/
> 0, /* tp_str*/
> 0, /* tp_getattro*/
> 0, /* tp_setattro*/
> 0, /* tp_as_buffer*/
> Py_TPFLAGS_DEFAULT, /* tp_flags*/
> "Dispatch IO Adapter", /* tp_doc */
> 0, /* tp_traverse */
> 0, /* tp_clear */
> 0, /* tp_richcompare */
> 0, /* tp_weaklistoffset */
> 0, /* tp_iter */
> 0, /* tp_iternext */
> IoAdapter_methods, /* tp_methods */
> 0, /* tp_members */
> 0, /* tp_getset */
> 0, /* tp_base */
> 0, /* tp_dict */
> 0, /* tp_descr_get */
> 0, /* tp_descr_set */
> 0, /* tp_dictoffset */
> (initproc)IoAdapter_init, /* tp_init */
> 0, /* tp_alloc */
> 0, /* tp_new */
> 0, /* tp_free */
> 0, /* tp_is_gc */
> 0, /* tp_bases */
> 0, /* tp_mro */
> 0, /* tp_cache */
> 0, /* tp_subclasses */
> 0, /* tp_weaklist */
> 0, /* tp_del */
> 0 /* tp_version_tag */
> };
> {code}
> I believe that there is indeed nothing that would free the {{sub}} field in
> {{IoAdapter}}.
> Depending on how this is triaged (real issue or not, I am myself a bit unsure
> about freeing memory in relation to Python) I may have more reports coming.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]