Subject: bug#16058: 24.3.50; X protocol error: BadAlloc...

From: Dmitry Antipov <[email-masked]>
Date: Fri, 06 Dec 2013 10:26:28 +0400

On 12/05/2013 11:10 AM, Thierry Volpiatto wrote:

> So you mean try to reproduce the bug with emacs compiled with:
> ./configure --with-x-toolkit=lucid --without-toolkit-scroll-bars
> then with:
> ./configure --with-x-toolkit=lucid --without-toolkit-scroll-bars --without-gconf
> then with:
> ./configure --with-x-toolkit=lucid --without-toolkit-scroll-bars --without-gconf --without-gsettings
> then with:
> ./configure --with-x-toolkit=lucid --without-toolkit-scroll-bars --without-all

Could you please try the following steps:

1) Run under xtruss (http://www.chiark.greenend.org.uk/~sgtatham/xtruss)
and check for BadAlloc raised by XCreatePixmap, like below:

02400000: ChangeGC(gc=g#02400067, clip-mask=None)
02400000:  ... CreatePixmap(pid=p#0240012D, drawable=wp#02400064, depth=24, width=576, height=65459) = BadAlloc
02400000:  ... PolyFillRectangle(drawable=wp#0240012D, gc=g#02400104, rectangles[0]={x=0, y=0, width=65459, height=44}) = BadDrawable(drawable=wp#0240012D)
02400000:  ... CopyArea(src-drawable=wp#024000CA, dst-drawable=wp#0240012D, gc=g#02400104, src-x=0, src-y=0, width=24, height=24, dst-x=5, dst-y=10) = BadDrawable(drawable=wp#0240012D)
02400000:  ... CopyArea(src-drawable=wp#0240012D, dst-drawable=wp#02400064, gc=g#02400104, src-x=0, src-y=0, width=65459, height=44, dst-x=711, dst-y=0) = BadDrawable(drawable=wp#0240012D)
02400000:  ... FreePixmap(pixmap=p#0240012D) = BadPixmap(pixmap=p#0240012D)

2) Check whether you hit this eassert:

=== modified file 'src/xdisp.c'
--- src/xdisp.c	2013-12-04 18:46:47 +0000
+++ src/xdisp.c	2013-12-06 05:53:44 +0000
@@ -23803,6 +23803,7 @@
      s->background_width = last_x - s->x + 1;
    else
      s->background_width = s->width;
+  eassert (s->background_width > 0);
  }

3) Check whether an issue disappears when you configure without '--without-gsettings'.

Dmitry