End-of-recording crash (Re: [mythtv] Vacation.)

Matt Zimmerman mythtv-dev@snowman.net
Sun, 20 Oct 2002 23:05:50 -0400


On Fri, Oct 18, 2002 at 05:09:27PM -0400, Isaac Richards wrote:

> I'm going to be gone on vacation until the 26th.  If there haven't been any 
> major bugreports (assuming I get a backtrace of that crash on finished 
> playing bug), and Thor and Chuck commit things to CVS <grin>, I'll put the 
> 0.7 release out the 27th or so.

Here's a backtrace of that particular crash:

#0  0x4097765e in _IO_stderr_ () from /lib/libc.so.6
#1  0x40789c68 in _X11TransBytesReadable () from /usr/X11R6/lib/libX11.so.6
#2  0x4076eaaf in _XEventsQueued () from /usr/X11R6/lib/libX11.so.6
#3  0x4076377f in XPending () from /usr/X11R6/lib/libX11.so.6
#4  0x0809851c in XvVideoOutput::CheckEvents (this=0x83cd858) at XJ.cpp:335
#5  0x080826e2 in NuppelVideoPlayer::CheckEvents (this=0x40d6e008)
    at NuppelVideoPlayer.cpp:993
#6  0x08077e34 in TV::RunTV (this=0x8257e70) at tv.cpp:952
#7  0x08077d68 in TV::EventThread (param=0x8257e70) at tv.cpp:922
#8  0x40723fa5 in pthread_start_thread () from /lib/libpthread.so.0
#9  0x40723fed in pthread_start_thread_event () from /lib/libpthread.so.0

Pretty curious.  XPending is being passed what looks like a reasonable Display,
as far as I can tell:

(gdb) print this->XJ_disp
$5 = (Display *) 0x83cd988
(gdb) print *(this->XJ_disp)
$6 = <incomplete type>

I'm planning to upgrade my XFree86 on that system sometime soon, at which point
I will be able to easily install xlibs-dbg and see what is going on inside
libX11.  Currently, it is running some of the 4.2.1 pre-release debs.
Upgrading X on this system is non-trivial, because I need to rebuild the gatos
drivers as well.

Here's a dump of the XvVideoOutput object, in case that's useful.

