I'm bumping this issue as I'm going through Tenacity's source code and finding old Trac links. I'm evaluating them to see if they are still applicable against wxWidgets 3.2(.8.1) under GTK 3 on Wayland at least.
The first example, clipboard-show.cxx, with wxSleep(), results in the following output (truncated to the first 40 lines as it's all the same thing):
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
assertion failed: /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp / 78 / wxClipboardSync / !ms_clipboard / reentrancy in clipboard code
Here's also a snippet of the stacktrace as well:
-- snip --
#19819 0x0000555555562eb9 in MyApp::OnEventLoopEnter (this=0x5555555d4db0, loop=0x0) at clipboard-show.cpp:77
#19820 0x00007ffff7912e95 in wxClipboard::DoGetTarget(wxDataFormat const&) () at /usr/lib/libwx_gtk3u_core-3.2.so.0
#19821 0x00007ffff79136c9 in wxClipboard::DoIsSupported(wxDataFormat const&) () at /usr/lib/libwx_gtk3u_core-3.2.so.0
#19822 0x00007ffff791c378 in wxClipboard::IsSupported(wxDataFormat const&) () at /usr/lib/libwx_gtk3u_core-3.2.so.0
#19823 0x0000555555562eb9 in MyApp::OnEventLoopEnter (this=0x5555555d4db0, loop=0x0) at clipboard-show.cpp:77
#19824 0x00007ffff7912e95 in wxClipboard::DoGetTarget(wxDataFormat const&) () at /usr/lib/libwx_gtk3u_core-3.2.so.0
#19825 0x00007ffff79136c9 in wxClipboard::DoIsSupported(wxDataFormat const&) () at /usr/lib/libwx_gtk3u_core-3.2.so.0
#19826 0x00007ffff791c378 in wxClipboard::IsSupported(wxDataFormat const&) () at /usr/lib/libwx_gtk3u_core-3.2.so.0
#19827 0x0000555555560bc9 in CustomFrame::OnShow (this=0x555555741850, event=...) at clipboard-show.cpp:40
#19828 0x00007ffff71642b1 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /usr/lib/libwx_baseu-3.2.so.0
#19829 0x00007ffff7164654 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () at /usr/lib/libwx_baseu-3.2.so.0
#19830 0x00007ffff7166f68 in wxEvtHandler::TryHereOnly(wxEvent&) () at /usr/lib/libwx_baseu-3.2.so.0
#19831 0x00007ffff7166ff0 in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /usr/lib/libwx_baseu-3.2.so.0
#19832 0x00007ffff716711a in wxEvtHandler::ProcessEvent(wxEvent&) () at /usr/lib/libwx_baseu-3.2.so.0
#19833 0x00007ffff7167523 in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /usr/lib/libwx_baseu-3.2.so.0
#19834 0x00007ffff7946bc8 in wxWindow::Show(bool) () at /usr/lib/libwx_gtk3u_core-3.2.so.0
#19835 0x00007ffff793e58c in wxTopLevelWindowGTK::Show(bool) () at /usr/lib/libwx_gtk3u_core-3.2.so.0
#19836 0x0000555555562e2d in MyApp::OnInit (this=0x5555555d4db0) at clipboard-show.cpp:62
#19837 0x0000555555562dc9 in wxAppConsoleBase::CallOnInit (this=0x5555555d4db0) at /usr/include/wx-3.2/wx/app.h:93
#19838 0x00007ffff70ec302 in wxEntry(int&, wchar_t**) () at /usr/lib/libwx_baseu-3.2.so.0
#19839 0x0000555555560790 in main (argc=1, argv=0x7fffffffd988) at clipboard-show.cpp:88
Note that these lines get repeated over and over:
#19819 0x0000555555562eb9 in MyApp::OnEventLoopEnter (this=0x5555555d4db0, loop=0x0) at clipboard-show.cpp:77
#19820 0x00007ffff7912e95 in wxClipboard::DoGetTarget(wxDataFormat const&) () at /usr/lib/libwx_gtk3u_core-3.2.so.0
#19821 0x00007ffff79136c9 in wxClipboard::DoIsSupported(wxDataFormat const&) () at /usr/lib/libwx_gtk3u_core-3.2.so.0
#19822 0x00007ffff791c378 in wxClipboard::IsSupported(wxDataFormat const&) () at /usr/lib/libwx_gtk3u_core-3.2.so.0
#19823 0x0000555555562eb9 in MyApp::OnEventLoopEnter (this=0x5555555d4db0, loop=0x0) at clipboard-show.cpp:77
(That's probably expected but I'm trying to be as detailed as possible).
If we comment out the wxSleep() line in the first example, the output appears to be the same, but the stacktrace is a bit different:
#20420 0x00007ffff7912e95 in wxEventLoopGuarantor::~wxEventLoopGuarantor (this=<synthetic pointer>, this=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/include/wx/evtloop.h:439
#20421 wxEventLoopGuarantor::~wxEventLoopGuarantor (this=<optimized out>, this=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/include/wx/evtloop.h:435
#20422 wxClipboardSync::~wxClipboardSync (this=0x7fffffffd0a7, this=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:91
#20423 wxClipboard::DoGetTarget (this=this@entry=0x5555556af0b0, format=...) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:587
#20424 0x00007ffff79136c9 in wxClipboard::DoIsSupported (this=0x5555556af0b0, format=...) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:569
#20425 0x00007ffff791c378 in wxClipboard::IsSupported (this=0x5555556af0b0, format=...) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:780
#20426 0x0000555555562e99 in MyApp::OnEventLoopEnter (this=0x5555555d4db0, loop=0x0) at clipboard-show.cpp:77
#20427 0x00007ffff7912e95 in wxEventLoopGuarantor::~wxEventLoopGuarantor (this=<synthetic pointer>, this=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/include/wx/evtloop.h:439
#20428 wxEventLoopGuarantor::~wxEventLoopGuarantor (this=<optimized out>, this=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/include/wx/evtloop.h:435
#20429 wxClipboardSync::~wxClipboardSync (this=0x7fffffffd307, this=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:91
#20430 wxClipboard::DoGetTarget (this=this@entry=0x5555556af0b0, format=...) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:587
#20431 0x00007ffff79136c9 in wxClipboard::DoIsSupported (this=0x5555556af0b0, format=...) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:569
#20432 0x00007ffff791c378 in wxClipboard::IsSupported (this=0x5555556af0b0, format=...) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:780
#20433 0x0000555555560bb9 in CustomFrame::OnShow (this=0x555555741f50, event=...) at clipboard-show.cpp:40
#20434 0x00007ffff71642b1 in wxEvtHandler::ProcessEventIfMatchesId (entry=<optimized out>, handler=handler@entry=0x555555741f50, event=...)
at /usr/src/debug/wxwidgets/wxWidgets/src/common/event.cpp:1482
#20435 0x00007ffff7164654 in wxEventHashTable::HandleEvent (this=<optimized out>, event=..., self=self@entry=0x555555741f50)
at /usr/src/debug/wxwidgets/wxWidgets/src/common/event.cpp:1087
#20436 0x00007ffff7166f68 in wxEvtHandler::TryHereOnly (this=this@entry=0x555555741f50, event=...) at /usr/src/debug/wxwidgets/wxWidgets/src/common/event.cpp:1679
#20437 0x00007ffff7166ff0 in wxEvtHandler::TryBeforeAndHere (this=0x555555741f50, event=...) at /usr/src/debug/wxwidgets/wxWidgets/include/wx/event.h:4013
#20438 wxEvtHandler::ProcessEventLocally (this=0x555555741f50, event=...) at /usr/src/debug/wxwidgets/wxWidgets/src/common/event.cpp:1612
#20439 0x00007ffff716711a in wxEvtHandler::ProcessEvent (this=0x555555741f50, event=...) at /usr/src/debug/wxwidgets/wxWidgets/src/common/event.cpp:1585
#20440 0x00007ffff7167523 in wxEvtHandler::SafelyProcessEvent (this=<optimized out>, event=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/src/common/event.cpp:1701
#20441 0x00007ffff7946bc8 in wxWindow::Show (this=0x555555741f50, show=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/window.cpp:4521
#20442 0x00007ffff793e58c in wxTopLevelWindowGTK::Show (this=0x555555741f50, show=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/toplevel.cpp:1182
#20443 0x0000555555562e1d in MyApp::OnInit (this=0x5555555d4db0) at clipboard-show.cpp:62
#20444 0x0000555555562db9 in wxAppConsoleBase::CallOnInit (this=0x5555555d4db0) at /usr/include/wx-3.2/wx/app.h:93
#20445 0x00007ffff70ec302 in wxEntry (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/src/common/init.cpp:481
#20446 0x0000555555560780 in main (argc=1, argv=0x7fffffffd988) at clipboard-show.cpp:88
For some reason, wxEventLoopGuarantor's destructor appears to be called twice, which I find interesting. In fact, it happens to be called at all in contrast to if wxSleep() was present. Additionally, the following lines appear to repeat also:
#20420 0x00007ffff7912e95 in wxEventLoopGuarantor::~wxEventLoopGuarantor (this=<synthetic pointer>, this=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/include/wx/evtloop.h:439
#20421 wxEventLoopGuarantor::~wxEventLoopGuarantor (this=<optimized out>, this=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/include/wx/evtloop.h:435
#20422 wxClipboardSync::~wxClipboardSync (this=0x7fffffffd0a7, this=<optimized out>) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:91
#20423 wxClipboard::DoGetTarget (this=this@entry=0x5555556af0b0, format=...) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:587
#20424 0x00007ffff79136c9 in wxClipboard::DoIsSupported (this=0x5555556af0b0, format=...) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:569
#20425 0x00007ffff791c378 in wxClipboard::IsSupported (this=0x5555556af0b0, format=...) at /usr/src/debug/wxwidgets/wxWidgets/src/gtk/clipbrd.cpp:780
#20426 0x0000555555562e99 in MyApp::OnEventLoopEnter (this=0x5555555d4db0, loop=0x0) at clipboard-show.cpp:77
This might also be expected, but again, I'm trying to highlight what I find interesting in my attempt at being as detailed as possible.
The second example, clipboard-timer.cxx, however, does not appear to show any issue. At least, there's no output on my end, and there's a blank frame that comes up. I can say that in the almost 11 years this issue has been open, it's possible that it has been partially resolved. At least, running that example under a debugger doesn't seem to catch any assertion points aside from no terminal output.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.![]()
Sorry, I still don't know how to fix this properly and no time to look at it now.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.![]()