Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Mar 1998 18:15:37 -0500
From:      Randall Hopper <rhh@ct.picker.com>
To:        "Jason T. Nelson" <jason@jlc.net>, multimedia@FreeBSD.ORG
Subject:   Re: fxtv 0.46 problem
Message-ID:  <19980311181537.19870@ct.picker.com>
In-Reply-To: <19980309015544.38506@jlc.net>; from Jason T. Nelson on Mon, Mar 09, 1998 at 01:55:44AM -0500
References:  <19980309015544.38506@jlc.net>

next in thread | previous in thread | raw e-mail | index | archive | help
[Moved over to the multimedia list where more TV users hang out :-]

Jason T. Nelson:
 |When I did an upgrade to FreeBSD 2.2.5-RELEASE (finally), I somehow
 |broke fxtv. It just returns this now:
 |
 |Xlib: sequence lost (0x10000 > 0x18) in reply type 0xe!
 |
 |Anybody seen this?
 |
 |I've compiled a brand new copy out of ports, and the same thing happens.

I've never seen that error (or even heard of someone that's seen this
error) with Fxtv.

(Consulting the X docs and NetNews...) This error means that a server reply
to an Xlib request contained a mismatched sequence number.

The net consensus says that implies one of these 4 underlying causes:

   1) Xlib requests are being made from a signal handler
   2) Xlib protocol requests are being issued from an X error handler
   3) Xlib calls are being made from multiple threads or processes for the
      same X display context
   4) Xlib state has been corrupted (app overwriting memory, etc.)

So...

(1) Fxtv has two signal handlers, but all they do is set the state of
    global variables, so that's out.  

(2) Fxtv installs one signal handler while executing 2 and only 2 X calls
    (XF86DGAQueryVersion) since the Xaccel/Xi server hates it when you do
    that, and I use whether the error handler was called to know whether
    the extension is supported or not (really I should have used
    XListExtensions to find out, but I didn't know about it at the time --
    I'll change that now for Fxtv 0.47).

    However, I don't think this would cause your problem since you're
    running XFree and the error handler doesn't make any X calls except
    XGetErrorText and that doesn't generate any X protocol messages
    (AFAIK).  To verify this assertion, make this patch to tvscreen.c and
    give her a whirl:

        < XSetErrorHandler( STVSCREENXErrorHdlr );
        < ret = XF86DGAQueryVersion( s->display, &dga_majv, &dga_minv );
        < if ( ret == True )
        <     ret = XF86DGAQueryDirectVideo( s->display, s->screen, 
        <                                    &dga_flags_sup );
        < XSetErrorHandler( STVSCREENXErrorHdlr );
        > ret = FALSE

(3) Fxtv doesn't do threads, and doesn't do X requests in its subprocesses.

(4) That leaves Xlib state corruption.  Could potentially happen if your
    XFree dist isn't installed quite right (mismatched .so's maybe?).
    Might try moving your X11R6 dir aside, installing a fresh copy for
    testing from the CD or ftp.xfree86.org, and see if your problem goes
    away.

Randall Hopper

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-multimedia" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980311181537.19870>