Subject: Re: bug#20802: Segfault when showing non-GTK+ tooltip

From: martin rudalics <[email-masked]>
Date: Sat, 13 Jun 2015 16:28:47 +0200

> So FRAME_IMAGE_CACHE returns a NULL pointer, I guess.  But how did
 > that happen?  We allocate the cache in xfaces.c:init_frame_faces.  I
 > could understand why init_frame_faces was not yet called for the tip
 > frame we were trying to create, but the crash happens because of a
 > different frame.  Look:
 >
 >    #37 0x000000000054c091 in x_decode_color (f=0x24d2c30, color_name=..., mono_color=16777215) at ../../src/xfns.c:495
 >    #38 0x000000000054c566 in x_set_background_color (f=0x24d2c30, arg=..., oldval=...) at ../../src/xfns.c:638
 >    #39 0x000000000042d45d in x_set_frame_parameters (f=0x24d2c30, alist=...) at ../../src/frame.c:3152
 >    #40 0x0000000000431ce6 in x_default_parameter (f=0x24d2c30, alist=..., prop=..., deflt=..., xprop=0x6fd49d "background", xclass=0x6fd908 "Background", type=RES_TYPE_STRING) at ../../src/frame.c:4374
 >    #41 0x000000000055549d in x_create_tip_frame (dpyinfo=0x1621ee0, parms=..., text=...) at ../../src/xfns.c:5173
 >
 > This is the tip frame we are creating, its pointer is 0x24d2c30.  But
 > when we crash, it's for a different frame, whose pointer is 0x13a7e00:
 >
 >    #0  0x00000000006c9b5c in cache_image (f=0x13a7e00, img=0x249e010) at ../../src/image.c:1775
 >    #1  0x00000000006c96e3 in lookup_image (f=0x13a7e00, spec=...) at ../../src/image.c:1686

As I mentioned earlier this seems to be due to the fact that the
debugger intervenes in some recursive fashion.  The crash happens after
the backtrace window popped up and when I try to ‘switch-to-prev-buffer’
in the window where the tooltip should have appeared.  Without that I'm
_not_ able to reproduce the crash.

 > Can you see what is that frame, and why we didn't call
 > init_frame_faces for it?

What makes you think this is not my normal frame in the first place and
why init_frame_faces was not called for it?  Hmmm, I see, nothing can
stop make_image_cache apparently.  I'll look into this later - sounds
like a thunderstorm approaching and I'll rather switch off my machine.

 > Also, which image are we trying to display
 > here?

How would I know?  I never see one because I build without image
support.

 > Something on the toolbar, perhaps?  Did you move mouse pointer
 > over a tool-bar button to trigger a tooltip that failed?

The toolbar is disabled with my customizations.

martin