[ https://issues.apache.org/jira/browse/METRON-1910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16706099#comment-16706099 ]
ASF GitHub Bot commented on METRON-1910: ---------------------------------------- Github user JonZeolla commented on the issue: https://github.com/apache/metron-bro-plugin-kafka/pull/20 I wish I had more time to work on this, but it may be a while before I could revisit. What I found was that if any of the `delete`s are duplicated it segfaults on exit. From some commit messages it seems that in bro, the destructor is called from the main thread, but `DoFinish` is called from a child thread, so we should keep this cleanup in `DoFinish`. > bro plugin segfaults on src/KafkaWriter.cc:72 > --------------------------------------------- > > Key: METRON-1910 > URL: https://issues.apache.org/jira/browse/METRON-1910 > Project: Metron > Issue Type: Bug > Reporter: Jon Zeolla > Assignee: Jon Zeolla > Priority: Major > > I was testing metron-bro-plugin-kafka 0.3.0 rc1 and noticed that when I ran > pcaps against a bro instance it would segfault at the end of each run. Below > is what gdb tells me. Looks like this was somewhat recently changed @ > [https://github.com/apache/metron-bro-plugin-kafka/commit/1dfc5239fae31a64026188109d1e346ce93d5c02#diff-361be0491d615952129ed5c8f39c9683L57] > {code} > [root@node1 cores]# gdb /usr/local/bro/bin/bro > core.bro.30769.node1.1543416558 > GNU gdb (GDB) Red Hat Enterprise Linux (7.2-92.el6) > Copyright (C) 2010 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later > <[http://gnu.org/licenses/gpl.html]> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. Type "show copying" > and "show warranty" for details. > This GDB was configured as "x86_64-redhat-linux-gnu". > For bug reporting instructions, please see: > <[http://www.gnu.org/software/gdb/bugs/]>... > Reading symbols from /usr/local/bro/bin/bro...done. > [New Thread 30769] > Reading symbols from /usr/lib64/libpcap.so.1...(no debugging symbols > found)...done. > Loaded symbols for /usr/lib64/libpcap.so.1 > Reading symbols from /usr/lib64/libssl.so.10...(no debugging symbols > found)...done. > Loaded symbols for /usr/lib64/libssl.so.10 > Reading symbols from /usr/lib64/libcrypto.so.10...(no debugging symbols > found)...done. > Loaded symbols for /usr/lib64/libcrypto.so.10 > Reading symbols from /lib64/libresolv.so.2...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libresolv.so.2 > Reading symbols from /lib64/libz.so.1...(no debugging symbols found)...done. > Loaded symbols for /lib64/libz.so.1 > Reading symbols from /lib64/libpthread.so.0...(no debugging symbols > found)...done. > [Thread debugging using libthread_db enabled] > Loaded symbols for /lib64/libpthread.so.0 > Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done. > Loaded symbols for /lib64/libdl.so.2 > Reading symbols from /usr/lib64/libstdc++.so.6...(no debugging symbols > found)...done. > Loaded symbols for /usr/lib64/libstdc++.so.6 > Reading symbols from /lib64/libm.so.6...(no debugging symbols found)...done. > Loaded symbols for /lib64/libm.so.6 > Reading symbols from /lib64/libgcc_s.so.1...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libgcc_s.so.1 > Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done. > Loaded symbols for /lib64/libc.so.6 > Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols > found)...done. > Loaded symbols for /lib64/ld-linux-x86-64.so.2 > Reading symbols from /lib64/libgssapi_krb5.so.2...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libgssapi_krb5.so.2 > Reading symbols from /lib64/libkrb5.so.3...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libkrb5.so.3 > Reading symbols from /lib64/libcom_err.so.2...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libcom_err.so.2 > Reading symbols from /lib64/libk5crypto.so.3...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libk5crypto.so.3 > Reading symbols from /lib64/libkrb5support.so.0...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libkrb5support.so.0 > Reading symbols from /lib64/libkeyutils.so.1...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libkeyutils.so.1 > Reading symbols from /lib64/libselinux.so.1...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libselinux.so.1 > Reading symbols from /lib64/libnss_files.so.2...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libnss_files.so.2 > Reading symbols from /lib64/libnss_dns.so.2...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libnss_dns.so.2 > Reading symbols from > /usr/local/bro/lib/bro/plugins/packages/metron-bro-plugin-kafka//lib/APACHE-KAFKA.linux-x86_64.so...done. > Loaded symbols for > /usr/local/bro/lib/bro/plugins/packages/metron-bro-plugin-kafka//lib/APACHE-KAFKA.linux-x86_64.so > Reading symbols from /usr/local/lib/librdkafka++.so.1...done. > Loaded symbols for /usr/local/lib/librdkafka++.so.1 > Reading symbols from /usr/local/lib/librdkafka.so.1...done. > Loaded symbols for /usr/local/lib/librdkafka.so.1 > Reading symbols from /usr/lib64/libsasl2.so.2...(no debugging symbols > found)...done. > Loaded symbols for /usr/lib64/libsasl2.so.2 > Reading symbols from /lib64/librt.so.1...(no debugging symbols found)...done. > Loaded symbols for /lib64/librt.so.1 > Reading symbols from /lib64/libcrypt.so.1...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libcrypt.so.1 > Reading symbols from /lib64/libfreebl3.so...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libfreebl3.so > Reading symbols from /usr/lib64/sasl2/libgssapiv2.so...(no debugging symbols > found)...done. > Loaded symbols for /usr/lib64/sasl2/libgssapiv2.so > Reading symbols from /usr/lib64/sasl2/libplain.so...(no debugging symbols > found)...done. > Loaded symbols for /usr/lib64/sasl2/libplain.so > Reading symbols from /usr/lib64/sasl2/libanonymous.so...(no debugging > symbols found)...done. > Loaded symbols for /usr/lib64/sasl2/libanonymous.so > Reading symbols from /usr/lib64/sasl2/libsasldb.so...(no debugging symbols > found)...done. > Loaded symbols for /usr/lib64/sasl2/libsasldb.so > Reading symbols from /lib64/libdb-4.7.so...(no debugging symbols > found)...done. > Loaded symbols for /lib64/libdb-4.7.so > Reading symbols from /usr/lib64/sasl2/liblogin.so...(no debugging symbols > found)...done. > Loaded symbols for /usr/lib64/sasl2/liblogin.so > Core was generated by `bro -r nitroba.pcap > /usr/local/bro/share/bro/site/local.bro -C'. > Program terminated with signal 11, Segmentation fault. > #0 0x00007f1bca06f8b6 in logging::writer::KafkaWriter::~KafkaWriter > (this=0x5ef6a40, __in_chrg=<value optimized out>) at > /root/.bro-pkg/clones/package/metron-bro-plugin-kafka/src/KafkaWriter.cc:72 > 72 delete topic; > Missing separate debuginfos, use: debuginfo-install > cyrus-sasl-gssapi-2.1.23-15.el6_6.2.x86_64 > cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64 > cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64 db4-4.7.25-22.el6.x86_64 > glibc-2.12-1.212.el6.x86_64 keyutils-libs-1.4-5.el6.x86_64 > krb5-libs-1.10.3-65.el6.x86_64 libcom_err-1.41.12-24.el6.x86_64 > libgcc-4.4.7-23.el6.x86_64 libpcap-1.4.0-4.20130826git2dbcaa1.el6.x86_64 > libselinux-2.0.94-7.el6.x86_64 libstdc++-4.4.7-23.el6.x86_64 > nss-softokn-freebl-3.14.3-23.3.el6_8.x86_64 openssl-1.0.1e-57.el6.x86_64 > zlib-1.2.3-29.el6.x86_64 > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)