suspend works from command line, but not via GNOME menu

Bug #128543 reported by Dan Lenski
6
Affects Status Importance Assigned to Milestone
xorg (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Distro: Ubuntu Feisty (x86_64)
Hardware: Athlon 64 X2 processor, Radeon Xpress 200 integrated graphics, ECS RS485M-M motherboard
Using the open-source "radeon" Xorg driver:

01:05.0 VGA compatible controller: ATI Technologies Inc RS482 [Radeon Xpress 200] (prog-if 00 [VGA])
        Subsystem: Elitegroup Computer Systems Unknown device 2140
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 5
        Memory at f8000000 (32-bit, prefetchable) [size=64M]
        I/O ports at ee00 [size=256]
        Memory at fdef0000 (32-bit, non-prefetchable) [size=64K]
        [virtual] Expansion ROM at fde00000 [disabled] [size=128K]
        Capabilities: [50] Power Management version 2

I have recently gotten suspend to work on my desktop computer, via acpi-support, by setting a few parameters in /etc/default/acpi-support appropriately (and by a slight modification to the /etc/acpi/suspend.d/80-video-vesa-state.sh script, see this bug: https://bugs.launchpad.net/ubuntu/+source/acpi-support/+bug/128323).

If I invoke /etc/acpi/sleep.sh directly via the command line, the computer goes into suspend mode, and when I press the power button it comes back up completely correctly. The X server log reports the following:

(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00000006 0x00000062 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=98, pd=0
(**) RADEON(0): GRPH_BUFFER_CNTL from 20004c4c to 20407c7c
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): RADEONSaveScreen(2)
(II) Configured Mouse: ps2EnableDataReporting: succeeded
(**) RADEON(0): RADEONLeaveVT # here's the point where I suspend and restore
(**) RADEON(0): RADEONRestore
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x7de498)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x3fff3e00
(**) RADEON(0): MC_AGP_LOCATION : 0x003f0000
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00180006 0x0003005f 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=95, pd=3
(**) RADEON(0): Ok, leaving now...
(II) Open ACPI successful (/var/run/acpid.socket)
(**) RADEON(0): RADEONEnterVT
(**) RADEON(0): RADEONModeInit()
1920x1440 234.00 1920 2048 2256 2600 1440 1441 1444 1500 (24,32) -H +V
1920x1440 234.00 1920 2048 2256 2600 1440 1441 1444 1500 (24,32) -H +V
(**) RADEON(0): Pitch = 15728880 bytes (virtualX = 1920, displayWidth = 1920)
(**) RADEON(0): dc=23400, of=23400, fd=98, pd=1
(**) RADEON(0): RADEONInit returns 0x7dee48
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x7dee48)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x3fff3e00
(**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00000006 0x00000062 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=98, pd=0
(**) RADEON(0): GRPH_BUFFER_CNTL from 20004c4c to 20407c7c
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): RADEONSaveScreen(2)
(II) Configured Mouse: ps2EnableDataReporting: succeeded
(**) RADEON(0): RADEONLeaveVT
(**) RADEON(0): RADEONRestore
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x7de498)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x3fff3e00
(**) RADEON(0): MC_AGP_LOCATION : 0x003f0000
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00180006 0x0003005f 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=95, pd=3
(**) RADEON(0): Ok, leaving now...
(II) Open ACPI successful (/var/run/acpid.socket)
(**) RADEON(0): RADEONEnterVT
(**) RADEON(0): RADEONModeInit()
1920x1440 234.00 1920 2048 2256 2600 1440 1441 1444 1500 (24,32) -H +V
1920x1440 234.00 1920 2048 2256 2600 1440 1441 1444 1500 (24,32) -H +V
(**) RADEON(0): Pitch = 15728880 bytes (virtualX = 1920, displayWidth = 1920)
(**) RADEON(0): dc=23400, of=23400, fd=98, pd=1
(**) RADEON(0): RADEONInit returns 0x7dee48
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x7dee48)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x3fff3e00
(**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00000006 0x00000062 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=98, pd=0
(**) RADEON(0): GRPH_BUFFER_CNTL from 20004c4c to 20407c7c
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): RADEONSaveScreen(2)
(II) Configured Mouse: ps2EnableDataReporting: succeeded
(II) 3rd Button detected: disabling emulate3Button

