BOINC / boinc

Open-source software for volunteer computing and grid computing.
https://boinc.berkeley.edu
GNU Lesser General Public License v3.0
1.99k stars 444 forks source link

BOINC Manager Crashes #2681

Open TheAspens opened 6 years ago

TheAspens commented 6 years ago

The BOINC Manager will crash under the following scenario:

1) Attach to a project using a username with a space 2) Remove the project 3) Open the Add Project Wizard

This is reliably reproducable from a build from master on Linux. I don't know if this happens on Windows or Mac.

Here is the backtrace:

*** Error in `./boincmgr': corrupted size vs. prev_size: 0x0000000000e7fa90 ***
======= Backtrace: =========
/usr/lib64/libc.so.6(+0x7f574)[0x7fae32e04574]
/usr/lib64/libc.so.6(+0x82d64)[0x7fae32e07d64]
/usr/lib64/libc.so.6(+0x8466c)[0x7fae32e0966c]
/usr/lib64/libc.so.6(realloc+0x1b2)[0x7fae32e0ae42]
/usr/lib64/libglib-2.0.so.0(g_realloc+0x16)[0x7fae339c0fa6]
/usr/lib64/libgobject-2.0.so.0(+0x21406)[0x7fae33ca6406]
/usr/lib64/libgobject-2.0.so.0(g_signal_connect_data+0x49e)[0x7fae33cace7e]
/usr/lib64/libgtk-3.so.0(+0x32339b)[0x7fae3565739b]
/usr/lib64/libgobject-2.0.so.0(g_type_create_instance+0x1fb)[0x7fae33cb661b]
/usr/lib64/libgobject-2.0.so.0(+0x1525d)[0x7fae33c9a25d]
/usr/lib64/libgobject-2.0.so.0(g_object_new_with_properties+0x27d)[0x7fae33c9bb0d]
/usr/lib64/libgobject-2.0.so.0(g_object_new+0xc1)[0x7fae33c9c4f1]
/usr/lib64/libgtk-3.so.0(gtk_text_view_new_with_buffer+0xe)[0x7fae3565d89e]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN10wxTextCtrl6CreateEP8wxWindowiRK8wxStringRK7wxPointRK6wxSizelRK11wxValidatorS4_+0x15b)[0x7fae3847ea1b]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN10wxTextCtrlC2EP8wxWindowiRK8wxStringRK7wxPointRK6wxSizelRK11wxValidatorS4_+0x234)[0x7fae3847f0f4]
./boincmgr[0x438c4a]
./boincmgr[0x4396d6]
./boincmgr[0x558e1f]
./boincmgr[0x559987]
./boincmgr[0x55b1e8]
./boincmgr[0x451085]
/usr/lib64/libwx_baseu-3.0.so.0(_ZNK16wxAppConsoleBase16CallEventHandlerEP12wxEvtHandlerR14wxEventFunctorR7wxEvent+0x3e)[0x7fae378e162e]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN12wxEvtHandler23ProcessEventIfMatchesIdERK21wxEventTableEntryBasePS_R7wxEvent+0x52)[0x7fae37a5fd42]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN16wxEventHashTable11HandleEventER7wxEventP12wxEvtHandler+0x83)[0x7fae37a5fdf3]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN12wxEvtHandler11TryHereOnlyER7wxEvent+0x3d)[0x7fae37a6014d]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN12wxEvtHandler19ProcessEventLocallyER7wxEvent+0x33)[0x7fae37a601c3]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN12wxEvtHandler12ProcessEventER7wxEvent+0x45)[0x7fae37a60225]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN12wxWindowBase8TryAfterER7wxEvent+0x68)[0x7fae385718d8]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN12wxEvtHandler18SafelyProcessEventER7wxEvent+0x7)[0x7fae37a5ffb7]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN10wxMenuBase9SendEventEii+0x9a)[0x7fae385339ca]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(+0x2edcdb)[0x7fae3845ccdb]
/usr/lib64/libgobject-2.0.so.0(g_closure_invoke+0x138)[0x7fae33c949d8]
/usr/lib64/libgobject-2.0.so.0(+0x2207d)[0x7fae33ca707d]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit_valist+0xe11)[0x7fae33caf0f1]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit+0x8f)[0x7fae33caf3df]
/usr/lib64/libgtk-3.so.0(gtk_widget_activate+0x7c)[0x7fae356bd96c]
/usr/lib64/libgtk-3.so.0(gtk_menu_shell_activate_item+0x106)[0x7fae35588a06]
/usr/lib64/libgtk-3.so.0(+0x254ced)[0x7fae35588ced]
/usr/lib64/libgtk-3.so.0(+0x237191)[0x7fae3556b191]
/usr/lib64/libgobject-2.0.so.0(+0xfc07)[0x7fae33c94c07]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit_valist+0x477)[0x7fae33cae757]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit+0x8f)[0x7fae33caf3df]
/usr/lib64/libgtk-3.so.0(+0x386b8c)[0x7fae356bab8c]
/usr/lib64/libgtk-3.so.0(+0x2341cc)[0x7fae355681cc]
/usr/lib64/libgtk-3.so.0(gtk_main_do_event+0x736)[0x7fae3556a186]
/usr/lib64/libgdk-3.so.0(+0x372b5)[0x7fae3507f2b5]
/usr/lib64/libgdk-3.so.0(+0x69242)[0x7fae350b1242]
/usr/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x159)[0x7fae339bb8f9]
/usr/lib64/libglib-2.0.so.0(+0x4ac58)[0x7fae339bbc58]
/usr/lib64/libglib-2.0.so.0(g_main_loop_run+0x6a)[0x7fae339bbf2a]
/usr/lib64/libgtk-3.so.0(gtk_main+0x85)[0x7fae35569395]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN14wxGUIEventLoop5DoRunEv+0x25)[0x7fae383f5605]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN15wxEventLoopBase3RunEv+0xa0)[0x7fae37926280]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN16wxAppConsoleBase8MainLoopEv+0x4d)[0x7fae378e38ad]
/usr/lib64/libwx_baseu-3.0.so.0(_Z7wxEntryRiPPw+0x5d)[0x7fae37973c1d]
./boincmgr[0x425c18]
/usr/lib64/libc.so.6(__libc_start_main+0xf5)[0x7fae32da73d5]
./boincmgr[0x431150]
======= Memory map: ========
00400000-0065d000 r-xp 00000000 fd:02 14943046                           /home/knreed/test-boinc/boinc/boincmgr
0085c000-0085d000 r--p 0025c000 fd:02 14943046                           /home/knreed/test-boinc/boinc/boincmgr
0085d000-0087a000 rw-p 0025d000 fd:02 14943046                           /home/knreed/test-boinc/boinc/boincmgr
0087a000-00899000 rw-p 00000000 00:00 0 
0094f000-01311000 rw-p 00000000 00:00 0                                  [heap]
7fad90000000-7fad90022000 rw-p 00000000 00:00 0 
7fad90022000-7fad94000000 ---p 00000000 00:00 0 
7fad98000000-7fad98021000 rw-p 00000000 00:00 0 
7fad98021000-7fad9c000000 ---p 00000000 00:00 0 
7fad9c000000-7fad9c022000 rw-p 00000000 00:00 0 
7fad9c022000-7fada0000000 ---p 00000000 00:00 0 
7fada0000000-7fada0021000 rw-p 00000000 00:00 0 
7fada0021000-7fada4000000 ---p 00000000 00:00 0 
7fada4000000-7fada4021000 rw-p 00000000 00:00 0 
7fada4021000-7fada8000000 ---p 00000000 00:00 0 
7fada8000000-7fada8021000 rw-p 00000000 00:00 0 
7fada8021000-7fadac000000 ---p 00000000 00:00 0 
7fadadbd5000-7fadaf7ff000 rw-p 00000000 00:00 0 
7fadaf7ff000-7fadaf800000 ---p 00000000 00:00 0 
7fadaf800000-7fadb0000000 rw-p 00000000 00:00 0 
7fadb0000000-7fadb0021000 rw-p 00000000 00:00 0 
7fadb0021000-7fadb4000000 ---p 00000000 00:00 0 
7fadb4000000-7fadb4021000 rw-p 00000000 00:00 0 
7fadb4021000-7fadb8000000 ---p 00000000 00:00 0 
7fadb84f8000-7fadb8530000 r-xp 00000000 fd:02 19407955                   /usr/lib64/libcroco-0.6.so.3.0.1
7fadb8530000-7fadb872f000 ---p 00038000 fd:02 19407955                   /usr/lib64/libcroco-0.6.so.3.0.1
7fadb872f000-7fadb8732000 r--p 00037000 fd:02 19407955                   /usr/lib64/libcroco-0.6.so.3.0.1
7fadb8732000-7fadb8733000 rw-p 0003a000 fd:02 19407955                   /usr/lib64/libcroco-0.6.so.3.0.1
7fadb8733000-7fadb8767000 r-xp 00000000 fd:02 19408498                   /usr/lib64/librsvg-2.so.2.40.16
7fadb8767000-7fadb8966000 ---p 00034000 fd:02 19408498                   /usr/lib64/librsvg-2.so.2.40.16
7fadb8966000-7fadb8967000 r--p 00033000 fd:02 19408498                   /usr/lib64/librsvg-2.so.2.40.16
7fadb8967000-7fadb8968000 rw-p 00034000 fd:02 19408498                   /usr/lib64/librsvg-2.so.2.40.16
7fadb8968000-7fadb896a000 r-xp 00000000 fd:02 19673457                   /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
7fadb896a000-7fadb8b69000 ---p 00002000 fd:02 19673457                   /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
7fadb8b69000-7fadb8b6a000 r--p 00001000 fd:02 19673457                   /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
7fadb8b6a000-7fadb8b6b000 rw-p 00002000 fd:02 19673457                   /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
7fadb93fb000-7fadb93fc000 ---p 00000000 00:00 0 
7fadb93fc000-7fadb9bfc000 rw-p 00000000 00:00 0 
7fadb9bfc000-7fadb9ffc000 ---p 00000000 00:00 0 
7fadb9ffc000-7fadb9ffd000 ---p 00000000 00:00 0 
7fadb9ffd000-7fadba7fd000 rw-p 00000000 00:00 0 
7fadba7fd000-7fadba7fe000 ---p 00000000 00:00 0 
7fadba7fe000-7fadbaffe000 rw-p 00000000 00:00 0 
7fadbaffe000-7fadbafff000 ---p 00000000 00:00 0 
7fadbafff000-7fadbb7ff000 rw-p 00000000 00:00 0 
7fadbb7ff000-7fadbb800000 ---p 00000000 00:00 0 
7fadbb800000-7fadbc000000 rw-p 00000000 00:00 0 
7fadbc000000-7fadbc021000 rw-p 00000000 00:00 0 
7fadbc021000-7fadc0000000 ---p 00000000 00:00 0 
7fadc009c000-7fadc0141000 r--p 00000000 fd:02 20450751                   /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf
7fadc0141000-7fadc01f1000 r--p 00000000 fd:02 20450755                   /usr/share/fonts/dejavu/DejaVuSans.ttf
7fadc01f1000-7fadc01f2000 ---p 00000000 00:00 0 
7fadc01f2000-7fadc09f2000 rw-p 00000000 00:00 0 
7fadc09f2000-7fadc09f3000 ---p 00000000 00:00 0 
7fadc09f3000-7fadc11f3000 rw-p 00000000 00:00 0 
7fadc11f3000-7fadc11f4000 ---p 00000000 00:00 0 
7fadc11f4000-7fadc19f4000 rw-p 00000000 00:00 0 
7fadc19f4000-7fadc28d4000 r-xp 00000000 fd:02 19663971                   /usr/lib64/flash-plugin/libflashplayer.so
7fadc28d4000-7fadc2ad4000 ---p 00ee0000 fd:02 19663971                   /usr/lib64/flash-plugin/libflashplayer.so
7fadc2ad4000-7fadc2b93000 r--p 00ee0000 fd:02 19663971                   /usr/lib64/flash-plugin/libflashplayer.so
7fadc2b93000-7fadc2bc7000 rw-p 00f9f000 fd:02 19663971                   /usr/lib64/flash-plugin/libflashplayer.so
7fadc2bc7000-7fadc2cd2000 rw-p 00000000 00:00 0 
7fadc2cd2000-7fadc2cf8000 r-xp 00000000 fd:02 19408271                   /usr/lib64/libjson-glib-1.0.so.0.200.6
7fadc2cf8000-7fadc2ef8000 ---p 00026000 fd:02 19408271                   /usr/lib64/libjson-glib-1.0.so.0.200.6
7fadc2ef8000-7fadc2ef9000 r--p 00026000 fd:02 19408271                   /usr/lib64/libjson-glib-1.0.so.0.200.6
7fadc2ef9000-7fadc2efa000 rw-p 00027000 fd:02 19408271                   /usr/lib64/libjson-glib-1.0.so.0.200.6
7fadc2efa000-7fadc2efe000 r-xp 00000000 fd:02 19804146                   /usr/lib64/mozilla/plugins/libgnome-shell-browser-plugin.so
7fadc2efe000-7fadc30fd000 ---p 00004000 fd:02 19804146                   /usr/lib64/mozilla/plugins/libgnome-shell-browser-plugin.so
7fadc30fd000-7fadc30fe000 r--p 00003000 fd:02 19804146                   /usr/lib64/mozilla/plugins/libgnome-shell-browser-plugin.so
7fadc30fe000-7fadc30ff000 rw-p 00004000 fd:02 19804146                   /usr/lib64/mozilla/plugins/libgnome-shell-browser-plugin.so
7fadc30ff000-7fadc3129000 r-xp 00000000 fd:02 20071149                   /usr/lib/jvm/java-1.8.0-oracle-1.8.0.181-1jpp.2.el7.x86_64/jre/lib/amd64/libnpjp2.so
7fadc3129000-7fadc3328000 ---p 0002a000 fd:02 20071149                   /usr/lib/jvm/java-1.8.0-oracle-1.8.0.181-1jpp.2.el7.x86_64/jre/lib/amd64/libnpjp2.so
7fadc3328000-7fadc332b000 rw-p 00029000 fd:02 20071149                   /usr/lib/jvm/java-1.8.0-oracle-1.8.0.181-1jpp.2.el7.x86_64/jre/lib/amd64/libnpjp2.so
7fadc332b000-7fadc3331000 r-xp 00000000 fd:02 28705477                   /opt/Citrix/ICAClient/npica.so
7fadc3331000-7fadc3530000 ---p 00006000 fd:02 28705477                   /opt/Citrix/ICAClient/npica.so
7fadc3530000-7fadc3531000 r--p 00005000 fd:02 28705477                   /opt/Citrix/ICAClient/npica.so
7fadc3531000-7fadc3532000 rw-p 00006000 fd:02 28705477                   /opt/Citrix/ICAClient/npica.so
7fadc3532000-7fadc3569000 r-xp 00000000 fd:02 28721199                   /opt/google/talkplugin/libnpo1d.so
7fadc3569000-7fadc3768000 ---p 00037000 fd:02 28721199                   /opt/google/talkplugin/libnpo1d.so
7fadc3768000-7fadc376a000 r--p 00036000 fd:02 28721199                   /opt/google/talkplugin/libnpo1d.so
7fadc376a000-7fadc376b000 rw-p 00038000 fd:02 28721199                   /opt/google/talkplugin/libnpo1d.so
7fadc376b000-7fadc377b000 r-xp 00000000 fd:02 19795583                   /usr/lib64/mozilla/plugins/libfreegpws.so
7fadc377b000-7fadc397a000 ---p 00010000 fd:02 19795583                   /usr/lib64/mozilla/plugins/libfreegpws.so
7fadc397a000-7fadc397b000 r--p 0000f000 fd:02 19795583                   /usr/lib64/mozilla/plugins/libfreegpws.so
7fadc397b000-7fadc397c000 rw-p 00010000 fd:02 19795583                   /usr/lib64/mozilla/plugins/libfreegpws.so
7fadc397c000-7fadc3df1000 r-xp 00000000 fd:02 19408198                   /usr/lib64/libgtk-x11-2.0.so.0.2400.31
7fadc3df1000-7fadc3ff0000 ---p 00475000 fd:02 19408198                   /usr/lib64/libgtk-x11-2.0.so.0.2400.31
7fadc3ff0000-7fadc3ff7000 r--p 00474000 fd:02 19408198                   /usr/lib64/libgtk-x11-2.0.so.0.2400.31
AenBleidd commented 6 years ago

WCG is the only project that uses authorization by UserName instead of email, am I right?

AenBleidd commented 6 years ago

@TheAspens, is step 2 is mandatory to reproduce this issue?

TheAspens commented 6 years ago

In master I am unable to reproduce with Einstein@Home and only with WCG. However, when I was testing #2677 I was able to reproduce with attaching to Science United and then disconnecting from Science United and then detaching from the projects I was attached to by Science United (which are all named something like 'Science United User abasdf').

I have not been able to reproduce without step 2.

TheAspens commented 6 years ago

Backtrace with symbols:

*** Error in `/home/knreed/test-boinc/boinc/boincmgr': corrupted size vs. prev_size: 0x00000000011747f0 ***
======= Backtrace: =========
/usr/lib64/libc.so.6(+0x7f574)[0x7ffff1277574]
/usr/lib64/libc.so.6(+0x82d64)[0x7ffff127ad64]
/usr/lib64/libc.so.6(__libc_malloc+0x4c)[0x7ffff127d7dc]
/usr/lib64/libglib-2.0.so.0(g_malloc+0xe)[0x7ffff1e33efe]
/usr/lib64/libglib-2.0.so.0(g_memdup+0x1c)[0x7ffff1e4cbbc]
/usr/lib64/libglib-2.0.so.0(+0x3934e)[0x7ffff1e1d34e]
/usr/lib64/libglib-2.0.so.0(+0x394d7)[0x7ffff1e1d4d7]
/usr/lib64/libgtk-3.so.0(+0xd3637)[0x7ffff387a637]
/usr/lib64/libgtk-3.so.0(+0x19931d)[0x7ffff394031d]
/usr/lib64/libgtk-3.so.0(+0x195605)[0x7ffff393c605]
/usr/lib64/libgtk-3.so.0(gtk_style_properties_set_valist+0x1d8)[0x7ffff387a9a8]
/usr/lib64/libgtk-3.so.0(gtk_style_properties_set+0x103)[0x7ffff387ad03]
/usr/lib64/libgtk-3.so.0(+0x25d62a)[0x7ffff3a0462a]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN8wxWindow13GTKApplyStyleEP10_GtkWidgetP11_GtkRcStyle+0x40)[0x7ffff68854f0]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN8wxWindow19GTKApplyWidgetStyleEb+0x6c)[0x7ffff6884bcc]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN8wxWindow7SetFontERK6wxFont+0x2b)[0x7ffff688c10b]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN9wxControl7SetFontERK6wxFont+0xe)[0x7ffff68bd80e]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN12wxStaticText7SetFontERK6wxFont+0x71)[0x7ffff68ec381]
/home/knreed/test-boinc/boinc/boincmgr[0x437d69]
/home/knreed/test-boinc/boinc/boincmgr[0x437bad]
/home/knreed/test-boinc/boinc/boincmgr[0x57db86]
/home/knreed/test-boinc/boinc/boincmgr[0x57d939]
/home/knreed/test-boinc/boinc/boincmgr[0x57d202]
/home/knreed/test-boinc/boinc/boincmgr[0x4457a2]
/usr/lib64/libwx_baseu-3.0.so.0(_ZNK16wxAppConsoleBase16CallEventHandlerEP12wxEvtHandlerR14wxEventFunctorR7wxEvent+0x3e)[0x7ffff5d5462e]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN12wxEvtHandler23ProcessEventIfMatchesIdERK21wxEventTableEntryBasePS_R7wxEvent+0x52)[0x7ffff5ed2d42]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN16wxEventHashTable11HandleEventER7wxEventP12wxEvtHandler+0x83)[0x7ffff5ed2df3]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN12wxEvtHandler11TryHereOnlyER7wxEvent+0x3d)[0x7ffff5ed314d]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN12wxEvtHandler19ProcessEventLocallyER7wxEvent+0x33)[0x7ffff5ed31c3]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN12wxEvtHandler12ProcessEventER7wxEvent+0x45)[0x7ffff5ed3225]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN12wxWindowBase8TryAfterER7wxEvent+0x68)[0x7ffff69e48d8]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN12wxEvtHandler18SafelyProcessEventER7wxEvent+0x7)[0x7ffff5ed2fb7]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN10wxMenuBase9SendEventEii+0x9a)[0x7ffff69a69ca]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(+0x2edcdb)[0x7ffff68cfcdb]
/usr/lib64/libgobject-2.0.so.0(g_closure_invoke+0x138)[0x7ffff21079d8]
/usr/lib64/libgobject-2.0.so.0(+0x2207d)[0x7ffff211a07d]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit_valist+0xe11)[0x7ffff21220f1]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit+0x8f)[0x7ffff21223df]
/usr/lib64/libgtk-3.so.0(gtk_widget_activate+0x7c)[0x7ffff3b3096c]
/usr/lib64/libgtk-3.so.0(gtk_menu_shell_activate_item+0x106)[0x7ffff39fba06]
/usr/lib64/libgtk-3.so.0(+0x254ced)[0x7ffff39fbced]
/usr/lib64/libgtk-3.so.0(+0x237191)[0x7ffff39de191]
/usr/lib64/libgobject-2.0.so.0(+0xfc07)[0x7ffff2107c07]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit_valist+0x477)[0x7ffff2121757]
/usr/lib64/libgobject-2.0.so.0(g_signal_emit+0x8f)[0x7ffff21223df]
/usr/lib64/libgtk-3.so.0(+0x386b8c)[0x7ffff3b2db8c]
/usr/lib64/libgtk-3.so.0(+0x2341cc)[0x7ffff39db1cc]
/usr/lib64/libgtk-3.so.0(gtk_main_do_event+0x736)[0x7ffff39dd186]
/usr/lib64/libgdk-3.so.0(+0x372b5)[0x7ffff34f22b5]
/usr/lib64/libgdk-3.so.0(+0x69242)[0x7ffff3524242]
/usr/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x159)[0x7ffff1e2e8f9]
/usr/lib64/libglib-2.0.so.0(+0x4ac58)[0x7ffff1e2ec58]
/usr/lib64/libglib-2.0.so.0(g_main_loop_run+0x6a)[0x7ffff1e2ef2a]
/usr/lib64/libgtk-3.so.0(gtk_main+0x85)[0x7ffff39dc395]
/usr/lib64/libwx_gtk3u_core-3.0.so.0(_ZN14wxGUIEventLoop5DoRunEv+0x25)[0x7ffff6868605]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN15wxEventLoopBase3RunEv+0xa0)[0x7ffff5d99280]
/usr/lib64/libwx_baseu-3.0.so.0(_ZN16wxAppConsoleBase8MainLoopEv+0x4d)[0x7ffff5d568ad]
/usr/lib64/libwx_baseu-3.0.so.0(_Z7wxEntryRiPPw+0x5d)[0x7ffff5de6c1d]
/home/knreed/test-boinc/boinc/boincmgr[0x476b7d]
/usr/lib64/libc.so.6(__libc_start_main+0xf5)[0x7ffff121a3d5]
/home/knreed/test-boinc/boinc/boincmgr[0x425709]
======= Memory map: ========
00400000-006e9000 r-xp 00000000 fd:02 14943046                           /home/knreed/test-boinc/boinc/boincmgr
008e9000-008ea000 r--p 002e9000 fd:02 14943046                           /home/knreed/test-boinc/boinc/boincmgr
008ea000-00907000 rw-p 002ea000 fd:02 14943046                           /home/knreed/test-boinc/boinc/boincmgr
00907000-015f0000 rw-p 00000000 00:00 0                                  [heap]
7fff50000000-7fff50022000 rw-p 00000000 00:00 0 
7fff50022000-7fff54000000 ---p 00000000 00:00 0 
7fff58000000-7fff58022000 rw-p 00000000 00:00 0 
7fff58022000-7fff5c000000 ---p 00000000 00:00 0 
7fff5dfd2000-7fff5e2f3000 rw-p 00000000 00:00 0 
7fff5e2f3000-7fff5e2f4000 ---p 00000000 00:00 0 
7fff5e2f4000-7fff5eaf4000 rw-p 00000000 00:00 0 
7fff5eaf4000-7fff5eb2c000 r-xp 00000000 fd:02 19407955                   /usr/lib64/libcroco-0.6.so.3.0.1
7fff5eb2c000-7fff5ed2b000 ---p 00038000 fd:02 19407955                   /usr/lib64/libcroco-0.6.so.3.0.1
7fff5ed2b000-7fff5ed2e000 r--p 00037000 fd:02 19407955                   /usr/lib64/libcroco-0.6.so.3.0.1
7fff5ed2e000-7fff5ed2f000 rw-p 0003a000 fd:02 19407955                   /usr/lib64/libcroco-0.6.so.3.0.1
7fff5ed2f000-7fff5ed63000 r-xp 00000000 fd:02 19408498                   /usr/lib64/librsvg-2.so.2.40.16
7fff5ed63000-7fff5ef62000 ---p 00034000 fd:02 19408498                   /usr/lib64/librsvg-2.so.2.40.16
7fff5ef62000-7fff5ef63000 r--p 00033000 fd:02 19408498                   /usr/lib64/librsvg-2.so.2.40.16
7fff5ef63000-7fff5ef64000 rw-p 00034000 fd:02 19408498                   /usr/lib64/librsvg-2.so.2.40.16
7fff5ef64000-7fff5ef66000 r-xp 00000000 fd:02 19673457                   /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
7fff5ef66000-7fff5f165000 ---p 00002000 fd:02 19673457                   /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
7fff5f165000-7fff5f166000 r--p 00001000 fd:02 19673457                   /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
7fff5f166000-7fff5f167000 rw-p 00002000 fd:02 19673457                   /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
7fff5f7ff000-7fff5f800000 ---p 00000000 00:00 0 
7fff5f800000-7fff60000000 rw-p 00000000 00:00 0 
7fff60000000-7fff60021000 rw-p 00000000 00:00 0 
7fff60021000-7fff64000000 ---p 00000000 00:00 0 
7fff64000000-7fff64021000 rw-p 00000000 00:00 0 
7fff64021000-7fff68000000 ---p 00000000 00:00 0 
7fff68000000-7fff68021000 rw-p 00000000 00:00 0 
7fff68021000-7fff6c000000 ---p 00000000 00:00 0 
7fff6c000000-7fff6c021000 rw-p 00000000 00:00 0 
Program received signal SIGABRT, Aborted.
0x00007ffff122e207 in raise () from /usr/lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install PackageKit-gtk3-module-1.1.5-2.el7_5.x86_64 SDL-1.2.15-14.el7.x86_64 at-spi2-atk-2.22.0-2.el7.x86_64 at-spi2-core-2.22.0-1.el7.x86_64 atk-2.22.0-3.el7.x86_64 bzip2-libs-1.0.6-13.el7.x86_64 cairo-1.14.8-2.el7.x86_64 cairo-gobject-1.14.8-2.el7.x86_64 cyrus-sasl-lib-2.1.26-23.el7.x86_64 dbus-libs-1.10.24-7.el7.x86_64 elfutils-libelf-0.170-4.el7.x86_64 elfutils-libs-0.170-4.el7.x86_64 enchant-1.6.0-8.el7.x86_64 expat-2.1.0-10.el7_3.x86_64 fontconfig-2.10.95-11.el7.x86_64 freetype-2.4.11-15.el7.x86_64 gdk-pixbuf2-2.36.5-1.el7.x86_64 glib2-2.54.2-2.el7.x86_64 glibc-2.17-222.el7.x86_64 gnome-shell-browser-plugin-3.26.2-5.el7.x86_64 google-talkplugin-5.41.3.0-1.x86_64 graphite2-1.3.10-1.el7_3.x86_64 gstreamer1-1.10.4-2.el7.x86_64 gstreamer1-plugins-base-1.10.4-1.el7.x86_64 gtk2-2.24.31-1.el7.x86_64 gtk3-3.22.26-4.el7_5.x86_64 gvfs-client-1.30.4-5.el7.x86_64 harfbuzz-1.3.2-1.el7.x86_64 harfbuzz-icu-1.3.2-1.el7.x86_64 hunspell-1.3.2-15.el7.x86_64 jbigkit-libs-2.0-11.el7.x86_64 json-glib-1.2.6-1.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-19.el7.x86_64 libICE-1.0.9-9.el7.x86_64 libSM-1.2.2-2.el7.x86_64 libX11-1.6.5-1.el7.x86_64 libXScrnSaver-1.2.2-6.1.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXcomposite-0.4.4-4.1.el7.x86_64 libXcursor-1.1.14-8.el7.x86_64 libXdamage-1.1.4-4.1.el7.x86_64 libXext-1.3.3-3.el7.x86_64 libXfixes-5.0.3-1.el7.x86_64 libXi-1.7.9-1.el7.x86_64 libXinerama-1.1.3-2.1.el7.x86_64 libXrandr-1.5.1-2.el7.x86_64 libXrender-0.9.10-1.el7.x86_64 libXt-1.1.5-3.el7.x86_64 libXxf86vm-1.1.4-1.el7.x86_64 libattr-2.4.46-13.el7.x86_64 libblkid-2.23.2-52.el7.x86_64 libcanberra-0.30-5.el7.x86_64 libcanberra-gtk3-0.30-5.el7.x86_64 libcap-2.22-9.el7.x86_64 libcom_err-1.42.9-12.el7_5.x86_64 libcroco-0.6.11-1.el7.x86_64 libcurl-7.29.0-46.el7.x86_64 libdrm-2.4.83-2.el7.x86_64 libepoxy-1.3.1-2.el7_5.x86_64 libffi-3.0.13-18.el7.x86_64 libgcc-4.8.5-28.el7_5.1.x86_64 libgcrypt-1.5.3-14.el7.x86_64 libgpg-error-1.12-3.el7.x86_64 libicu-50.1.2-15.el7.x86_64 libidn-1.28-4.el7.x86_64 libjpeg-turbo-1.2.90-5.el7.x86_64 libmount-2.23.2-52.el7.x86_64 libmspack-0.7-0.1.alpha.el7.x86_64 libnotify-0.7.7-1.el7.x86_64 libogg-1.3.0-7.el7.x86_64 libpng-1.5.13-7.el7_2.x86_64 librsvg2-2.40.16-1.el7.x86_64 libsecret-0.18.5-2.el7.x86_64 libselinux-2.5-12.el7.x86_64 libsoup-2.56.0-6.el7.x86_64 libssh2-1.4.3-10.el7_2.1.x86_64 libstdc++-4.8.5-28.el7_5.1.x86_64 libtdb-1.3.15-1.el7.x86_64 libthai-0.1.14-9.el7.x86_64 libtiff-4.0.3-27.el7_3.x86_64 libtool-ltdl-2.4.2-22.el7_3.x86_64 libuuid-2.23.2-52.el7.x86_64 libvorbis-1.3.3-8.el7.1.x86_64 libwayland-client-1.14.0-2.el7.x86_64 libwayland-cursor-1.14.0-2.el7.x86_64 libwayland-server-1.14.0-2.el7.x86_64 libwebp-0.3.0-7.el7.x86_64 libxcb-1.12-1.el7.x86_64 libxkbcommon-0.7.1-1.el7.x86_64 libxml2-2.9.1-6.el7_2.3.x86_64 libxshmfence-1.2-1.el7.x86_64 libxslt-1.1.28-5.el7.x86_64 lz4-1.7.5-2.el7.x86_64 mesa-libEGL-17.2.3-8.20171019.el7.x86_64 mesa-libGL-17.2.3-8.20171019.el7.x86_64 mesa-libgbm-17.2.3-8.20171019.el7.x86_64 mesa-libglapi-17.2.3-8.20171019.el7.x86_64 mesa-libwayland-egl-17.2.3-8.20171019.el7.x86_64 nspr-4.19.0-1.el7_5.x86_64 nss-3.36.0-5.el7_5.x86_64 nss-softokn-freebl-3.36.0-5.el7_5.x86_64 nss-util-3.36.0-1.el7_5.x86_64 openldap-2.4.44-15.el7_5.x86_64 openssl-libs-1.0.2k-12.el7.x86_64 orc-0.4.26-1.el7.x86_64 pango-1.40.4-1.el7.x86_64 pcre-8.32-17.el7.x86_64 pixman-0.34.0-1.el7.x86_64 sqlite-3.7.17-8.el7.x86_64 systemd-libs-219-57.el7.x86_64 webkitgtk3-2.4.11-2.el7.x86_64 wxBase3-3.0.2-15.el7.x86_64 wxGTK3-3.0.2-15.el7.x86_64 xz-libs-5.2.2-1.el7.x86_64 zlib-1.2.7-17.el7.x86_64
(gdb) backtrace
#0  0x00007ffff122e207 in raise () at /usr/lib64/libc.so.6
#1  0x00007ffff122f8f8 in abort () at /usr/lib64/libc.so.6
#2  0x00007ffff1270cc7 in __libc_message () at /usr/lib64/libc.so.6
#3  0x00007ffff1277574 in malloc_printerr () at /usr/lib64/libc.so.6
#4  0x00007ffff127ad64 in _int_malloc () at /usr/lib64/libc.so.6
#5  0x00007ffff127d7dc in malloc () at /usr/lib64/libc.so.6
#6  0x00007ffff1e33efe in g_malloc () at /usr/lib64/libglib-2.0.so.0
#7  0x00007ffff1e4cbbc in g_memdup () at /usr/lib64/libglib-2.0.so.0
#8  0x00007ffff1e1d34e in g_hash_table_insert_node () at /usr/lib64/libglib-2.0.so.0
#9  0x00007ffff1e1d4d7 in g_hash_table_insert_internal () at /usr/lib64/libglib-2.0.so.0
#10 0x00007ffff387a637 in _gtk_style_properties_set_property_by_property () at /usr/lib64/libgtk-3.so.0
#11 0x00007ffff394031d in _gtk_css_style_property_assign () at /usr/lib64/libgtk-3.so.0
#12 0x00007ffff393c605 in unpack_font_description () at /usr/lib64/libgtk-3.so.0
#13 0x00007ffff387a9a8 in gtk_style_properties_set_valist () at /usr/lib64/libgtk-3.so.0
#14 0x00007ffff387ad03 in gtk_style_properties_set () at /usr/lib64/libgtk-3.so.0
#15 0x00007ffff3a0462a in _gtk_modifier_style_set_font () at /usr/lib64/libgtk-3.so.0
#16 0x00007ffff68854f0 in wxWindow::GTKApplyStyle(_GtkWidget*, _GtkRcStyle*) () at /usr/lib64/libwx_gtk3u_core-3.0.so.0
#17 0x00007ffff6884bcc in wxWindow::GTKApplyWidgetStyle(bool) () at /usr/lib64/libwx_gtk3u_core-3.0.so.0
#18 0x00007ffff688c10b in wxWindow::SetFont(wxFont const&) () at /usr/lib64/libwx_gtk3u_core-3.0.so.0
#19 0x00007ffff68bd80e in wxControl::SetFont(wxFont const&) () at /usr/lib64/libwx_gtk3u_core-3.0.so.0
#20 0x00007ffff68ec381 in wxStaticText::SetFont(wxFont const&) () at /usr/lib64/libwx_gtk3u_core-3.0.so.0
#21 0x0000000000437d69 in CAccountManagerPropertiesPage::CreateControls() (this=0xb0c0c0) at AccountManagerPropertiesPage.cpp:146
#22 0x0000000000437bad in CAccountManagerPropertiesPage::Create(CBOINCBaseWizard*) (this=0xb0c0c0, parent=0xb57c00)
    at AccountManagerPropertiesPage.cpp:126
