Bug 103944

Summary: powersaved crashing on x86-64
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Andreas Klein <asklein>
Component: OtherAssignee: Thomas Renninger <trenn>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: vetter
Version: Beta 1   
Target Milestone: ---   
Hardware: x86-64   
OS: All   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Andreas Klein 2005-08-10 19:16:20 UTC
powersaved is crashing on x86-64 after a while.
wpyc042:~ # /etc/init.d/powersaved start
Starting powersaved  (accessing ACPI events over acpid)              done
wpyc042:~ # /etc/init.d/powersaved status
Checking for service powersaved                                      running
wpyc042:~ # sleep 3600; /etc/init.d/powersaved status
Checking for service powersaved                                      dead

The only entries in /var/log/messages are:

Aug 10 20:11:50 linux kernel: powernow-k8: Found 1 AMD Athlon 64 / Opteron proce
ssors (version 1.50.3)
Aug 10 20:11:50 linux kernel: powernow-k8: BIOS error - no PSB or ACPI _PSS obje
cts
Aug 10 20:11:50 linux rcpowersaved: CPU frequency scaling is not supported by yo
ur processor.
Aug 10 20:11:50 linux rcpowersaved: enter 'CPUFREQD_MODULE=off' in /etc/sysconfi
g/powersave/cpufreq to avoid this warning.
Aug 10 20:11:50 linux rcpowersaved: Cannot load cpufreq governors - No cpufreq d
river available
Aug 10 20:11:50 linux [powersave][6233]: ERROR in Function PM_Interface; line 24
1: Cannot create cpufreq objects
Aug 10 20:11:51 linux [powersave][6233]: WARNING in Function filter_function; li
ne 250: Received message from invalid interface
Aug 10 20:11:51 linux [powersave][6233]: WARNING in Function filter_function; li
ne 250: Received message from invalid interface
Comment 1 Thomas Renninger 2005-08-11 06:40:57 UTC
Does this always happen, or have you played with other services?
Hal, DBus, acpid (if an APCI machine) should be running.
Still, it should not behave like that of course, even services are not running.

Can you also install the powersave-debug.rpm, please.
Then run:
su -
gdb powersaved
run -v7 -f /var/run/acpid.socket

If the program segfaults, please type "bt" and send output.

If not, increase debug output of powersaved in /etc/sysconfig/powersave/common
DEBUG="15" or even DEBUG="31"
then:
rcpowersaved restart
and send syslog output (if it still does not start), maybe I can find the bad
lines from that.

Thanks.
Comment 2 Andreas Vetter 2005-08-12 09:46:32 UTC
wpyc022:~ # gdb powersaved 
GNU gdb 6.3 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB.  Type "show warranty" for details. 
This GDB was configured as "x86_64-suse-linux"...Using host libthread_db 
library "/lib64/tls/libthread_db.so.1". 
 
(gdb) run -v7 -f /var/run/acpid.socket 
Starting program: /usr/sbin/powersaved -v7 -f /var/run/acpid.socket 
Eventfile: /var/run/acpid.socket 
*** glibc detected *** free(): invalid pointer: 0x000000000054cd94 *** 
 
Program received signal SIGABRT, Aborted. 
0x00002aaaab8bc3ca in raise () from /lib64/tls/libc.so.6 
(gdb) bt 
#0  0x00002aaaab8bc3ca in raise () from /lib64/tls/libc.so.6 
#1  0x00002aaaab8bd800 in abort () from /lib64/tls/libc.so.6 
#2  0x00002aaaab8f1fde in __libc_message () from /lib64/tls/libc.so.6 
#3  0x00002aaaab8f737c in malloc_printerr () from /lib64/tls/libc.so.6 
#4  0x00002aaaab8f7e0c in free () from /lib64/tls/libc.so.6 
#5  0x0000000000429c0c in clientConnection::checkClientRemoval (this=0x54ae80, 
name=0x54cfb0 ":1.72") at clientConnection.cpp:68 
#6  0x000000000042d4a7 in DBus_Server::filter_function (conn=<value optimized 
out>, msg=0x54ab90, data=<value optimized out>) at dbus_server.cpp:342 
#7  0x00002aaaab0eb9ee in dbus_connection_dispatch () 
from /usr/lib64/libdbus-1.so.1 
#8  0x000000000042c4dc in DBus_Server::handleRequest () at dbus_server.cpp:407 
#9  0x00000000004201a7 in PM_Interface::start (this=0x5495d0) at 
powersaved.cpp:459 
#10 0x0000000000422960 in main (argc=4, argv=0x7fffff9d2768) at 
powersaved.cpp:1325 
#11 0x00002aaaab8aa55a in __libc_start_main () from /lib64/tls/libc.so.6 
#12 0x000000000040541a in _start () at start.S:113 
#13 0x00007fffff9d2758 in ?? () 
#14 0x00002aaaaabc19c0 in rtld_errno () from /lib64/ld-linux-x86-64.so.2 
#15 0x0000000000000004 in ?? () 
#16 0x00007fffff9d439b in ?? () 
#17 0x00007fffff9d43b0 in ?? () 
#18 0x00007fffff9d43b4 in ?? () 
#19 0x00007fffff9d43b7 in ?? () 
#20 0x0000000000000000 in ?? () 
#21 0x00007fffff9d43cd in ?? () 
#22 0x00007fffff9d43e6 in ?? () 
---Type <return> to continue, or q <return> to quit--- 
 
Comment 3 Andreas Vetter 2005-08-12 09:52:59 UTC
How to reproduce: 
Start powersaved on a x86_64 machine 
Log into that machine as user (can be ssh session) 
Start kpowersave, if not already running 
Quit kpowersave and powersved crashes 
 
This procedure does not work on i386. 
Comment 4 Thomas Renninger 2005-08-12 10:07:51 UTC
Thanks for the very detailed bug report.
I'll have a look into this (sorry, not enough time before weekend) and come back
to you.
Comment 5 Thomas Renninger 2005-09-01 10:34:49 UTC
This should be fixed. Could you please retest with a new package (best is from
Beta4). Tell me if you need a separate package if it's not accessable via
OpenSUSE  and I will put one on our ftp server, so you don't have to reinstall
all (in Yast software it should also be possible to refresh/update the
installation source, then update system should bring your Beta1 to Beta3/4.
Thanks.
Comment 6 Andreas Klein 2005-09-04 15:20:22 UTC
Yes, it works fine with beta4.