(gdb) print *this
$4 = {XJ_SHMInfo = {shmseg = 8388611, shmid = 5931015, 
    shmaddr = 0x4182d000 <Address 0x4182d000 out of bounds>, readOnly = 0}, 
  XJ_screen = 0x83ce938, XJ_disp = 0x83cd988, XJ_root = 58, XJ_win = 8388609, 
  XJ_image = 0x83ced28, XJ_ev = {type = 0, xany = {type = 0, serial = 0, 
      send_event = 0, display = 0x0, window = 0}, xkey = {type = 0, 
      serial = 0, send_event = 0, display = 0x0, window = 0, root = 0, 
      subwindow = 0, time = 0, x = 0, y = 0, x_root = 0, y_root = 0, 
      state = 0, keycode = 0, same_screen = 0}, xbutton = {type = 0, 
      serial = 0, send_event = 0, display = 0x0, window = 0, root = 0, 
      subwindow = 0, time = 0, x = 0, y = 0, x_root = 0, y_root = 0, 
      state = 0, button = 0, same_screen = 0}, xmotion = {type = 0, 
      serial = 0, send_event = 0, display = 0x0, window = 0, root = 0, 
      subwindow = 0, time = 0, x = 0, y = 0, x_root = 0, y_root = 0, 
      state = 0, is_hint = 0 '\0', same_screen = 0}, xcrossing = {type = 0, 
      serial = 0, send_event = 0, display = 0x0, window = 0, root = 0, 
      subwindow = 0, time = 0, x = 0, y = 0, x_root = 0, y_root = 0, mode = 0, 
      detail = 0, same_screen = 0, focus = 0, state = 0}, xfocus = {type = 0, 
      serial = 0, send_event = 0, display = 0x0, window = 0, mode = 0, 
      detail = 0}, xexpose = {type = 0, serial = 0, send_event = 0, 
      display = 0x0, window = 0, x = 0, y = 0, width = 0, height = 0, 
      count = 0}, xgraphicsexpose = {type = 0, serial = 0, send_event = 0, 
      display = 0x0, drawable = 0, x = 0, y = 0, width = 0, height = 0, 
      count = 0, major_code = 0, minor_code = 0}, xnoexpose = {type = 0, 
      serial = 0, send_event = 0, display = 0x0, drawable = 0, major_code = 0, 
      minor_code = 0}, xvisibility = {type = 0, serial = 0, send_event = 0, 
      display = 0x0, window = 0, state = 0}, xcreatewindow = {type = 0, 
      serial = 0, send_event = 0, display = 0x0, parent = 0, window = 0, 
      x = 0, y = 0, width = 0, height = 0, border_width = 0, 
      override_redirect = 0}, xdestroywindow = {type = 0, serial = 0, 
      send_event = 0, display = 0x0, event = 0, window = 0}, xunmap = {
      type = 0, serial = 0, send_event = 0, display = 0x0, event = 0, 
      window = 0, from_configure = 0}, xmap = {type = 0, serial = 0, 
      send_event = 0, display = 0x0, event = 0, window = 0, 
      override_redirect = 0}, xmaprequest = {type = 0, serial = 0, 
      send_event = 0, display = 0x0, parent = 0, window = 0}, xreparent = {
      type = 0, serial = 0, send_event = 0, display = 0x0, event = 0, 
      window = 0, parent = 0, x = 0, y = 0, override_redirect = 0}, 
    xconfigure = {type = 0, serial = 0, send_event = 0, display = 0x0, 
      event = 0, window = 0, x = 0, y = 0, width = 0, height = 0, 
      border_width = 0, above = 0, override_redirect = 0}, xgravity = {
      type = 0, serial = 0, send_event = 0, display = 0x0, event = 0, 
      window = 0, x = 0, y = 0}, xresizerequest = {type = 0, serial = 0, 
      send_event = 0, display = 0x0, window = 0, width = 0, height = 0}, 
    xconfigurerequest = {type = 0, serial = 0, send_event = 0, display = 0x0, 
      parent = 0, window = 0, x = 0, y = 0, width = 0, height = 0, 
      border_width = 0, above = 0, detail = 0, value_mask = 0}, xcirculate = {
      type = 0, serial = 0, send_event = 0, display = 0x0, event = 0, 
      window = 0, place = 0}, xcirculaterequest = {type = 0, serial = 0, 
      send_event = 0, display = 0x0, parent = 0, window = 0, place = 0}, 
    xproperty = {type = 0, serial = 0, send_event = 0, display = 0x0, 
      window = 0, atom = 0, time = 0, state = 0}, xselectionclear = {type = 0, 
      serial = 0, send_event = 0, display = 0x0, window = 0, selection = 0, 
      time = 0}, xselectionrequest = {type = 0, serial = 0, send_event = 0, 
      display = 0x0, owner = 0, requestor = 0, selection = 0, target = 0, 
      property = 0, time = 0}, xselection = {type = 0, serial = 0, 
      send_event = 0, display = 0x0, requestor = 0, selection = 0, target = 0, 
      property = 0, time = 0}, xcolormap = {type = 0, serial = 0, 
      send_event = 0, display = 0x0, window = 0, colormap = 0, c_new = 0, 
      state = 0}, xclient = {type = 0, serial = 0, send_event = 0, 
      display = 0x0, window = 0, message_type = 0, format = 0, data = {
        b = '\0' <repeats 19 times>, s = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, l = {
          0, 0, 0, 0, 0}}}, xmapping = {type = 0, serial = 0, send_event = 0, 
      display = 0x0, window = 0, request = 0, first_keycode = 0, count = 0}, 
    xerror = {type = 0, display = 0x0, resourceid = 0, serial = 0, 
      error_code = 0 '\0', request_code = 0 '\0', minor_code = 0 '\0'}, 
    xkeymap = {type = 0, serial = 0, send_event = 0, display = 0x0, 
      window = 0, key_vector = '\0' <repeats 31 times>}, pad = {
      0 <repeats 24 times>}}, XJ_gc = 0x83cecb0, XJ_screen_num = 0, 
  XJ_white = 65535, XJ_black = 0, XJ_started = 1, XJ_depth = 16, 
  XJ_caught_error = 0, XJ_width = 480, XJ_height = 480, XJ_screenwidth = 800, 
  XJ_screenheight = 600, XJ_fullscreen = 1, oldx = 0, oldy = 0, oldw = 480, 
  oldh = 480, curx = -40, cury = -30, curw = 881, curh = 673, hints = {
    flags = 780, x = -40, y = -30, width = 881, height = 673, min_width = 0, 
    min_height = 0, max_width = 0, max_height = 0, width_inc = 0, 
    height_inc = 0, min_aspect = {x = 0, y = 0}, max_aspect = {x = 0, y = 0}, 
    base_width = 881, base_height = 673, win_gravity = 10}, xv_port = 55, 
  colorid = 808596553, scratchspace = 0x0}


-- 
 - mdz