Application sometimes not starting on Linux Topic is solved
Application sometimes not starting on Linux
I am using wxWidgets 2.9.4 shared library, unicode, release build on Ubuntu 12.10.
Approximately 30% of the time wxWidgets applications do not start.
This applies to both the wxWidgets sample applications run from the command line and applications I have developed myself run from within Codelite.
Unfortunately I don't know where to start debugging this problem. So far I have tried putting std::cout << statements into the "MainApp" (wxApp subclass) constructor and this is always run, however the next std::cout << statement at the start of the "MainFrame" (wxFrame subclass) is not run.
Therefore I can only conclude that it is something in the wxFrame constructor causing the problem.
The trouble is that this almost never happens when I use the debugger. I say 'almost' because it may have happened once or twice but I put it down to a coding error I was investigating.
Thanks for advice!
Approximately 30% of the time wxWidgets applications do not start.
This applies to both the wxWidgets sample applications run from the command line and applications I have developed myself run from within Codelite.
Unfortunately I don't know where to start debugging this problem. So far I have tried putting std::cout << statements into the "MainApp" (wxApp subclass) constructor and this is always run, however the next std::cout << statement at the start of the "MainFrame" (wxFrame subclass) is not run.
Therefore I can only conclude that it is something in the wxFrame constructor causing the problem.
The trouble is that this almost never happens when I use the debugger. I say 'almost' because it may have happened once or twice but I put it down to a coding error I was investigating.
Thanks for advice!
wxWidgets 3.1.2, MinGW64 8.1.0, g++ 8.1.0, Ubuntu 19.04, Windows 10, CodeLite + wxCrafter
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
Re: Application sometimes not starting on Linux
What do you mean by "do not start" ?iwbnwif wrote:Approximately 30% of the time wxWidgets applications do not start.
Do they crash? or simply hangs?
Try running your application under gdb from within codelite, place a breakpoint at the last line of the wxFrame constructor - when your application hangs, "pause" the application from within codelite and check the "Call Stack" window that should give you a hint where your application is spending time...
Eran
Re: Application sometimes not starting on Linux
Thanks Eran.
I mean "simply hang". All initialisation (including construction of a static instance of a class) is completed. I have put several std::cout << at various points and the last one which gets displayed is always the one immediately prior to the MainFrame ctor call in main.cpp.
Actually I had already tried this several times but it seems just the fact of having a breakpoint in the MainFrame ctor stops it from hanging. I should stress also that the same thing happens with the wxWidgets samples.
Anyway inspired by your suggestion I created a new class that is never initialised and put a breakpoint in there and was able to press the pause button when it hung. This is the result copied from the call stack window:
If I start the debugger again the application continues to hang (my apologies if that sounds like an oxymoron!)
If I pause again the call stack varies, but always ends in a __kernel_vsyscall, for example:
I have googled about this a bit to try to work out what is happening and then I found this http://trac.wxwidgets.org/ticket/11133 however although the symptoms are the same, I don't think that the cause is related.
I am using Ubuntu 12.10 with the Codelite build of wxWidgets.
I mean "simply hang". All initialisation (including construction of a static instance of a class) is completed. I have put several std::cout << at various points and the last one which gets displayed is always the one immediately prior to the MainFrame ctor call in main.cpp.
Actually I had already tried this several times but it seems just the fact of having a breakpoint in the MainFrame ctor stops it from hanging. I should stress also that the same thing happens with the wxWidgets samples.
Anyway inspired by your suggestion I created a new class that is never initialised and put a breakpoint in there and was able to press the pause button when it hung. This is the result copied from the call stack window:
Code: Select all
0 0xb7fdd424 __kernel_vsyscall
1 0xb6dff5a2 __lll_lock_wait
2 0xb6dfaecb _L_lock_891
3 0xb6dfae60 pthread_mutex_lock
4 0xb625ced0 g_mutex_lock
5 0xb5d989a1 ??
6 0xb5d239b2 g_initable_init
7 0xb5d9939a g_bus_get_sync
8 0xb4e2919a ??
9 0xb642d1e4 g_type_create_instance
10 0xb640f6b1 ??
11 0xb6411399 g_object_newv
12 0xb6411938 g_object_new
13 0xb5d26fcb ??
14 0xb5d27180 ??
15 0xb5d54f9d g_vfs_get_default
16 0xb5d11583 g_file_new_for_path
17 0xb4cd9ae1 ??
18 0xb642d1e4 g_type_create_instance
19 0xb640f6b1 ??
20 0xb4cc48df ??
21 0xb4cd7c68 ??
22 0xb6411399 g_object_newv
23 0xb6411938 g_object_new
24 0xb4cd7cd2 ibus_bus_new
25 0xb57209ca ??
26 0xb642a472 g_type_class_ref
27 0xb641146e g_object_newv
28 0xb6411938 g_object_new
29 0xb572162b ibus_im_context_new
30 0xb571f162 im_module_create
31 0xb6617886 _gtk_im_module_create /build/buildd/gtk+2.0-2.24.13/gtk/gtkimmodule.c 614
32 0xb6618366 gtk_im_multicontext_get_slave /build/buildd/gtk+2.0-2.24.13/gtk/gtkimmulticontext.c 254
33 0xb66183ad gtk_im_multicontext_set_use_preedit /build/buildd/gtk+2.0-2.24.13/gtk/gtkimmulticontext.c 410
34 0xb661556f IA__gtk_im_context_set_use_preedit /build/buildd/gtk+2.0-2.24.13/gtk/gtkimcontext.c 581
35 0xb732ae7c wxWindow::PostCreation ../src/gtk/window.cpp 2496
36 0xb73234f8 wxTopLevelWindowGTK::Create ../src/gtk/toplevel.cpp 622
37 0xb737d363 wxFrame::Create ../src/gtk/frame.cpp 56
38 0x080b8ab6 wxFrame::wxFrame /usr/include/wx-2.9-unofficial/wx/gtk/frame.h 32
39 0x080b30f3 MainFrameBase::MainFrameBase /home/iwbnwif/Experimental/wxtest/test/svntest/wxCrafter.cpp 17
40 0x0805a3c7 MainFrame::MainFrame /home/iwbnwif/Experimental/wxtest/test/svntest/MainFrame.cpp 44
41 0x0805a1e4 MainApp::OnInit /home/iwbnwif/Experimental/wxtest/test/svntest/main.cpp 24
42 0x08059ce0 wxAppConsoleBase::CallOnInit /usr/include/wx-2.9-unofficial/wx/app.h 94
43 0xb701b6b3 wxEntry ../src/common/init.cpp 456
44 0xb701b766 wxEntry ../src/common/init.cpp 484
45 0x080596e7 main /home/iwbnwif/Experimental/wxtest/test/svntest/main.cpp 33
If I pause again the call stack varies, but always ends in a __kernel_vsyscall, for example:
Code: Select all
0 0xb7fdd424 __kernel_vsyscall
1 0xb6d27690 poll
2 0xb622a74b g_poll
3 0xb621bd00 ??
4 0xb621c1db g_main_loop_run
5 0xb5da5b7a ??
6 0xb6241303 ??
7 0xb6df8d4c start_thread
8 0xb6d35dde clone
I am using Ubuntu 12.10 with the Codelite build of wxWidgets.
wxWidgets 3.1.2, MinGW64 8.1.0, g++ 8.1.0, Ubuntu 19.04, Windows 10, CodeLite + wxCrafter
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
Re: Application sometimes not starting on Linux
Okay, I have solved this, or at least found an effective workaround.
I have added a before the MainFrame constructor is called.
The reason for trying this is that large wxWidgets programs such as Codelight and FlameRobin never fail to start but smaller ones like my application and the samples often exhibit this problem.
If someone understands the reason this is happening I would be interested to know.
I have added a
Code: Select all
wxMilliSleep(10);
The reason for trying this is that large wxWidgets programs such as Codelight and FlameRobin never fail to start but smaller ones like my application and the samples often exhibit this problem.
If someone understands the reason this is happening I would be interested to know.
wxWidgets 3.1.2, MinGW64 8.1.0, g++ 8.1.0, Ubuntu 19.04, Windows 10, CodeLite + wxCrafter
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
Re: Application sometimes not starting on Linux
Hi,
What happens if you run the (unaltered) wx samples from a terminal? Do you still get the hang then? If not, it suggests there might be an issue with the way CodeLite runs an app.
Regards,
David
Presumably this is somehow a timing issue, which would also explain why it doesn't happen when run in a debugger.If someone understands the reason this is happening I would be interested to know.
What happens if you run the (unaltered) wx samples from a terminal? Do you still get the hang then? If not, it suggests there might be an issue with the way CodeLite runs an app.
Regards,
David
Re: Application sometimes not starting on Linux
Yes I agree its a timing issue. Actually I had to increase the wxMilliSleep value to 100 because I was still getting occasional hangs with it set at 10.
The samples do hang from the command line (I haven't tried running them inside Codelite).
The samples do hang from the command line (I haven't tried running them inside Codelite).
wxWidgets 3.1.2, MinGW64 8.1.0, g++ 8.1.0, Ubuntu 19.04, Windows 10, CodeLite + wxCrafter
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
Re: Application sometimes not starting on Linux
That's surprising. Is there anything unusual about your ubuntu installation, or your hardware? Which DE do you use?The samples do hang from the command line
Re: Application sometimes not starting on Linux
Nothing really unusual it is a stock 12.10 Ubuntu (i.e. not Kubuntu etc.).
The DE is the standard Unity - I don't think you can change it.
Its an Dell Optiplex 755. I do have two 22" monitors (big desktop mode) and have installed the closed source ATI driver.
The DE is the standard Unity - I don't think you can change it.
Its an Dell Optiplex 755. I do have two 22" monitors (big desktop mode) and have installed the closed source ATI driver.
wxWidgets 3.1.2, MinGW64 8.1.0, g++ 8.1.0, Ubuntu 19.04, Windows 10, CodeLite + wxCrafter
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
Re: Application sometimes not starting on Linux
You certainly can! There are lots of saner alternatives: look in synaptic. kde (the kde-standard package) is a commonly-used one; but for ubuntu I use lxde, which is usable yet light.The DE is the standard Unity - I don't think you can change it.
However I did just test the minimal sample in unity too. It worked without a problem in both DEs.
The only thing I can think of, if it's not too inconvenient, is to try 'minimal' with just a single monitor.
Re: Application sometimes not starting on Linux
yes of course you are right that there are other options. What I meant was that the old Gnome desktop was available any more.
I disabled on monitor using the ATI control panel and still get the hang. I did think about creating a VM and testing things in there but if it is a timing issue I am not sure that would help.
I think it is a threading issue and looks a lot like livelock (but I know very little about threads and nothing about how wxWidgets uses them under the hood).
If I run 'htop' and track my application name, with a normal start I get 8 threads but when it hangs there are only two.
Actually I am quite happy to call this 'solved' because at best it has been an annoyance during development and now I can have a reasonable workaround it doesn't feel like a problem any more
I disabled on monitor using the ATI control panel and still get the hang. I did think about creating a VM and testing things in there but if it is a timing issue I am not sure that would help.
I think it is a threading issue and looks a lot like livelock (but I know very little about threads and nothing about how wxWidgets uses them under the hood).
If I run 'htop' and track my application name, with a normal start I get 8 threads but when it hangs there are only two.
Actually I am quite happy to call this 'solved' because at best it has been an annoyance during development and now I can have a reasonable workaround it doesn't feel like a problem any more
wxWidgets 3.1.2, MinGW64 8.1.0, g++ 8.1.0, Ubuntu 19.04, Windows 10, CodeLite + wxCrafter
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
Some people, when confronted with a GUI problem, think "I know, I'll use Eclipse RCP". Now they have two problems.
-
- In need of some credit
- Posts: 3
- Joined: Wed Apr 16, 2014 5:30 pm
Re: Application sometimes not starting on Linux
I am having the same (or similar) issue on Ubuntu 13.10 with gtk2 and wxwidgets3.
Frequently when I launch my small app it hangs before showing the main frame.
Unfortunately the wxMillisleep( 100 ) workaround did not help for me. I tried other values for the sleep, which either had no effect or made it worse.
I'm at a loss to work around this in my code, and I don't fully understand the problem.
Any advice would be greatly appreciated.
I attached gdb to the hung app and dumped this backtrace:
I also ran the app through valgrind's helgrind tool, which produced this output:
Frequently when I launch my small app it hangs before showing the main frame.
Unfortunately the wxMillisleep( 100 ) workaround did not help for me. I tried other values for the sleep, which either had no effect or made it worse.
I'm at a loss to work around this in my code, and I don't fully understand the problem.
Any advice would be greatly appreciated.
I attached gdb to the hung app and dumped this backtrace:
Code: Select all
#0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1 0x00007f299860b192 in _L_lock_1142 () from /lib/x86_64-linux-gnu/libpthread.so.0
#2 0x00007f299860b110 in __GI___pthread_mutex_lock (mutex=0x7f29880011b0) at pthread_mutex_lock.c:104
#3 0x00007f29967f73a1 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007f299450e9b0 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#5 0x00007f2994513edb in g_bus_get_sync () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#6 0x00007f298d29e4f8 in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
#7 0x00007f2996f0cc3b in g_type_create_instance () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8 0x00007f2996ef10e5 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9 0x00007f2996ef2edd in g_object_newv () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007f2996ef368c in g_object_new () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007f29944ae6e1 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#12 0x00007f29944ae860 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#13 0x00007f299449b54e in g_file_new_for_path () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#14 0x00007f298d4e3b8d in ?? () from /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5
#15 0x00007f2996f0cc3b in g_type_create_instance () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007f2996ef0cc8 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x00007f298d4e6325 in ?? () from /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5
#18 0x00007f2996ef1074 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x00007f2996ef3294 in g_object_new_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#20 0x00007f2996ef3674 in g_object_new () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x00007f298d4e41e6 in ibus_bus_new_async () from /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5
#22 0x00007f298d71e28a in ?? () from /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so
#23 0x00007f2996f0a34e in g_type_class_ref () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#24 0x00007f2996ef2f29 in g_object_newv () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#25 0x00007f2996ef368c in g_object_new () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#26 0x00007f298d71ece2 in ibus_im_context_new () from /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so
#27 0x00007f29974f54ee in _gtk_im_module_create (context_id=<optimized out>) at /build/buildd/gtk+2.0-2.24.20/gtk/gtkimmodule.c:614
#28 0x00007f29974f5dd9 in gtk_im_multicontext_get_slave (multicontext=multicontext@entry=0x7f2988002330) at /build/buildd/gtk+2.0-2.24.20/gtk/gtkimmulticontext.c:254
#29 0x00007f29974f5e10 in gtk_im_multicontext_set_use_preedit (context=0x7f2988002330, use_preedit=0) at /build/buildd/gtk+2.0-2.24.20/gtk/gtkimmulticontext.c:410
#30 0x00007f2999384e3e in wxWindow::PostCreation (this=0x2130cd0) at ../src/gtk/window.cpp:2542
#31 0x00007f299937c4e0 in wxTopLevelWindowGTK::Create (this=this@entry=0x2130cd0, parent=parent@entry=0x0, id=id@entry=-1, title=..., pos=..., sizeOrig=..., style=541597248, name=...)
at ../src/gtk/toplevel.cpp:662
#32 0x00007f29993cbfb5 in wxFrame::Create (this=this@entry=0x2130cd0, parent=parent@entry=0x0, id=id@entry=-1, title=..., pos=..., sizeOrig=..., style=style@entry=541597248, name=...)
at ../src/gtk/frame.cpp:56
#33 0x000000000043021c in wxFrame (name=..., style=541597248, size=..., pos=..., title=..., id=-1, parent=0x0, this=0x2130cd0) at /usr/include/wx-3.0/wx/gtk/frame.h:31
#34 DatBrowserFrameBase::DatBrowserFrameBase (this=0x2130cd0, parent=0x0, id=-1, title=..., pos=..., size=..., style=541597248) at /home/administrator/Source/datbrowser/DatBrowser_GUI.cpp:20
#35 0x0000000000427696 in DatBrowserFrame::DatBrowserFrame (this=0x2130cd0) at /home/administrator/Source/datbrowser/DatBrowserFrame.cpp:167
#36 0x0000000000437a11 in DatBrowser::CreateFrame (this=this@entry=0x20990b0) at /home/administrator/Source/datbrowser/datbrowser.cpp:64
#37 0x00000000004380fe in DatBrowser::OnInit (this=0x20990b0) at /home/administrator/Source/datbrowser/datbrowser.cpp:41
#38 0x00007f299891212c in wxEntry (argc=@0x7f2998c9f190: 1, argv=<optimized out>) at ../src/common/init.cpp:479
#39 0x00007f29989121d2 in wxEntry (argc=argc@entry=@0x7fffad99244c: 1, argv=<optimized out>) at ../src/common/init.cpp:507
#40 0x000000000041c078 in main (argc=1, argv=<optimized out>) at /home/administrator/Source/datbrowser/datbrowser.cpp:17
Code: Select all
==5631== Helgrind, a thread error detector
==5631== Copyright (C) 2007-2012, and GNU GPL'd, by OpenWorks LLP et al.
==5631== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==5631== Command: bin/datbrowser
==5631==
==5631== ---Thread-Announcement------------------------------------------
==5631==
==5631== Thread #1 is the program's root thread
==5631==
==5631== ----------------------------------------------------------------
==5631==
==5631== Thread #1: pthread_cond_destroy: destruction of unknown cond var
==5631== at 0x4C2D7F8: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0xCDDCE09: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==5631== by 0xCDDCED1: xcb_wait_for_reply (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0)
==5631== by 0x90084E6: _XReply (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
==5631== by 0x8FFE983: XQueryExtension (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
==5631== by 0x8FF2C31: XInitExtension (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
==5631== by 0x905B123: XkbUseExtension (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
==5631== by 0x8FF9302: XOpenDisplay (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0)
==5631== by 0x83A8E75: gdk_display_open (gdkdisplay-x11.c:166)
==5631== by 0x8379F5C: gdk_display_open_default_libgtk_only (gdk.c:324)
==5631== by 0x7E4B103: gtk_init_check (gtkmain.c:1009)
==5631== by 0x60DBBE3: wxApp::Initialize(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x6B8B531: wxEntryStart(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C09B: wxInitialize(int, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C0EC: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== ---Thread-Announcement------------------------------------------
==5631==
==5631== Thread #2 was created
==5631== at 0x774E98E: clone (clone.S:76)
==5631== by 0x6F23F24: do_clone.constprop.4 (createthread.c:74)
==5631== by 0x6F2564D: pthread_create@@GLIBC_2.2.5 (createthread.c:244)
==5631== by 0x4C2E870: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x8D53881: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D383CE: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D3847A: g_thread_new (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x11813A66: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x11813B1C: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x11811EB3: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x8623119: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625293: g_object_new_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625673: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xFF4A3E0: gtk_module_init (in /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/liboverlay-scrollbar.so)
==5631== by 0x7E630F0: default_display_notify_cb (gtkmodules.c:445)
==5631== by 0x861E187: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862FB1C: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8637828: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8637AE1: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8622504: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624ABA: g_object_notify (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8379F74: gdk_display_open_default_libgtk_only (gdk.c:335)
==5631== by 0x7E4B103: gtk_init_check (gtkmain.c:1009)
==5631== by 0x60DBBE3: wxApp::Initialize(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x6B8B531: wxEntryStart(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C09B: wxInitialize(int, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C0EC: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== ----------------------------------------------------------------
==5631==
==5631== Lock at 0xF39D340 was first observed
==5631== at 0x4C2F8EA: pthread_mutex_init (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x8D53087: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D53368: g_mutex_init (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0xB03D80C: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x863EC3A: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x86230E4: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625293: g_object_new_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625673: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xB040A56: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB045EDA: g_bus_get_sync (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x11813834: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x1181395C: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x8D133B5: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D13707: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D137AB: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x11813A9C: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x8D380F4: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x4C2EA06: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x6F24F6D: start_thread (pthread_create.c:311)
==5631== by 0x774E9CC: clone (clone.S:113)
==5631==
==5631== Lock at 0xF259040 was first observed
==5631== at 0x4C2DC45: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x8D5314C: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D531A4: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D53508: g_rw_lock_writer_lock (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8619321: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x400F855: call_init.part.0 (dl-init.c:84)
==5631== by 0x400F90F: _dl_init (dl-init.c:55)
==5631== by 0x4001669: ??? (in /lib/x86_64-linux-gnu/ld-2.17.so)
==5631==
==5631== Lock at 0xF2E75A0 was first observed
==5631== at 0x4C2F8EA: pthread_mutex_init (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x8D53012: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8CE600A: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D53480: g_rec_mutex_lock (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x863BF11: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x837CE44: gdk_display_manager_get (gdkdisplaymanager.c:166)
==5631== by 0x7E6385F: _gtk_modules_init (gtkmodules.c:533)
==5631== by 0x7E4AB6A: post_parse_hook (gtkmain.c:778)
==5631== by 0x8D1E5B6: g_option_context_parse (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x7E4B09D: gtk_parse_args (gtkmain.c:970)
==5631== by 0x7E4B0F8: gtk_init_check (gtkmain.c:1006)
==5631== by 0x60DBBE3: wxApp::Initialize(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x6B8B531: wxEntryStart(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C09B: wxInitialize(int, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C0EC: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== Lock at 0xF3A1F80 was first observed
==5631== at 0x4C2F8EA: pthread_mutex_init (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x6C46589: wxMutexInternal::wxMutexInternal(wxMutexType) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6C468D1: wxMutex::wxMutex(wxMutexType) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6C47B4B: wxThreadModule::OnInit() (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6BA9FE1: wxModule::DoInitializeModule(wxModule*, wxModuleList&) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6BAC06D: wxModule::InitializeModules() (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8B6D9: wxEntryStart(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C09B: wxInitialize(int, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C0EC: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== Possible data race during read of size 4 at 0xF3D345C by thread #2
==5631== Locks held: 1, at address 0xF39D340
==5631== at 0x863C59F: g_type_class_peek_static (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624D38: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xB0513E8: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB04574E: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB045EF2: g_bus_get_sync (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x11813834: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x1181395C: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x8D133B5: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D13707: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D137AB: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x11813A9C: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x8D380F4: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x4C2EA06: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x6F24F6D: start_thread (pthread_create.c:311)
==5631== by 0x774E9CC: clone (clone.S:113)
==5631==
==5631== This conflicts with a previous write of size 4 by thread #1
==5631== Locks held: 3, at addresses 0xF259040 0xF2E75A0 0xF3A1F80
==5631== at 0x863C366: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x12440B2E: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x863EC3A: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8622CC7: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x12443324: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x8623073: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631==
==5631== Address 0xF3D345C is 12 bytes inside a block of size 80 alloc'd
==5631== at 0x4C2C514: calloc (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x8D18E28: g_malloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8639E63: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x863DF08: g_type_register_static (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x863DF9C: g_type_register_static_simple (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xAFBB04D: g_cancellable_get_type (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFBB148: g_cancellable_new (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x12440B2E: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x863EC3A: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8622CC7: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x12443324: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x8623073: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625293: g_object_new_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625673: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x124411E5: ibus_bus_new_async (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x1221E289: ??? (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x863C34D: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x1221ECE1: ibus_im_context_new (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x7E364ED: _gtk_im_module_create (gtkimmodule.c:614)
==5631== by 0x7E36DD8: gtk_im_multicontext_get_slave (gtkimmulticontext.c:254)
==5631== by 0x7E36E0F: gtk_im_multicontext_set_use_preedit (gtkimmulticontext.c:410)
==5631== by 0x6108E3D: wxWindow::PostCreation() (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x61004DF: wxTopLevelWindowGTK::Create(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long, wxString const&) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x43021B: DatBrowserFrameBase::DatBrowserFrameBase(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long) (frame.h:31)
==5631== by 0x427695: DatBrowserFrame::DatBrowserFrame() (DatBrowserFrame.cpp:167)
==5631== by 0x437A10: DatBrowser::CreateFrame() (datbrowser.cpp:64)
==5631== by 0x4380FD: DatBrowser::OnInit() (datbrowser.cpp:41)
==5631== by 0x6B8C12B: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631==
==5631== ----------------------------------------------------------------
==5631==
==5631== Thread #1: lock order "0xF3632B0 before 0xF2E75A0" violated
==5631==
==5631== Observed (incorrect) order is: acquisition of lock at 0xF2E75A0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x863BF11: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x1221ECE1: ibus_im_context_new (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x7E364ED: _gtk_im_module_create (gtkimmodule.c:614)
==5631== by 0x7E36DD8: gtk_im_multicontext_get_slave (gtkimmulticontext.c:254)
==5631== by 0x7E36E0F: gtk_im_multicontext_set_use_preedit (gtkimmulticontext.c:410)
==5631== by 0x6108E3D: wxWindow::PostCreation() (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x61004DF: wxTopLevelWindowGTK::Create(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long, wxString const&) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x43021B: DatBrowserFrameBase::DatBrowserFrameBase(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long) (frame.h:31)
==5631== by 0x427695: DatBrowserFrame::DatBrowserFrame() (DatBrowserFrame.cpp:167)
==5631== by 0x437A10: DatBrowser::CreateFrame() (datbrowser.cpp:64)
==5631== by 0x4380FD: DatBrowser::OnInit() (datbrowser.cpp:41)
==5631== by 0x6B8C12B: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== followed by a later acquisition of lock at 0xF3632B0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0xAFE0752: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFCD54D: g_file_new_for_path (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x12440B8C: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x863EC3A: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8622CC7: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x12443324: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x8623073: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625293: g_object_new_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625673: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x124411E5: ibus_bus_new_async (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x1221E289: ??? (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x863C34D: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x1221ECE1: ibus_im_context_new (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x7E364ED: _gtk_im_module_create (gtkimmodule.c:614)
==5631== by 0x7E36DD8: gtk_im_multicontext_get_slave (gtkimmulticontext.c:254)
==5631== by 0x7E36E0F: gtk_im_multicontext_set_use_preedit (gtkimmulticontext.c:410)
==5631== by 0x6108E3D: wxWindow::PostCreation() (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x61004DF: wxTopLevelWindowGTK::Create(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long, wxString const&) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x43021B: DatBrowserFrameBase::DatBrowserFrameBase(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long) (frame.h:31)
==5631== by 0x427695: DatBrowserFrame::DatBrowserFrame() (DatBrowserFrame.cpp:167)
==5631== by 0x437A10: DatBrowser::CreateFrame() (datbrowser.cpp:64)
==5631== by 0x4380FD: DatBrowser::OnInit() (datbrowser.cpp:41)
==5631== by 0x6B8C12B: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== Required order was established by acquisition of lock at 0xF3632B0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0xAFE0752: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB02D68D: g_settings_backend_get_default (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB0300AA: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x8623119: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625293: g_object_new_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625673: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xFF4A3E0: gtk_module_init (in /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/liboverlay-scrollbar.so)
==5631== by 0x7E630F0: default_display_notify_cb (gtkmodules.c:445)
==5631== by 0x861E187: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862FB1C: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8637828: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8637AE1: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8622504: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624ABA: g_object_notify (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8379F74: gdk_display_open_default_libgtk_only (gdk.c:335)
==5631== by 0x7E4B103: gtk_init_check (gtkmain.c:1009)
==5631== by 0x60DBBE3: wxApp::Initialize(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x6B8B531: wxEntryStart(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C09B: wxInitialize(int, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C0EC: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== followed by a later acquisition of lock at 0xF2E75A0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x863BF11: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xAFDF98E: g_io_module_new (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFDFDD6: g_io_modules_scan_all_in_directory_with_scope (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFE019B: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFE077F: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB02D68D: g_settings_backend_get_default (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB0300AA: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x8623119: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625293: g_object_new_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625673: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xFF4A3E0: gtk_module_init (in /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/liboverlay-scrollbar.so)
==5631== by 0x7E630F0: default_display_notify_cb (gtkmodules.c:445)
==5631== by 0x861E187: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862FB1C: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8637828: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8637AE1: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8622504: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624ABA: g_object_notify (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8379F74: gdk_display_open_default_libgtk_only (gdk.c:335)
==5631== by 0x7E4B103: gtk_init_check (gtkmain.c:1009)
==5631== by 0x60DBBE3: wxApp::Initialize(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x6B8B531: wxEntryStart(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C09B: wxInitialize(int, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C0EC: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== ----------------------------------------------------------------
==5631==
==5631== Thread #1: lock order "0xF365DF0 before 0xF2E75A0" violated
==5631==
==5631== Observed (incorrect) order is: acquisition of lock at 0xF2E75A0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x863BF11: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x1221ECE1: ibus_im_context_new (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x7E364ED: _gtk_im_module_create (gtkimmodule.c:614)
==5631== by 0x7E36DD8: gtk_im_multicontext_get_slave (gtkimmulticontext.c:254)
==5631== by 0x7E36E0F: gtk_im_multicontext_set_use_preedit (gtkimmulticontext.c:410)
==5631== by 0x6108E3D: wxWindow::PostCreation() (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x61004DF: wxTopLevelWindowGTK::Create(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long, wxString const&) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x43021B: DatBrowserFrameBase::DatBrowserFrameBase(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long) (frame.h:31)
==5631== by 0x427695: DatBrowserFrame::DatBrowserFrame() (DatBrowserFrame.cpp:167)
==5631== by 0x437A10: DatBrowser::CreateFrame() (datbrowser.cpp:64)
==5631== by 0x4380FD: DatBrowser::OnInit() (datbrowser.cpp:41)
==5631== by 0x6B8C12B: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== followed by a later acquisition of lock at 0xF365DF0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x8D533A0: g_mutex_lock (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0xAFE0104: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFE077F: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFCD54D: g_file_new_for_path (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x12440B8C: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x863EC3A: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8622CC7: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x12443324: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x8623073: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625293: g_object_new_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625673: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x124411E5: ibus_bus_new_async (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x1221E289: ??? (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x863C34D: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x1221ECE1: ibus_im_context_new (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x7E364ED: _gtk_im_module_create (gtkimmodule.c:614)
==5631== by 0x7E36DD8: gtk_im_multicontext_get_slave (gtkimmulticontext.c:254)
==5631== by 0x7E36E0F: gtk_im_multicontext_set_use_preedit (gtkimmulticontext.c:410)
==5631== by 0x6108E3D: wxWindow::PostCreation() (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x61004DF: wxTopLevelWindowGTK::Create(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long, wxString const&) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x43021B: DatBrowserFrameBase::DatBrowserFrameBase(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long) (frame.h:31)
==5631== by 0x427695: DatBrowserFrame::DatBrowserFrame() (DatBrowserFrame.cpp:167)
==5631== by 0x437A10: DatBrowser::CreateFrame() (datbrowser.cpp:64)
==5631== by 0x4380FD: DatBrowser::OnInit() (datbrowser.cpp:41)
==5631== by 0x6B8C12B: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== Required order was established by acquisition of lock at 0xF365DF0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x8D533A0: g_mutex_lock (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0xAFE0104: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFE077F: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB02D68D: g_settings_backend_get_default (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB0300AA: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x8623119: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625293: g_object_new_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625673: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xFF4A3E0: gtk_module_init (in /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/liboverlay-scrollbar.so)
==5631== by 0x7E630F0: default_display_notify_cb (gtkmodules.c:445)
==5631== by 0x861E187: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862FB1C: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8637828: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8637AE1: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8622504: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624ABA: g_object_notify (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8379F74: gdk_display_open_default_libgtk_only (gdk.c:335)
==5631== by 0x7E4B103: gtk_init_check (gtkmain.c:1009)
==5631== by 0x60DBBE3: wxApp::Initialize(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x6B8B531: wxEntryStart(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C09B: wxInitialize(int, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C0EC: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== followed by a later acquisition of lock at 0xF2E75A0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x863BF11: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xAFDF98E: g_io_module_new (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFDFDD6: g_io_modules_scan_all_in_directory_with_scope (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFE019B: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFE077F: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB02D68D: g_settings_backend_get_default (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB0300AA: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x8623119: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625293: g_object_new_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625673: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xFF4A3E0: gtk_module_init (in /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/liboverlay-scrollbar.so)
==5631== by 0x7E630F0: default_display_notify_cb (gtkmodules.c:445)
==5631== by 0x861E187: g_closure_invoke (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862FB1C: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8637828: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8637AE1: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8622504: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624ABA: g_object_notify (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8379F74: gdk_display_open_default_libgtk_only (gdk.c:335)
==5631== by 0x7E4B103: gtk_init_check (gtkmain.c:1009)
==5631== by 0x60DBBE3: wxApp::Initialize(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x6B8B531: wxEntryStart(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C09B: wxInitialize(int, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x6B8C0EC: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== ----------------------------------------------------------------
==5631==
==5631== Thread #1: lock order "0xF3BB7F0 before 0xF2E75A0" violated
==5631==
==5631== Observed (incorrect) order is: acquisition of lock at 0xF2E75A0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x863BF11: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x1221ECE1: ibus_im_context_new (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x7E364ED: _gtk_im_module_create (gtkimmodule.c:614)
==5631== by 0x7E36DD8: gtk_im_multicontext_get_slave (gtkimmulticontext.c:254)
==5631== by 0x7E36E0F: gtk_im_multicontext_set_use_preedit (gtkimmulticontext.c:410)
==5631== by 0x6108E3D: wxWindow::PostCreation() (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x61004DF: wxTopLevelWindowGTK::Create(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long, wxString const&) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x43021B: DatBrowserFrameBase::DatBrowserFrameBase(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long) (frame.h:31)
==5631== by 0x427695: DatBrowserFrame::DatBrowserFrame() (DatBrowserFrame.cpp:167)
==5631== by 0x437A10: DatBrowser::CreateFrame() (datbrowser.cpp:64)
==5631== by 0x4380FD: DatBrowser::OnInit() (datbrowser.cpp:41)
==5631== by 0x6B8C12B: wxEntry(int&, wchar_t**) (in /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0.0.0)
==5631== by 0x41C077: main (datbrowser.cpp:17)
==5631==
==5631== followed by a later acquisition of lock at 0xF3BB7F0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x8D533A0: g_mutex_lock (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0xB0409AF: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB045EDA: g_bus_get_sync (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x126834F7: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so)
==5631== by 0x863EC3A: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x86230E4: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624EDC: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xAFE06E0: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFE085F: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFCD54D: g_file_new_for_path (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x12440B8C: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x863EC3A: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8622CC7: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x12443324: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x8623073: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625293: g_object_new_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625673: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x124411E5: ibus_bus_new_async (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x1221E289: ??? (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x863C34D: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x1221ECE1: ibus_im_context_new (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x7E364ED: _gtk_im_module_create (gtkimmodule.c:614)
==5631== by 0x7E36DD8: gtk_im_multicontext_get_slave (gtkimmulticontext.c:254)
==5631== by 0x7E36E0F: gtk_im_multicontext_set_use_preedit (gtkimmulticontext.c:410)
==5631== by 0x6108E3D: wxWindow::PostCreation() (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631== by 0x61004DF: wxTopLevelWindowGTK::Create(wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long, wxString const&) (in /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0.0.0)
==5631==
==5631== Required order was established by acquisition of lock at 0xF3BB7F0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x8D533A0: g_mutex_lock (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0xB0409AF: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB045EDA: g_bus_get_sync (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x11813834: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x1181395C: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x8D133B5: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D13707: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D137AB: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x11813A9C: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x8D380F4: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x4C2EA06: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x6F24F6D: start_thread (pthread_create.c:311)
==5631== by 0x774E9CC: clone (clone.S:113)
==5631==
==5631== followed by a later acquisition of lock at 0xF2E75A0
==5631== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x863F07B: g_type_add_interface_static (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xB03EABB: g_dbus_connection_get_type (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB040A1E: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB045EDA: g_bus_get_sync (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x11813834: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x1181395C: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x8D133B5: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D13707: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D137AB: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x11813A9C: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x8D380F4: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x4C2EA06: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x6F24F6D: start_thread (pthread_create.c:311)
==5631== by 0x774E9CC: clone (clone.S:113)
==5631==
==5631== ----------------------------------------------------------------
==5631==
==5631== Thread #1: Exiting thread still holds 3 locks
==5631== at 0x6F2B80C: __lll_lock_wait (lowlevellock.S:135)
==5631== by 0x6F27191: _L_lock_1142 (pthread_mutex_lock.c:120)
==5631== by 0x6F2710E: pthread_mutex_lock (pthread_mutex_lock.c:104)
==5631== by 0x4C2FB62: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x8D533A0: g_mutex_lock (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0xB04558E: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB045EF2: g_bus_get_sync (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x126834F7: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so)
==5631== by 0x863EC3A: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x86230E4: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624EDC: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xAFE06E0: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFE085F: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xAFCD54D: g_file_new_for_path (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x12440B8C: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x863EC3A: g_type_create_instance (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8622CC7: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x12443324: ??? (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x8623073: ??? (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625293: g_object_new_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8625673: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x124411E5: ibus_bus_new_async (in /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.503)
==5631== by 0x1221E289: ??? (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x863C34D: g_type_class_ref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x8624F28: g_object_newv (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x862568B: g_object_new (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0x1221ECE1: ibus_im_context_new (in /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so)
==5631== by 0x7E364ED: _gtk_im_module_create (gtkimmodule.c:614)
==5631== by 0x7E36DD8: gtk_im_multicontext_get_slave (gtkimmulticontext.c:254)
==5631==
==5631== ----------------------------------------------------------------
==5631==
==5631== Thread #2: Exiting thread still holds 1 lock
==5631== at 0x6F2B80C: __lll_lock_wait (lowlevellock.S:135)
==5631== by 0x6F27176: _L_lock_1035 (pthread_mutex_lock.c:120)
==5631== by 0x6F27007: pthread_mutex_lock (pthread_mutex_lock.c:85)
==5631== by 0x4C2FB62: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x863F07B: g_type_add_interface_static (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.1)
==5631== by 0xAFF1E83: g_simple_async_result_get_type (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB0515CC: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB04574E: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0xB045EF2: g_bus_get_sync (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.1)
==5631== by 0x11813834: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x1181395C: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x8D133B5: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D13707: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x8D137AB: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x11813A9C: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so)
==5631== by 0x8D380F4: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.1)
==5631== by 0x4C2EA06: ??? (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so)
==5631== by 0x6F24F6D: start_thread (pthread_create.c:311)
==5631== by 0x774E9CC: clone (clone.S:113)
==5631==
==5631==
==5631== For counts of detected and suppressed errors, rerun with: -v
==5631== Use --history-level=approx or =none to gain increased speed, at
==5631== the cost of reduced accuracy of conflicting-access information
==5631== ERROR SUMMARY: 131 errors from 7 contexts (suppressed: 622 from 222)
Re: Application sometimes not starting on Linux
Hi,
It's hard to advise without seeing code, and preferably having a minimal compileable sample that shows the issue. First, the cardinal rule of wx threads: Don't touch the gui directly from any non-gui thread. Communicate with the gui asynchronously, using wxPostEvent() or one of the new-in-wx3 things e.g. CallAfter() or wxEvtHandler::QueueEvent.
If that's not relevant to your situation, perhaps you could give some information about what you do do with threads; in particular anything that happens before or during frame creation.
Finally, what happens when your app does start OK; does it continue to run, or might it hang later?
Regards,
David
Well, yours is clearly a thread one; the OPs probably not (despite his last post; I suspect the threads he reported were CodeLite's ones, not in his program). Anyway:I am having the same (or similar) issue
It's hard to advise without seeing code, and preferably having a minimal compileable sample that shows the issue. First, the cardinal rule of wx threads: Don't touch the gui directly from any non-gui thread. Communicate with the gui asynchronously, using wxPostEvent() or one of the new-in-wx3 things e.g. CallAfter() or wxEvtHandler::QueueEvent.
If that's not relevant to your situation, perhaps you could give some information about what you do do with threads; in particular anything that happens before or during frame creation.
Finally, what happens when your app does start OK; does it continue to run, or might it hang later?
Regards,
David
-
- In need of some credit
- Posts: 3
- Joined: Wed Apr 16, 2014 5:30 pm
Re: Application sometimes not starting on Linux
Hi David,
Thank you very much for your help.
I'm not using any threads at all in my app, which is one of the puzzling things about this.
When my app does start OK, it continues to run with no issues at all.
I created and attached a minimal sample, with updated backtrace and helgrind log.
The sample is so small that I can post it here, too:
When things work normally, the app shows an empty frame.
When things don't work, the frame never shows, but the process is running.
I cannot start the app 10 times in a row without it hanging.
When creating the minimal sample, I discovered that the hang is related to constructing the wxFrame with a size.
If I replace "wxSize( 800, 600 )" with "wxDefaultSize", it never hangs.
Also, it might be relevent that I'm working in a virtual machine, where everything is a bit slower than average.
It seems to happen less when running directly on hardware.
Thanks again for your help.
Thank you very much for your help.
I'm not using any threads at all in my app, which is one of the puzzling things about this.
When my app does start OK, it continues to run with no issues at all.
I created and attached a minimal sample, with updated backtrace and helgrind log.
The sample is so small that I can post it here, too:
Code: Select all
#include <wx/app.h>
#include <wx/frame.h>
class Hang : public wxApp
{
bool OnInit();
};
IMPLEMENT_APP( Hang )
bool Hang::OnInit()
{
wxFrame* frame = new wxFrame( nullptr, wxID_ANY, "A Frame", wxDefaultPosition, wxSize( 800, 600 ) );
frame->Show();
return true;
}
When things don't work, the frame never shows, but the process is running.
I cannot start the app 10 times in a row without it hanging.
When creating the minimal sample, I discovered that the hang is related to constructing the wxFrame with a size.
If I replace "wxSize( 800, 600 )" with "wxDefaultSize", it never hangs.
Also, it might be relevent that I'm working in a virtual machine, where everything is a bit slower than average.
It seems to happen less when running directly on hardware.
Thanks again for your help.
- Attachments
-
- hang.tar.gz
- Minimal Sample
- (5.19 KiB) Downloaded 114 times
Re: Application sometimes not starting on Linux
I see. I saw the threads in the backtrace, and helgrind, and... Presumably they're some internal gtk thing.I'm not using any threads at all in my app, which is one of the puzzling things about this.
Your minimal sample is certainly minimal enough . I ran it here, first on debian wheezy. When built with the standard wx3.0/gtk2, 10 runs -> no hang.
Built against wx3.0/gtk3, the second run hung.
However that was the only hang I managed to provoke. Dozens more of that build (with and without gdb), dozens against wx3.1/gtk3 and dozens against wx3.0/gtk3 in a fedora 19 vbox guest, all behaved perfectly.
I have no explanation, let alone a solution. It's borderline whether to make a bug-report on trac; you have the backtrace/helgrind output which would help, but the wx-devs most likely to get involved will also struggle to reproduce it (they use debian and fedora).
-
- In need of some credit
- Posts: 3
- Joined: Wed Apr 16, 2014 5:30 pm
Re: Application sometimes not starting on Linux
Thanks very much for your help, David.
I did open a ticket on trac. Better that they have the information, even if they can't reproduce it.
I'm glad I found the workaround of constructing with wxDefaultSize, so I can happily release my app.
I did open a ticket on trac. Better that they have the information, even if they can't reproduce it.
I'm glad I found the workaround of constructing with wxDefaultSize, so I can happily release my app.