On Fri, 1 Feb 2008, Roman Dubtsov wrote:
Hello,
I have intermittent FVWM crashes. They occur when I start either
gnome-control-center, nvidia-settings, or wine (this one works almost
always). I use FVWM from Debian.
[EMAIL PROTECTED] 00:51:32 fvwm-cvs]$ fvwm -V
fvwm 2.5.23 compiled on Jan 31 2008 at 23:37:18
with support for: ReadLine, RPlay, Stroke, XPM, PNG, SVG, Shape, XShm,
SM, Bidi text,
Core is not always dumped, sometimes FVWM crashes with X11 error
message similar to this:
[fvwm.0][FvwmErrorHandler]: <<ERROR>> *** internal error ***
[fvwm.0][FvwmErrorHandler]: <<ERROR>> Request 73, Error 8, EventType: 28
That is a BadMatch error from XGetImage (probalby line 1149 in
colorset.c), which would then return null, and explain the segfault on
line 1170. According to the man page of XGetImage, that is caused by
trying to read outside the pixmap. Which seems quite strange since on line
1045-1048 the pixmap and size is set to that of the root_pic. And it then
verifies the with at line 1102-1121, and the XServer is grabbed during the
test until after the XGetImage call.
Is there anything else I can do to help to resolve the issue?
colorset.c in CVS head did not change since 2.5.23, so I did not build
and test it, but will surely do if necessary.
I'm interesting in having verified that cs->picture == NULL for the
colorset, and also have the with and hight queried from the image before
the XGetImage printed. I must be missing some possible path here. But I
fail to see how the picture can be non-NULL - at least not with your
Colorset definition.
Can you add something like
{
int w;
int h;
XID dummy;
if (
!XGetGeometry(
dpy, average_pix, &dummy,
(int *)&dummy, (int *)&dummy,
(unsigned int *)&w, (unsigned int *)&h,
(unsigned int *)&dummy,
(unsigned int *)&dummy))
{
fprintf(stderr, "failed to get dimension\n");
}
else
{
fprintf(stderr, "width: %d, height: %d, expexted: %dx%d\n",
w, h, cs->width, cs->height);
}
fprintf(stderr, "picture: %p\n", cs->picture);
}
before the call to XGetImage? And try to reproduce the error.
/Viktor