[erlang-bugs] BEAM crash from GTK

Paul Rubin <>
Mon Apr 1 21:42:15 CEST 2013


I have an application using the Ranch tcp pool that I'm trying to test at
high concurrency.  The most trivial test for this just opens a bunch of
idle connections and waits for the user to do something.  With 1000
connections it works fine and I can start the observer application.  With
10000 connections, trying to start observer crashes the BEAM:

1> observer:start().
*** buffer overflow detected ***:
/usr/lib64/erlang/erts-5.9.3.1/bin/beam.smp terminated
======= Backtrace: =========
/lib64/libc.so.6(__fortify_fail+0x37)[0x31b830a697]
/lib64/libc.so.6[0x31b8308810]
/lib64/libc.so.6[0x31b830a607]
/lib64/libglib-2.0.so.0(g_spawn_sync+0x1cc)[0x3e230873dc]
/lib64/libglib-2.0.so.0(g_spawn_command_line_sync+0x78)[0x3e23087a98]
/lib64/libgio-2.0.so.0[0x3e258af8af]
/lib64/libgio-2.0.so.0(g_dbus_address_get_for_bus_sync+0x2ca)[0x3e258b11ca]
/lib64/libgio-2.0.so.0[0x3e258ba0be]
/lib64/libgio-2.0.so.0(g_bus_get+0x54)[0x3e258ba1b4]
/lib64/libgio-2.0.so.0(g_bus_watch_name+0xe8)[0x3e258c7eb8]
/usr/lib64/gtk-2.0/2.10.0/immodules/im-ibus.so(+0x4370)[0x7fd0b1714370]
/lib64/libgobject-2.0.so.0(g_type_class_ref+0x4d6)[0x3e2382e0b6]
/lib64/libgobject-2.0.so.0(g_object_newv+0x831)[0x3e238165a1]
/lib64/libgobject-2.0.so.0(g_object_new+0xec)[0x3e23816b3c]
/usr/lib64/gtk-2.0/2.10.0/immodules/im-ibus.so(ibus_im_context_new+0x12)[0x7fd0b1714ed2]
/lib64/libgtk-x11-2.0.so.0[0x3e2a532b26]
/lib64/libgtk-x11-2.0.so.0[0x3e2a533409]
/lib64/libgtk-x11-2.0.so.0[0x3e2a5336a6]
/lib64/libwx_gtk2u_core-2.8.so.0(_ZN8wxWindow12PostCreationEv+0x54)[0x7fd0b3c09c14]
/lib64/libwx_gtk2u_core-2.8.so.0(_ZN19wxTopLevelWindowGTK6CreateEP8wxWindowiRK8wxStringRK7wxPointRK6wxSizelS4_+0x324)[0x7fd0b3c04754]
/lib64/libwx_gtk2u_core-2.8.so.0(_ZN7wxFrame6CreateEP8wxWindowiRK8wxStringRK7wxPointRK6wxSizelS4_+0x20)[0x7fd0b3c453d0]
/usr/lib64/erlang/lib/wx-0.99.2/priv/wxe_driver.so(_Z19create_dummy_windowv+0xa9)[0x7fd0b8f257c9]
/usr/lib64/erlang/lib/wx-0.99.2/priv/wxe_driver.so(_ZN6WxeApp6OnInitEv+0x1d6)[0x7fd0b8f27126]
/lib64/libwx_baseu-2.8.so.0(_Z7wxEntryRiPPw+0x64)[0x7fd0b37418d4]
/usr/lib64/erlang/lib/wx-0.99.2/priv/wxe_driver.so(_Z13wxe_main_loopPv+0x3f)[0x7fd0b8f2545f]
/usr/lib64/erlang/erts-5.9.3.1/bin/beam.smp[0x594fe0]
/lib64/libpthread.so.0[0x31b8607d15]
/lib64/libc.so.6(clone+0x6d)[0x31b82f246d]

I believe this is R15B but I'm not sure how to find out for certain.  The
version number of the erts might be enough.  BEAM also dumps out a memory
map
that I can send if you need it.  Since there is a process (hmm, maybe 2
processes)
for each connection, my guess is that GTK or its wrapper layer is
overflowing some
internal table when trying to draw that many boxes on the screen.

Regards

--Paul
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20130401/dcf79579/attachment.html>


More information about the erlang-bugs mailing list