Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

calling exit() in a binary module with a QoreProgramHelper open in a foreign thread can cause a crash #4228

Closed
davidnich opened this issue Apr 30, 2021 · 0 comments

Comments

@davidnich
Copy link
Contributor

ex with Java:

java: /home/david/src/qore/git/qore/lib/thread.cpp:2126: QoreProgram* getProgram(): Assertion `td' failed.

Thread 1 "java" received signal SIGABRT, Aborted.
--Type <RET> for more, q to quit, c to continue without paging--
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
49	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1  0x00007ffff7dcf864 in __GI_abort () at abort.c:79
#2  0x00007ffff7dcf749 in __assert_fail_base (fmt=0x7ffff7f58f78 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7fffa7336c05 "td", 
    file=0x7fffa73367a8 "/home/david/src/qore/git/qore/lib/thread.cpp", line=2126, function=<optimized out>) at assert.c:92
#3  0x00007ffff7de13d6 in __GI___assert_fail (assertion=0x7fffa7336c05 "td", file=0x7fffa73367a8 "/home/david/src/qore/git/qore/lib/thread.cpp", 
    line=2126, function=0x7fffa73374f9 "QoreProgram* getProgram()") at assert.c:101
#4  0x00007fffa6fb6476 in getProgram () at /home/david/src/qore/git/qore/lib/thread.cpp:2126
#5  0x00007fffa7120519 in Var::clearLocal (this=0x7ffff06c6100, xsink=0x7fffa671e1c8 <jni::Globals::global_xsink>)
    at /home/david/src/qore/git/qore/include/qore/intern/Variable.h:199
#6  0x00007fffa6ef3653 in GlobalVariableList::clearAll (this=0x7ffff064cf70, xsink=0x7fffa671e1c8 <jni::Globals::global_xsink>)
    at /home/david/src/qore/git/qore/lib/GlobalVariableList.cpp:82
#7  0x00007fffa6f6476a in qore_ns_private::clearData (this=0x7ffff064ce40, xsink=0x7fffa671e1c8 <jni::Globals::global_xsink>)
    at /home/david/src/qore/git/qore/lib/QoreNamespace.cpp:2134
#8  0x00007fffa6f5df21 in QoreNamespaceList::clearData (this=0x7ffff06177d0, xsink=0x7fffa671e1c8 <jni::Globals::global_xsink>)
    at /home/david/src/qore/git/qore/lib/QoreNamespace.cpp:701
#9  0x00007fffa6f6479b in qore_ns_private::clearData (this=0x7ffff0617710, xsink=0x7fffa671e1c8 <jni::Globals::global_xsink>)
    at /home/david/src/qore/git/qore/lib/QoreNamespace.cpp:2138
#10 0x00007fffa715011f in qore_root_ns_private::clearData (ns=..., xsink=0x7fffa671e1c8 <jni::Globals::global_xsink>)
    at /home/david/src/qore/git/qore/include/qore/intern/QoreNamespaceIntern.h:2031
#11 0x00007fffa715e40b in qore_program_private::clearNamespaceData (this=0x7ffff0643c10, xsink=0x7fffa671e1c8 <jni::Globals::global_xsink>)
    at /home/david/src/qore/git/qore/include/qore/intern/qore_program_private.h:2319
#12 0x00007fffa6f51083 in qore_program_private::waitForTerminationAndClear (this=0x7ffff0643c10, xsink=0x7fffa671e1c8 <jni::Globals::global_xsink>)
    at /home/david/src/qore/git/qore/lib/QoreProgram.cpp:618
#13 0x00007fffa6f5608d in QoreProgram::waitForTerminationAndDeref (this=0x7ffff0643bf0, xsink=0x7fffa671e1c8 <jni::Globals::global_xsink>)
    at /home/david/src/qore/git/qore/lib/QoreProgram.cpp:1583
#14 0x00007fffa6f5af85 in QoreProgramHelper::~QoreProgramHelper (this=0x7ffff0643b30, __in_chrg=<optimized out>)
    at /home/david/src/qore/git/qore/lib/QoreProgramHelper.cpp:50
#15 0x00007fffa6313b2c in std::default_delete<QoreProgramHelper>::operator() (this=0x7fffa671e1d0 <jni::Globals::qph>, __ptr=0x7ffff0643b30)
    at /usr/include/c++/10/bits/unique_ptr.h:85
@davidnich davidnich added this to the 0.9.15 milestone Apr 30, 2021
@davidnich davidnich self-assigned this Apr 30, 2021
@davidnich davidnich added this to To do in Qore Development via automation Apr 30, 2021
davidnich added a commit that referenced this issue Apr 30, 2021
…d in a binary module that could cause a crash
davidnich added a commit that referenced this issue Apr 30, 2021
…d in a binary module that could cause a crash (#4229)
davidnich added a commit that referenced this issue May 1, 2021
…d in a binary module that could cause a crash (#4229)
davidnich added a commit that referenced this issue May 1, 2021
…d in a binary module that could cause a crash (#4229) (#4230)
@davidnich davidnich added the fixed label May 1, 2021
Qore Development automation moved this from To do to Done May 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

1 participant