#23 0x000000000057db86 in CWizardAttach::CreateControls() (this=0xb57c00) at WizardAttach.cpp:186
#24 0x000000000057d939 in CWizardAttach::Create(wxWindow*, int, wxString const&, wxPoint const&, long) (this=0xb57c00, parent=0xb10200, id=10000, pos=..., style=536877056) at WizardAttach.cpp:164
#25 0x000000000057d202 in CWizardAttach::CWizardAttach(wxWindow*, int, wxString const&, wxPoint const&, long) (this=0xb57c00, parent=0xb10200, id=10000, title=..., pos=..., style=536877056) at WizardAttach.cpp:84
#26 0x00000000004457a2 in CAdvancedFrame::OnWizardAttachProject(wxCommandEvent&) (this=0xb10200) at AdvancedFrame.cpp:1161
#27 0x00007ffff5d5462e in wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const ()
---Type <return> to continue, or q <return> to quit--- 
    at /usr/lib64/libwx_baseu-3.0.so.0
#28 0x00007ffff5ed2d42 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
    at /usr/lib64/libwx_baseu-3.0.so.0
#29 0x00007ffff5ed2df3 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () at /usr/lib64/libwx_baseu-3.0.so.0
#30 0x00007ffff5ed314d in wxEvtHandler::TryHereOnly(wxEvent&) () at /usr/lib64/libwx_baseu-3.0.so.0
#31 0x00007ffff5ed31c3 in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /usr/lib64/libwx_baseu-3.0.so.0
#32 0x00007ffff5ed3225 in wxEvtHandler::ProcessEvent(wxEvent&) () at /usr/lib64/libwx_baseu-3.0.so.0
#33 0x00007ffff69e48d8 in wxWindowBase::TryAfter(wxEvent&) () at /usr/lib64/libwx_gtk3u_core-3.0.so.0
#34 0x00007ffff5ed2fb7 in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /usr/lib64/libwx_baseu-3.0.so.0
#35 0x00007ffff69a69ca in wxMenuBase::SendEvent(int, int) () at /usr/lib64/libwx_gtk3u_core-3.0.so.0
#36 0x00007ffff68cfcdb in menuitem_activate () at /usr/lib64/libwx_gtk3u_core-3.0.so.0
#37 0x00007ffff21079d8 in g_closure_invoke () at /usr/lib64/libgobject-2.0.so.0
#38 0x00007ffff211a07d in signal_emit_unlocked_R () at /usr/lib64/libgobject-2.0.so.0
#39 0x00007ffff21220f1 in g_signal_emit_valist () at /usr/lib64/libgobject-2.0.so.0
#40 0x00007ffff21223df in g_signal_emit () at /usr/lib64/libgobject-2.0.so.0
#41 0x00007ffff3b3096c in gtk_widget_activate () at /usr/lib64/libgtk-3.so.0
#42 0x00007ffff39fba06 in gtk_menu_shell_activate_item () at /usr/lib64/libgtk-3.so.0
#43 0x00007ffff39fbced in gtk_menu_shell_button_release () at /usr/lib64/libgtk-3.so.0
#44 0x00007ffff39de191 in _gtk_marshal_BOOLEAN__BOXEDv () at /usr/lib64/libgtk-3.so.0
#45 0x00007ffff2107c07 in _g_closure_invoke_va () at /usr/lib64/libgobject-2.0.so.0
#46 0x00007ffff2121757 in g_signal_emit_valist () at /usr/lib64/libgobject-2.0.so.0
#47 0x00007ffff21223df in g_signal_emit () at /usr/lib64/libgobject-2.0.so.0
#48 0x00007ffff3b2db8c in gtk_widget_event_internal () at /usr/lib64/libgtk-3.so.0
#49 0x00007ffff39db1cc in propagate_event () at /usr/lib64/libgtk-3.so.0
#50 0x00007ffff39dd186 in gtk_main_do_event () at /usr/lib64/libgtk-3.so.0
#51 0x00007ffff34f22b5 in _gdk_event_emit () at /usr/lib64/libgdk-3.so.0
#52 0x00007ffff3524242 in gdk_event_source_dispatch () at /usr/lib64/libgdk-3.so.0
#53 0x00007ffff1e2e8f9 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#54 0x00007ffff1e2ec58 in g_main_context_iterate.isra.22 () at /usr/lib64/libglib-2.0.so.0
#55 0x00007ffff1e2ef2a in g_main_loop_run () at /usr/lib64/libglib-2.0.so.0
#56 0x00007ffff39dc395 in gtk_main () at /usr/lib64/libgtk-3.so.0
---Type <return> to continue, or q <return> to quit---
#57 0x00007ffff6868605 in wxGUIEventLoop::DoRun() () at /usr/lib64/libwx_gtk3u_core-3.0.so.0
#58 0x00007ffff5d99280 in wxEventLoopBase::Run() () at /usr/lib64/libwx_baseu-3.0.so.0
#59 0x00007ffff5d568ad in wxAppConsoleBase::MainLoop() () at /usr/lib64/libwx_baseu-3.0.so.0
#60 0x00007ffff5de6c1d in wxEntry(int&, wchar_t**) () at /usr/lib64/libwx_baseu-3.0.so.0
#61 0x0000000000476b7d in main(int, char**) (argc=1, argv=0x7fffffffdc88) at BOINCGUIApp.cpp:58
TheAspens commented 6 years ago

