X freezes

Johan Eriksson johan.eriksson at lkpg.visit.se
Thu Nov 4 09:54:42 PST 2004


I'm having a problem with X getting stuck on a select and uses 99.9% of the cpu.

I'm not sure if this is a problem in debians libc6 or in X.

Using latest X-cvs.

X get stuck in xc/lib/X11/XlibInt.c::XWaitForReadable() when doing select, I've tried with poll and the result is the same.

(gdb) bt
#0  0xb7ea53b8 in ___newselect_nocancel () from /lib/tls/libc.so.6
#1  0xb7f476c4 in _XWaitForReadable (dpy=0x804c060) at XlibInt.c:493
#2  0xb7f48993 in _XRead (dpy=0x804c060, data=0xbffff808 "", size=8) at XlibInt.c:1071
#3  0xb7f362e2 in XOpenDisplay (display=0x8049e34 ":0") at OpenDis.c:314
#4  0x080494cd in waitforserver () at xinit.c:491
#5  0x08049847 in startServer (server=0x804b608) at xinit.c:666
#6  0x080493a5 in main (argc=-1, argv=0xbffffb18) at xinit.c:451


I've printed the Display content if someone can check if it look correct so nothing is corrupted.

Program received signal SIGINT, Interrupt.
0xb7ea53b8 in ___newselect_nocancel () from /lib/tls/libc.so.6
(gdb) up
#1  0xb7f476c4 in _XWaitForReadable (dpy=0x804c060) at XlibInt.c:493
493             result = Select(highest_fd + 1, &r_mask, NULL, NULL, NULL);
(gdb) print *dpy
$2 = {ext_data = 0x0, free_funcs = 0x804c5a0, fd = 7, conn_checker = 0, proto_major_version = 0, proto_minor_version = 0,
  vendor = 0x0, resource_base = 0, resource_mask = 0, resource_id = 0, resource_shift = 0,
  resource_alloc = 0xb7f492b4 <_XAllocID>, byte_order = 0, bitmap_unit = 0, bitmap_pad = 0, bitmap_bit_order = 0,
  nformats = 0, pixmap_format = 0x0, vnumber = 11, release = 0, head = 0x0, tail = 0x0, qlen = 0, last_request_read = 0,
  request = 0, last_req = 0xb7feeae4 "", buffer = 0x804c890 "", bufptr = 0x804c890 "", bufmax = 0x8050890 "",
  max_request_size = 0, db = 0x0, synchandler = 0, display_name = 0x804c640 ":0.0", default_screen = 0, nscreens = 0,
  screens = 0x0, motion_buffer = 0, flags = 0, min_keycode = 0, max_keycode = 0, keysyms = 0x0, modifiermap = 0x0,
  keysyms_per_keycode = 0, xdefaults = 0x0, scratch_buffer = 0x0, scratch_length = 0, ext_number = 0, ext_procs = 0x0,
  event_vec = {0xb7f4a91b <_XUnknownWireEvent>, 0xb7f4a91b <_XUnknownWireEvent>,
    0xb7f4a92f <_XWireToEvent> <repeats 33 times>, 0xb7f4a91b <_XUnknownWireEvent> <repeats 93 times>}, wire_vec = {
    0xb7f4a925 <_XUnknownNativeEvent>, 0xb7f4a925 <_XUnknownNativeEvent>, 0 <repeats 33 times>,
    0xb7f4a925 <_XUnknownNativeEvent> <repeats 93 times>}, lock_meaning = 0, lock = 0x0, async_handlers = 0x0,
  bigreq_size = 0, lock_fns = 0x0, idlist_alloc = 0xb7f49396 <_XAllocIDs>, key_bindings = 0x0, cursor_font = 0, atoms = 0x0,
  mode_switch = 0, num_lock = 0, context_db = 0x0, error_vec = 0x0, cms = {defaultCCCs = 0x0, clientCmaps = 0x0,
    perVisualIntensityMaps = 0x0}, im_filters = 0x0, qfree = 0x0, next_event_serial_num = 1, flushes = 0x0,
  im_fd_info = 0x0, im_fd_length = 0, conn_watchers = 0x0, watcher_count = 0, filedes = 0x0, savedsynchandler = 0,
  resource_max = 0, xcmisc_opcode = 0, xkb_info = 0x0, trans_conn = 0x804c610}
(gdb) print r_mask
$3 = {fds_bits = {128, 0 <repeats 31 times>}}


I'm running debian with 2.6.9 kernel and libc 2.3.2-ds1-18.




More information about the xorg mailing list