- Be more verbose to help isolate the problem in bug 234567
This commit is contained in:
parent
e96f6b2ac0
commit
d9f59d91d6
191
gdm-2.18.0-be-more-verbose.patch
Normal file
191
gdm-2.18.0-be-more-verbose.patch
Normal file
@ -0,0 +1,191 @@
|
||||
--- gdm-2.18.0/daemon/slave.c.be-more-verbose 2007-04-17 10:17:28.000000000 -0400
|
||||
+++ gdm-2.18.0/daemon/slave.c 2007-04-17 10:47:30.000000000 -0400
|
||||
@@ -966,6 +966,8 @@
|
||||
static void
|
||||
gdm_screen_init (GdmDisplay *display)
|
||||
{
|
||||
+
|
||||
+ gdm_debug ("gdm_screen_init: initializing xinerama, etc");
|
||||
#ifdef HAVE_XFREE_XINERAMA
|
||||
int (* old_xerror_handler) (Display *, XErrorEvent *);
|
||||
gboolean have_xinerama = FALSE;
|
||||
@@ -982,36 +984,52 @@
|
||||
have_xinerama = FALSE;
|
||||
|
||||
if (have_xinerama) {
|
||||
+ gdm_debug ("gdm_screen_init: machine has xinerama");
|
||||
int screen_num;
|
||||
int xineramascreen;
|
||||
XineramaScreenInfo *xscreens =
|
||||
XineramaQueryScreens (display->dsp,
|
||||
&screen_num);
|
||||
|
||||
+ gdm_debug ("gdm_screen_init: display %s has %d screens", display->name, screen_num);
|
||||
|
||||
if G_UNLIKELY (screen_num <= 0)
|
||||
gdm_fail ("Xinerama active, but <= 0 screens?");
|
||||
|
||||
if (screen_num <= gdm_get_value_int (GDM_KEY_XINERAMA_SCREEN))
|
||||
+ {
|
||||
+ gdm_debug ("gdm_screen_init: xinerama screen key is bogus (%d when screen_num is %d)",
|
||||
+ gdm_get_value_int (GDM_KEY_XINERAMA_SCREEN), screen_num);
|
||||
gdm_set_value_int (GDM_KEY_XINERAMA_SCREEN, 0);
|
||||
+ }
|
||||
|
||||
xineramascreen = gdm_get_value_int (GDM_KEY_XINERAMA_SCREEN);
|
||||
+ gdm_debug ("gdm_screen_init: using head %d", screen_num);
|
||||
|
||||
display->screenx = xscreens[xineramascreen].x_org;
|
||||
display->screeny = xscreens[xineramascreen].y_org;
|
||||
display->screenwidth = xscreens[xineramascreen].width;
|
||||
display->screenheight = xscreens[xineramascreen].height;
|
||||
|
||||
+ gdm_debug ("gdm_screen_init: head %d has dimensions (%dx%d+%d+%d)",
|
||||
+ display->screenwidth, display->screenheight,
|
||||
+ display->screenx, display->screeny);
|
||||
+
|
||||
display->lrh_offsetx =
|
||||
DisplayWidth (display->dsp,
|
||||
DefaultScreen (display->dsp))
|
||||
- (display->screenx + display->screenwidth);
|
||||
+
|
||||
+ gdm_debug ("gdm_screen_init: display->lrh_offsetx = %d\n", display->lrh_offsetx);
|
||||
display->lrh_offsety =
|
||||
DisplayHeight (display->dsp,
|
||||
DefaultScreen (display->dsp))
|
||||
- (display->screeny + display->screenheight);
|
||||
+ gdm_debug ("gdm_screen_init: display->lrh_offsety = %d\n", display->lrh_offsety);
|
||||
|
||||
XFree (xscreens);
|
||||
+
|
||||
+ gdm_debug ("gdm_screen_init: xinerama configured\n");
|
||||
} else
|
||||
#elif HAVE_SOLARIS_XINERAMA
|
||||
/* This code from GDK, Copyright (C) 2002 Sun Microsystems */
|
||||
@@ -1034,6 +1052,7 @@
|
||||
unsigned char hints[16];
|
||||
int xineramascreen;
|
||||
|
||||
+ gdm_debug ("gdm_screen_init: machine has sun xinerama");
|
||||
result = XineramaGetInfo (display->dsp, 0, monitors, hints, &n_monitors);
|
||||
/* Yes I know it should be Success but the current implementation
|
||||
* returns the num of monitor
|
||||
@@ -1062,6 +1081,8 @@
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
+
|
||||
+ gdm_debug ("gdm_screen_init: machine doesn't have xinerama");
|
||||
display->screenx = 0;
|
||||
display->screeny = 0;
|
||||
display->screenwidth = 0; /* we'll use the gdk size */
|
||||
@@ -1412,6 +1433,7 @@
|
||||
else
|
||||
maxtries = 10;
|
||||
|
||||
+ gdm_debug ("gdm_slave_run: maxtries = %d\n", maxtries);
|
||||
while (d->handled &&
|
||||
openretries < maxtries &&
|
||||
d->dsp == NULL &&
|
||||
@@ -1428,9 +1450,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ gdm_debug ("gdm_slave_run: display %s is now open\n", d->name);
|
||||
/* Really this will only be useful for the first local server,
|
||||
since that's the only time this can really be on */
|
||||
while G_UNLIKELY (gdm_wait_for_go) {
|
||||
+ gdm_debug ("gdm_slave_run: blocking until told to continue\n");
|
||||
struct timeval tv;
|
||||
/* Wait 1 second. */
|
||||
tv.tv_sec = 1;
|
||||
@@ -1443,6 +1467,7 @@
|
||||
|
||||
/* Set the busy cursor */
|
||||
if (d->dsp != NULL) {
|
||||
+ gdm_debug ("gdm_slave_run: settings a busy cursor\n");
|
||||
Cursor xcursor = XCreateFontCursor (d->dsp, GDK_WATCH);
|
||||
XDefineCursor (d->dsp,
|
||||
DefaultRootWindow (d->dsp),
|
||||
@@ -1451,20 +1476,24 @@
|
||||
XSync (d->dsp, False);
|
||||
}
|
||||
|
||||
+ gdm_debug ("gdm_slave_run: pausing for no reason at all\n");
|
||||
/* Just a race avoiding sleep, probably not necessary though,
|
||||
* but doesn't hurt anything */
|
||||
if ( ! d->handled)
|
||||
gdm_sleep_no_signal (1);
|
||||
|
||||
if (SERVER_IS_LOCAL (d)) {
|
||||
+ gdm_debug ("gdm_slave_run: display %s is local\n", d->name);
|
||||
gdm_slave_send (GDM_SOP_START_NEXT_LOCAL, FALSE);
|
||||
}
|
||||
|
||||
+ gdm_debug ("gdm_slave_run: checking pending notifies\n");
|
||||
check_notifies_now ();
|
||||
|
||||
/* something may have gone wrong, try xfailed, if local (non-flexi),
|
||||
* the toplevel loop of death will handle us */
|
||||
if G_UNLIKELY (d->handled && d->dsp == NULL) {
|
||||
+ gdm_debug ("gdm_slave_run: d->dsp is NULL\n");
|
||||
if (d->type == TYPE_STATIC)
|
||||
gdm_slave_quick_exit (DISPLAY_XFAILED);
|
||||
else
|
||||
@@ -1477,6 +1506,7 @@
|
||||
|
||||
/* If XDMCP setup pinging */
|
||||
if ( ! SERVER_IS_LOCAL (d) && pinginterval > 0) {
|
||||
+ gdm_debug ("gdm_slave_run: installing a ping alarm at interval %d\n", pinginterval);
|
||||
alarm (pinginterval);
|
||||
}
|
||||
|
||||
@@ -1492,17 +1522,27 @@
|
||||
|
||||
/* check log stuff for the server, this is done here
|
||||
* because it's really a race */
|
||||
+
|
||||
if (SERVER_IS_LOCAL (d))
|
||||
+ {
|
||||
+ gdm_debug ("gdm_slave_run: checklog for vt");
|
||||
gdm_server_checklog (d);
|
||||
+ }
|
||||
|
||||
if ( ! d->handled) {
|
||||
+
|
||||
+ gdm_debug ("gdm_slave_run: !d->handled and servpid = %d", d->servpid);
|
||||
/* yay, we now wait for the server to die */
|
||||
while (d->servpid > 0) {
|
||||
+ gdm_debug ("gdm_slave_run: waiting for signal");
|
||||
pause ();
|
||||
}
|
||||
+
|
||||
+ gdm_debug ("gdm_slave_run: quick exit");
|
||||
gdm_slave_quick_exit (DISPLAY_REMANAGE);
|
||||
} else if (d->use_chooser) {
|
||||
/* this usually doesn't return */
|
||||
+ gdm_debug ("gdm_slave_run: running chooser");
|
||||
gdm_slave_chooser (); /* Run the chooser */
|
||||
return;
|
||||
} else if (d->type == TYPE_STATIC &&
|
||||
@@ -1511,6 +1551,7 @@
|
||||
strcmp (ParsedAutomaticLogin, gdm_root_user ()) != 0) {
|
||||
gdm_first_login = FALSE;
|
||||
|
||||
+ gdm_debug ("gdm_slave_run: starting automatic login");
|
||||
d->logged_in = TRUE;
|
||||
gdm_slave_send_num (GDM_SOP_LOGGED_IN, TRUE);
|
||||
gdm_slave_send_string (GDM_SOP_LOGIN, ParsedAutomaticLogin);
|
||||
@@ -1540,9 +1581,12 @@
|
||||
gdm_first_login = FALSE;
|
||||
|
||||
do {
|
||||
+
|
||||
+ gdm_debug ("gdm_slave_run: checking notifies");
|
||||
check_notifies_now ();
|
||||
|
||||
if ( ! greet) {
|
||||
+ gdm_debug ("gdm_slave_run: starting greeter");
|
||||
gdm_slave_greeter (); /* Start the greeter */
|
||||
greeter_no_focus = FALSE;
|
||||
greeter_disabled = FALSE;
|
9
gdm.spec
9
gdm.spec
@ -16,7 +16,7 @@
|
||||
Summary: The GNOME Display Manager
|
||||
Name: gdm
|
||||
Version: 2.18.0
|
||||
Release: 10%{?dist}
|
||||
Release: 11%{?dist}
|
||||
Epoch: 1
|
||||
License: LGPL/GPL
|
||||
Group: User Interface/X
|
||||
@ -75,6 +75,9 @@ Patch35: gdm-2.18.0-dont-strcpy-overlapping-strings.patch
|
||||
# http://bugzilla.gnome.org/show_bug.cgi?id=426647
|
||||
Patch36: gdm-2.18.0-dont-expect-utf8.patch
|
||||
|
||||
# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=234567
|
||||
Patch99: gdm-2.18.0-be-more-verbose.patch
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
Prereq: /usr/sbin/useradd
|
||||
@ -162,6 +165,7 @@ Extra icons / faces for the GNOME Display Manager.
|
||||
%patch34 -p1 -b .add-lowres-fix
|
||||
%patch35 -p1 -b .dont-strcpy-overlapping-strings
|
||||
%patch36 -p1 -b .dont-expect-utf8
|
||||
%patch99 -p1 -b .be-more-verbose
|
||||
|
||||
%build
|
||||
cp -f %{SOURCE1} config/gdm
|
||||
@ -384,6 +388,9 @@ fi
|
||||
%{_datadir}/pixmaps/faces/extras/*.jpg
|
||||
|
||||
%changelog
|
||||
* Tue Apr 17 2007 Ray Strode <rstrode@redhat.com> - 1:2.18.0-11
|
||||
- Be more verbose to help isolate the problem in bug 234567
|
||||
|
||||
* Thu Apr 12 2007 Ray Strode <rstrode@redhat.com> - 1:2.18.0-10
|
||||
- add "Default" session back to the sessions menu (bug 234218)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user