Trying to start multiple X servers on multiple virtual terminals crashes X making the console unusable. A single X server will work ok. Reproducible: Always Steps to Reproduce: 1. Exit /etc/X11/xdm/Xservers to multiple virtual terminals (e.g. :2, :3, etc.) are enabled. 2. Restart xdm. Actual Results: X will crash leaving the console unusable. The error is: process 6898: arguments to dbus_connection_send_with_reply_and_block() were incorrect, assertion "(error) == NULL || !dbus_error_is_set ((error))" failed in file dbus-connection.c line 3171. This is normally a bug in some application using the D-Bus library. /usr/lib/libdbus-1.so.3 [0xb7d5cc6e] /usr/lib/libdbus-1.so.3 [0xb7d5c146] /usr/lib/libdbus-1.so.3 [0xb7d50f01] /usr/lib/libdbus-1.so.3(dbus_connection_send_with_reply_and_block+0x1de) [0xb7d30149] /usr/lib/libdbus-1.so.3 [0xb7d25ef7] /usr/lib/libdbus-1.so.3(dbus_bus_add_match+0xdc) [0xb7d26174] /usr/bin/X [0x809ee00] /usr/bin/X [0x809ec80] /usr/bin/X [0x819e1ef] /usr/bin/X(WaitForSomething+0x64b) [0x819e92a] /usr/bin/X(Dispatch+0x82) [0x80862b3] /usr/bin/X(main+0x48f) [0x806e965] /lib/libc.so.6(__libc_start_main+0xe0) [0xb7bcd9a8] /usr/bin/X(FontFileCompleteXLFD+0xcd) [0x806dcf1] Expected Results: Multiple X sessions should come up attached to different virtual terminals. This is in x11-base/xorg-server-1.4-r2. From: http://lists.freedesktop.org/archives/xorg/2007-September/028041.html the following patch should be applied. I have tested this and it seems to correct the problem of being unable to start multiple X servers on multiple virtual terminals. The code in connect_hook incorrectly checks for dbus_bus_request_name failure. The dbus_bus_request_name error indicator is -1, not 0. This leads to subsequent assertion failure in libdbus --- config/dbus.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/config/dbus.c b/config/dbus.c index c6f4af0..7eabcb9 100644 --- a/config/dbus.c +++ b/config/dbus.c @@ -353,8 +353,10 @@ connect_hook(DBusConnection *connection, void *data) dbus_error_init(&error); - if (!dbus_bus_request_name(info->connection, info->busname, - 0, &error)) { + dbus_bus_request_name(info->connection, info->busname, + 0, &error); + + if (dbus_error_is_set(&error)) { ErrorF("[config/dbus] couldn't take over org.x.config: %s (%s)\n", error.name, error.message); goto err_start;
*** This bug has been marked as a duplicate of bug 191822 ***