Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 May 2008 22:27:57 GMT
From:      Daniel Eischen <deischen@FreeBSD.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/124081: [Patch] xorg-server 1.4 crashing with SIGBUS
Message-ID:  <200805282227.m4SMRvCk066805@www.freebsd.org>
Resent-Message-ID: <200805282230.m4SMU8Dt006257@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         124081
>Category:       ports
>Synopsis:       [Patch] xorg-server 1.4 crashing with SIGBUS
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed May 28 22:30:08 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Daniel Eischen
>Release:        8.0-CURRENT
>Organization:
>Environment:
FreeBSD f4i.clc.gdeb.com 8.0-CURRENT FreeBSD 8.0-CURRENT #1: Tue May 27 22:50:54 UTC 2008     root@f4i.clc.gdeb.com:/opt/FreeBSD/obj/opt/FreeBSD/src/src/sys/f4i  amd64
>Description:
X crashes every time when logging out of kdm.  It initially starts
fine and kde works as epected - until you log out.  X crashes with
SIGBUS.

I built a debug version of it and traced it to config/dbus-core.c.  The
patch that fixes it is attached.

The system is an AMD64 system with all ports up to date as of May 27, 2008.
The (good) xorg log and conf files are here:

  http://people.freebsd.org/~deischen/xorg/Xorg.0.log
  http://people.freebsd.org/~deischen/xorg/xorg.conf


>How-To-Repeat:
Not sure - for someone else.  For me, just login in and out of KDE.
>Fix:
See attached patch file.

Patch attached with submission follows:

--- config/dbus-core.c.orig	2008-05-28 18:04:17.000000000 +0000
+++ config/dbus-core.c	2008-05-28 18:04:01.000000000 +0000
@@ -87,7 +87,8 @@
         dbus_connection_unref(bus_info.connection);
 
     RemoveBlockAndWakeupHandlers(block_handler, wakeup_handler, &bus_info);
-    RemoveGeneralSocket(bus_info.fd);
+    if (bus_info.fd >= 0)
+        RemoveGeneralSocket(bus_info.fd);
     bus_info.fd = -1;
     bus_info.connection = NULL;
 


>Release-Note:
>Audit-Trail:
>Unformatted:



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