<div dir="ltr">I'm seeing the same issue triggered by using dwm and chrome:<div><br></div><div><div>Program received signal SIGSEGV, Segmentation fault.</div><div>0x00007ffff282d616 in gtk_tray_icon_manager_filter (xevent=0x7fffffffd9c0, event=<optimized out>, user_data=0x2b036eb7f9d0)</div><div>    at /build/gtk+2.0-czQfyJ/gtk+2.0-2.24.25/gtk/gtktrayicon-x11.c:400</div><div>400     /build/gtk+2.0-czQfyJ/gtk+2.0-2.24.25/gtk/gtktrayicon-x11.c: No such file or directory.</div><div>(gdb)  bt</div><div>#0  0x00007ffff282d616 in gtk_tray_icon_manager_filter (xevent=0x7fffffffd9c0, event=<optimized out>, user_data=0x2b036eb7f9d0)</div><div>    at /build/gtk+2.0-czQfyJ/gtk+2.0-2.24.25/gtk/gtktrayicon-x11.c:400</div><div>#1  0x00007ffff230ed71 in gdk_event_apply_filters (xevent=0x7fffffffd9c0, event=0x2b036f9ee500, window=0x0)</div><div>    at /build/gtk+2.0-czQfyJ/gtk+2.0-2.24.25/gdk/x11</div><div>/gdkevents-x11.c:371</div><div>#2  0x00007ffff2310074 in gdk_event_translate (display=0x2b0364a4d020 [GdkDisplayX11], event=0x2b036f9ee500, xevent=0x7fffffffd9c0, return_exposes=return_exposes@entry=0) at /build/gtk+2.0-czQfyJ/gtk+2.0-2.24.25/gdk/x11/gdkevents-x11.c:969</div><div>#3  0x00007ffff2311a86 in _gdk_events_queue (display=display@entry=0x2b0364a4d020 [GdkDisplayX11])</div><div>    at /build/gtk+2.0-czQfyJ/gtk+2.0-2.24.25/gdk/x11/gdkevents-x11.c:2358</div><div>#4  0x00007ffff2311b2e in gdk_event_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)</div><div>    at /build/gtk+2.0-czQfyJ/gtk+2.0-2.24.25/gdk/x11/gdkevents-x11.c:2419</div><div>#5  0x00007ffff72b3c3d in g_main_context_dispatch (context=0x2b03649df790) at /build/glib2.0-NiYzoW/glib2.0-2.44.1/./glib/gmain.c:3122</div><div>#6  0x00007ffff72b3c3d in g_main_context_dispatch (context=context@entry=0x2b03649df790)</div><div>    at /build/glib2.0-NiYzoW/glib2.0-2.44.1/./glib/gmain.c:3737</div><div>#7  0x00007ffff72b3f20 in g_main_context_iterate (context=context@entry=0x2b03649df790, block=block@entry=0, dispatch=dispatch@entry=1, self=<optimized out>) at /build/glib2.0-NiYzoW/glib2.0-2.44.1/./glib/gmain.c:3808</div><div>#8  0x00007ffff72b3fcc in g_main_context_iteration (context=0x2b03649df790, may_block=0)</div><div>    at /build/glib2.0-NiYzoW/glib2.0-2.44.1/./glib/gmain.c:3869</div><div>#9  0x00005555565b1e12 in  ()</div><div>#10 0x00002b03649e4480 in  ()</div><div>#11 0x00000001565b9500 in  ()</div><div>#12 0x0000000000000001 in  ()</div><div>#13 0x00007fffffffdca8 in  ()</div><div>#14 0x0000555555fdc028 in  ()</div><div>#15 0x00007fffffffdf50 in  ()</div><div>#16 0x00007fffffffdc38 in  ()</div><div>#17 0x00002b0364a15ea0 in  ()</div><div>#18 0x000055555b3927d0 in  ()</div><div>#19 0x0000555556579540 in  ()</div><div>#20 0x000055555b3927d0 in  ()</div><div>#21 0x00000000012e444f in  ()</div><div>#22 0x00002b0364a14c80 in  ()</div><div>#23 0x00002b0300052a20 in  ()</div><div>#24 0x0000000000000000 in  ()</div><div>(gdb) </div></div><div><br></div><div><br></div><div>The gtktrayicon-x11.c code is this:</div><div><div>383: static GdkFilterReturn</div><div>384: gtk_tray_icon_manager_filter (GdkXEvent *xevent, </div><div><span class="" style="white-space:pre">385</span>: <span class="" style="white-space:pre">                  </span>      GdkEvent  *event, </div><div><span class="" style="white-space:pre">386</span>: <span class="" style="white-space:pre">                  </span>      gpointer   user_data)</div><div>387: {</div><div>388:   GtkTrayIcon *icon = user_data;</div><div>389:   XEvent *xev = (XEvent *)xevent;</div><div>390: </div><div>391:   if (xev->xany.type == ClientMessage &&</div><div>392:       xev->xclient.message_type == icon->priv->manager_atom &&</div><div>393:       xev->xclient.data.l[1] == icon->priv->selection_atom)</div><div>394:     {</div><div>395:       GTK_NOTE (PLUGSOCKET,</div><div><span class="" style="white-space:pre">396</span>: <span class="" style="white-space:pre">              </span>g_print ("GtkStatusIcon %p: tray manager appeared\n", icon));</div><div>397: </div><div>398:       gtk_tray_icon_update_manager_window (icon);</div><div>399:     }</div><div>400:   else if (xev->xany.window == icon->priv->manager_window)</div><div>    {</div><div>      if (xev->xany.type == PropertyNotify &&</div><div><span class="" style="white-space:pre">      </span>  xev->xproperty.atom == icon->priv->orientation_atom)</div><div><span class="" style="white-space:pre">   </span>{</div><div>          GTK_NOTE (PLUGSOCKET,</div><div><span class="" style="white-space:pre">               </span>    g_print ("GtkStatusIcon %p: got PropertyNotify on manager window for orientation atom\n", icon));</div><div><br></div><div><span class="" style="white-space:pre"> </span>  gtk_tray_icon_get_orientation_property (icon);</div><div><span class="" style="white-space:pre">  </span>}</div><div>      else if (xev->xany.type == DestroyNotify)</div><div><span class="" style="white-space:pre">      </span>{</div><div>          GTK_NOTE (PLUGSOCKET,</div><div><span class="" style="white-space:pre">               </span>    g_print ("GtkStatusIcon %p: got DestroyNotify for manager window\n", icon));</div><div><br></div><div><span class="" style="white-space:pre">      </span>  gtk_tray_icon_manager_window_destroyed (icon);</div><div><span class="" style="white-space:pre">  </span>}</div><div>      else</div><div>        GTK_NOTE (PLUGSOCKET,</div><div><span class="" style="white-space:pre">              </span>  g_print ("GtkStatusIcon %p: got other message on manager window\n", icon));</div><div>    }</div><div>  </div><div>  return GDK_FILTER_CONTINUE;</div><div>}</div></div><div><br></div><div><br></div><div>I suspect that this is a nullpointer dereference of icon->priv?</div><div>If there is an upstream fix in <span style="color:rgb(0,0,0);line-height:19.2000007629395px">GTK+3, it would be nice to backport this to the gtk2 lib as I'm getting ~daily crashes from this bug.</span></div></div>