Subject: bug#2021: 23.0.60; X protocol error: BadFont

From: Stephen Berman <[email-masked]>
Date: Wed, 04 Feb 2009 15:05:11 +0100

On Sat, 24 Jan 2009 14:17:35 +0100 Stephen Berman <[email-masked]> wrote:

> But when I start Emacs like this:
>
> emacs -Q --eval "(setq default-frame-alist '((font-backend . \"xft\") (font . \"Dejavu Sans Mono-10\")))" &
>
> which differs from the first invocation above only in lacking `--daemon'
> and being backgrounded, the frame that appears has tiny illegible
> characters, the shell beeps and prints this:
>
> steve@escher:~> libxcb: WARNING! Program tries to lock an already locked connection,
>         which indicates a programming error.
>         There will be no further warnings about this issue.
>
> and emacs consumes 100% of CPU and can only be killed with -9.  (If I
> don't use `&', then the frame immediately closes and the Emacs process
> is killed.)

It's the font-backend parameter-value pair alone that causes this, i.e.,
instead of the above, it sufficient (and necessary) to do this:

emacs -Q --eval "(setq default-frame-alist '((font-backend . \"xft\")))" &

Likewise, if I make ~/.emacs consist of this:

(setq default-frame-alist '((font-backend . "xft")))

then after invoking `emacs' the same thing happens as above, and in
addition the shell shows the following:

(emacs:11144): GLib-WARNING **: g_main_context_prepare() called recursively from within a source's check() or prepare() member.

--
Steve Berman