Ok - I think what is going is a race condition between two items (note that under valgrind the issue is not reproducible). Here is the relevant valgrind output:

==14922== Invalid read of size 4
==14922==    at 0x6127456: wxDialog::ShowModal() (in /usr/lib64/libwx_gtk3u_core-3.0.so.0.2.0)
==14922==    by 0x456D86: CMainDocument::RequestRPC(ASYNC_RPC_REQUEST&, bool) (AsyncRPC.cpp:632)
==14922==    by 0x4555BB: AsyncRPC::RPC_Wait(RPC_SELECTOR, void*, void*, void*, void*, bool) (AsyncRPC.cpp:119)
==14922==    by 0x45958D: AsyncRPC::project_op(PROJECT&, char const*) (AsyncRPC.h:250)
==14922==    by 0x4E45D8: CMainDocument::ProjectDetach(int) (MainDocument.cpp:1394)
==14922==    by 0x54DF3F: CViewProjects::OnProjectDetach(wxCommandEvent&) (ViewProjects.cpp:583)
==14922==    by 0x6B0162D: wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6C7FD41: wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6C7FDF2: wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6C8014C: wxEvtHandler::TryHereOnly(wxEvent&) (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6C801C2: wxEvtHandler::ProcessEventLocally(wxEvent&) (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6C80224: wxEvtHandler::ProcessEvent(wxEvent&) (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==  Address 0x27838028 is 840 bytes inside a block of size 904 free'd
==14922==    at 0x4C2B16D: operator delete(void*) (vg_replace_malloc.c:576)
==14922==    by 0x45DF7B: AsyncRPCDlg::~AsyncRPCDlg() (AsyncRPC.h:372)
==14922==    by 0x6B019F1: wxAppConsoleBase::DeletePendingObjects() (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6B01A70: wxAppConsoleBase::ProcessIdle() (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6165722: wxAppBase::ProcessIdle() (in /usr/lib64/libwx_gtk3u_core-3.0.so.0.2.0)
==14922==    by 0x60BC2FD: wxApp::DoIdle() (in /usr/lib64/libwx_gtk3u_core-3.0.so.0.2.0)
==14922==    by 0x60BC402: ??? (in /usr/lib64/libwx_gtk3u_core-3.0.so.0.2.0)
==14922==    by 0xAB604E6: ??? (in /usr/lib64/libglib-2.0.so.0.5400.2)
==14922==    by 0xAB638F8: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.5400.2)
==14922==    by 0xAB63C57: ??? (in /usr/lib64/libglib-2.0.so.0.5400.2)
==14922==    by 0xAB63F29: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.5400.2)
==14922==    by 0x8D8C394: gtk_main (in /usr/lib64/libgtk-3.so.0.2200.26)
==14922==  Block was alloc'd at
==14922==    at 0x4C2A1E3: operator new(unsigned long) (vg_replace_malloc.c:334)
==14922==    by 0x456A88: CMainDocument::RequestRPC(ASYNC_RPC_REQUEST&, bool) (AsyncRPC.cpp:543)
==14922==    by 0x4555BB: AsyncRPC::RPC_Wait(RPC_SELECTOR, void*, void*, void*, void*, bool) (AsyncRPC.cpp:119)
==14922==    by 0x45958D: AsyncRPC::project_op(PROJECT&, char const*) (AsyncRPC.h:250)
==14922==    by 0x4E45D8: CMainDocument::ProjectDetach(int) (MainDocument.cpp:1394)
==14922==    by 0x54DF3F: CViewProjects::OnProjectDetach(wxCommandEvent&) (ViewProjects.cpp:583)
==14922==    by 0x6B0162D: wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6C7FD41: wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6C7FDF2: wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6C8014C: wxEvtHandler::TryHereOnly(wxEvent&) (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6C801C2: wxEvtHandler::ProcessEventLocally(wxEvent&) (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)
==14922==    by 0x6C80224: wxEvtHandler::ProcessEvent(wxEvent&) (in /usr/lib64/libwx_baseu-3.0.so.0.2.0)

As far as I can tell lines 750-760 clientgui/AsyncRPC.cpp in function void CMainDocument::HandleCompletedRPC() deletes m_RPCWaitDlg and sets to it too null (in that order).

However, in lines 630+ the code checks if m_RPCWaitDlg is null and then accesses it which I think allows for accessing it after it is deleted.

Not sure if this is the root of the issue, but it is the only issue valgrind reported. wxWidgets (and C++ memory management frankly) are not my development strengths so I would appreciate some other insight into this.

CharlieFenton commented 6 years ago

In Line 632 the code accesses the dialog if it is not null. All this happens in the main thread, so I doubt there is a race condition; if that were the case we would have seen this long before now. The other thread is all in the RPCThread class in AsyncRPC.cpp. Note also that the code in lines 750-760 destroys the dialog only if (! stillWaitingForPendingRequests)

The RPC wait dialog ("Communicating with BOINC client. Please wait ...") is displayed when an RPC takes a long time. This seems to indicate that RPC_CLIENT::project_op("detach") is choking on the request, possibly due to the space in the user name.

Are you sure the backtrace is for the thread that crashed?

TheAspens commented 6 years ago

The backtrace is from running boincmgr under gdb and then once the boincmgr crashes typing the command "backtrace" into gdb.

When I was running it under valgrind I was not able to reproduce the crash so the info may or may not associated with the crash. It was simply what was output from valgrind while I was taking the action that had previously caused the crash.

TheAspens commented 6 years ago

I'm happy to retest and provide exact steps I took if that is helpful (and I have no issue if you assume that I did something wrong - I don't do a lot of C++ debugging).

TheAspens commented 6 years ago

The RPC wait dialog ("Communicating with BOINC client. Please wait ...") is displayed when an RPC takes a long time. This seems to indicate that RPC_CLIENT::project_op("detach") is choking on the request, possibly due to the space in the user name.

The "Communicating with BOINC client. Please wait ..." dialog does appear when disconnecting from WCG. It is killing a running task and doing clean up that and the project directory so I think it takes a bit to accomplish. However, it completes that phase just fine. The crash happens after that when I go to the Add Project dialogue.

CharlieFenton commented 6 years ago

I was unable to reproduce this crash on BOINC 7.12.0 for Macintosh, but I did see the "Communicating with BOINC client. Please wait ..." dialog when detaching from WCG. The WCG project applications (in this case, OpenZika) took an extremely long time to exit. So it appears that the RPC took so long to finish because it was waiting for that, triggering the dialog.

TheAspens commented 6 years ago

So I tested a build from master this morning. This time I attached and left it running until there was a task for each core of my computer (8). This time when I detached the manager crashed before the detach was completed. The "Communicating with BOINC client" dialogue was displayed at the time of the crash.

I then attempted to run it under gdb doing the same thing. It took awhile before the dialog appeared. It remained displayed for awhile and then eventually went away. However, at that time the manager was disconnected from the client. When I went to File -> Select Computer, then the manager crashed.

I think the username with a space was red herring. I'm going to look at the feedback from Valgrind and see what I can figure out.

TheAspens commented 6 years ago

I should note that either A) It crashes while the dialogue is displayed or B) It crashes when wxWidgets tries to create the next dialogue so I'm focusing on that right now.

TheAspens commented 6 years ago

I'll leave this open for now, but it might only occur in a much narrower set of situations then expected.

Germano0 commented 5 years ago
(gdb) set print elements 0
(gdb) set print frame-arguments all
(gdb) thread apply all backtrace

may help in getting more data from GDB backtrace

serval2412 commented 3 years ago

World Community grid (which seems to be the last one to use a username) now asks an email so how to reproduce this now?

CharlieFenton commented 3 years ago

The comment from @serval2412 brought this issue to my attention again.

Do / did these crashes occur in release builds, or only in debug builds? In various dialog constructors in BOINC Manager, there were many wxSizer calls which had inconsistent arguments. While these did not cause problems with the actual dialogs, they caused wxWidgets to throw an assert, but only when running a debug build. Note that wxWidgets suppresses these asserts in deployment / release builds.

These asserts normally display an error dialog explaining the inconsistency. While these are intended to be helpful, I've noticed on the Mac that in some cases the assert instead causes the Manager to crash. Since the crashes described here occur when the manger is about to display a dialog, this problem with wxWidgets throwing asserts might be the cause. If so, the crashes are not caused by a serious problem in BOINC code, and would not occur in release builds.

Note also that many (hough perhaps not all) of these inconsistent arguments to wxSizer calls have been fixed in newer versions of BOINC.

TheAspens commented 3 years ago

World Community grid (which seems to be the last one to use a username) now asks an email so how to reproduce this now?

For the record, World Community Grid now uses email and not username for registration and login.