However, if I choose the "Suspend" option from GNOME's System | Quit menu, the suspend and restore *does not* work correctly: the X server crashes after restoring, so I lose my GNOME session and must log back in. As I understand it, GNOME invokes the suspend function via HAL, which runs the script /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux. This script in turn invokes /etc/acpi/sleep.sh (since I do not have powersave, pm-suspend, or hibernate installed).

When I invoke Suspend via the menu, and restore, the X server crashes and GDM immediately restarts it from the login screen. I get the following in the Xorg log:

(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00000006 0x00000062 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=98, pd=0
(**) RADEON(0): GRPH_BUFFER_CNTL from 20004c4c to 20407c7c
(**) RADEON(0): RADEONSaveScreen(0)
(**) RADEON(0): Setting up initial surfaces
(**) RADEON(0): Initializing fb layer
(**) RADEON(0): Setting up accel memmap
(**) RADEON(0): Initializing backing store
(**) RADEON(0): Setting up final surfaces
(**) RADEON(0): Initializing Acceleration
(**) RADEON(0): EngineInit (32/32)
(**) RADEON(0): Pitch for acceleration = 240
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): Initializing DPMS
(**) RADEON(0): Initializing Cursor
(**) RADEON(0): Initializing color map
(**) RADEON(0): Initializing DGA
(**) RADEON(0): Initializing Xv
(**) RADEON(0): RADEONScreenInit finished
(EE) AIGLX: Screen 0 is not DRI capable
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning: Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
> Ignoring extra symbols
Errors from xkbcomp are not fatal to the X server
(EE) xf86OpenSerial: Cannot open device /dev/input/wacom
        No such file or directory.
Error opening /dev/input/wacom : Success
(EE) xf86OpenSerial: Cannot open device /dev/input/wacom
        No such file or directory.
Error opening /dev/input/wacom : Success
(EE) xf86OpenSerial: Cannot open device /dev/input/wacom
        No such file or directory.
Error opening /dev/input/wacom : Success
Could not init font path element /usr/X11R6/lib/X11/fonts/misc, removing from list!
Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Type1, removing from list!
(**) RADEON(0): RADEONSaveScreen(2)
AUDIT: Thu Jul 26 10:52:35 2007: 21896 X: client 2 rejected from local host (uid 1000)
AUDIT: Thu Jul 26 10:52:35 2007: 21896 X: client 3 rejected from local host (uid 1000)
(**) RADEON(0): RADEONLeaveVT
(**) RADEON(0): RADEONRestore
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x7de498)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x3fff3e00
(**) RADEON(0): MC_AGP_LOCATION : 0x003f0000
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00180006 0x0003005f 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=95, pd=3
(**) RADEON(0): Ok, leaving now...
(**) RADEON(0): RADEONEnterVT
(**) RADEON(0): RADEONModeInit()
1920x1440 234.00 1920 2048 2256 2600 1440 1441 1444 1500 (24,32) -H +V
1920x1440 234.00 1920 2048 2256 2600 1440 1441 1444 1500 (24,32) -H +V
(**) RADEON(0): Pitch = 15728880 bytes (virtualX = 1920, displayWidth = 1920)
(**) RADEON(0): dc=23400, of=23400, fd=98, pd=1
(**) RADEON(0): RADEONInit returns 0x7dee48
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x7dee48)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x3fff3e00
(**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00000006 0x00000062 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=98, pd=0
(**) RADEON(0): GRPH_BUFFER_CNTL from 20004c4c to 20407c7c
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): RADEONSaveScreen(2)
SetGrabKeysState - disabled
(**) RADEON(0): RADEONLeaveVT
(**) RADEON(0): RADEONRestore
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x7de498)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x3fff3e00
(**) RADEON(0): MC_AGP_LOCATION : 0x003f0000
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00180006 0x0003005f 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=95, pd=3
(**) RADEON(0): Ok, leaving now...
(**) RADEON(0): RADEONEnterVT
(**) RADEON(0): RADEONModeInit()
1920x1440 234.00 1920 2048 2256 2600 1440 1441 1444 1500 (24,32) -H +V
1920x1440 234.00 1920 2048 2256 2600 1440 1441 1444 1500 (24,32) -H +V
(**) RADEON(0): Pitch = 15728880 bytes (virtualX = 1920, displayWidth = 1920)
(**) RADEON(0): dc=23400, of=23400, fd=98, pd=1
(**) RADEON(0): RADEONInit returns 0x7dee48
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x7dee48)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x3fff3e00
(**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00000006 0x00000062 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=98, pd=0
(**) RADEON(0): GRPH_BUFFER_CNTL from 20004c4c to 20407c7c
(**) RADEON(0): EngineRestore (32/32)
(**) RADEON(0): RADEONSaveScreen(2)
SetGrabKeysState - disabled
(**) RADEON(0): RADEONLeaveVT
(**) RADEON(0): RADEONRestore
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x7de498)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x3fff3e00
(**) RADEON(0): MC_AGP_LOCATION : 0x003f0000
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00180006 0x0003005f 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=95, pd=3
(**) RADEON(0): Ok, leaving now...
(**) RADEON(0): RADEONEnterVT
(**) RADEON(0): RADEONModeInit()
1920x1440 234.00 1920 2048 2256 2600 1440 1441 1444 1500 (24,32) -H +V
1920x1440 234.00 1920 2048 2256 2600 1440 1441 1444 1500 (24,32) -H +V
(**) RADEON(0): Pitch = 15728880 bytes (virtualX = 1920, displayWidth = 1920)
(**) RADEON(0): dc=23400, of=23400, fd=98, pd=1
(**) RADEON(0): RADEONInit returns 0x7dee48
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x7dee48)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x3fff3e00
(**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00000006 0x00000062 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=98, pd=0
(**) RADEON(0): GRPH_BUFFER_CNTL from 20004c4c to 20407c7c
(**) RADEON(0): EngineRestore (32/32)

Backtrace:
0: /usr/X11R6/bin/X(xf86SigHandler+0x6d) [0x48282d]
1: /lib/libc.so.6 [0x2b2c98f3bd40]
2: /usr/lib/xorg/modules/extensions//libGLcore.so(xmesa_check_and_update_buffer_size+0xc) [0x2b2c9e6ba63c]
3: /usr/lib/xorg/modules/extensions//libGLcore.so [0x2b2c9e6b9b3d]
4: /usr/lib/xorg/modules/extensions//libglx.so [0x2b2c9a620d6b]
5: /usr/X11R6/bin/X(ResizeChildrenWinSize+0x168) [0x43cdb8]
6: /usr/X11R6/bin/X [0x48dfea]
7: /usr/lib/xorg/modules//libxaa.so [0x2b2c9c0e460d]
8: /usr/lib/xorg/modules//libramdac.so [0x2b2c9bed5642]
9: /usr/X11R6/bin/X(xf86Wakeup+0x431) [0x483ce1]
10: /usr/X11R6/bin/X(WakeupHandler+0x51) [0x4519c1]
11: /usr/X11R6/bin/X(WaitForSomething+0x1d4) [0x550f44]
12: /usr/X11R6/bin/X(Dispatch+0x8b) [0x44de0b]
13: /usr/X11R6/bin/X(main+0x45d) [0x43703d]
14: /lib/libc.so.6(__libc_start_main+0xf4) [0x2b2c98f288e4]
15: /usr/X11R6/bin/X(FontFileCompleteXLFD+0x241) [0x436339]

Fatal server error:
Caught signal 11. Server aborting

(**) RADEON(0): RADEONLeaveVT
(**) RADEON(0): RADEONRestore
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x7de498)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0x3fff3e00
(**) RADEON(0): MC_AGP_LOCATION : 0x003f0000
(**) RADEON(0): Map Changed ! Applying ...
(**) RADEON(0): Map applied, resetting engine ...
(**) RADEON(0): Updating display base addresses...
(**) RADEON(0): Memory map updated.
(**) RADEON(0): Programming CRTC1, offset: 0x00000000
(**) RADEON(0): Wrote: 0x00180006 0x0003005f 0x00000000 (0x0000a400)
(**) RADEON(0): Wrote: rd=6, fd=95, pd=3
(**) RADEON(0): Ok, leaving now...

Apparently, there's some kind of fault in the X font routines here.

What I don't understand: how can suspend work fine when invoking /etc/acpi/sleep.sh directly, but crash when GNOME calls the same script? What is GNOME doing differently?

Revision history for this message
Pedro Villavicencio (pedro) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. You reported this bug a while ago and there hasn't been any activity in it recently. We were wondering is this still an issue for you? Thanks in advance.

Changed in xorg:
status: New → Incomplete
Revision history for this message
Pedro Villavicencio (pedro) wrote :

We are closing this bug report because it lacks the information we need to investigate the problem, as described in the previous comments. Please reopen it if you can give us the missing information, and don't hesitate to submit bug reports in the future. To reopen the bug report you can click on the current status, under the Status column, and change the Status back to "New". Thanks again!.

Changed in xorg:
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.