Version: 1.2.0 (using KDE 3.4.0, compiled sources) Compiler: gcc version 3.3.5 OS: Linux (i686) release 2.6.10 I used ksysguard till KDE 3.3.x and I've got no problem on my Centrino Laptop with kernel 2.6.10, but now with KDE 3.4.x when I start up ksysguard to see the ProcessTable a window opens and say me: "localhost connection lost". I see also the bug 53674 and this is not a duplicate because the #53674 bug was referead to KDE 2.2 in date 2003-01-30 and from KDE 2.2 to KDE 3.4 there was something like 2 years. With kernel 2.4.29 I haven't this bug, all works. And with my desktop PC with KDE 3.4 I haven't this bug. The problem is with my Centrino laptop after KDE 3.4. At least into 3_4_BRANCH of about 2 weeks ago. I tryed to execute ksysguard from Konsole bug I get no output in line and the "nofork" option is not available for ksysguard.
On Fri, May 06, 2005 at 10:34:16AM -0000, Giovanni Venturi wrote: > I used ksysguard till KDE 3.3.x and I've got no problem on my Centrino Laptop > with kernel 2.6.10, but now with KDE 3.4.x when I start up ksysguard to see > the ProcessTable a window opens and say me: "localhost connection lost". What happens when you type ksysguardd (pay attention to the double 'd') into a konsole window? Ciao, Tobias
ksysguardd 1.2.0 (c) 1999, 2000, 2001, 2002 Chris Schlaeger <cs@kde.org> and (c) 2001 Tobias Koenig <tokoe@kde.org> This program is part of the KDE Project and licensed under the GNU GPL version 2. See http://www.kde.org for details. Segmentation fault Ciao, Giovanni
On Fri, May 06, 2005 at 01:41:40PM -0000, Giovanni Venturi wrote: Hi, > Segmentation fault ^^^ That's interesting... Could you start the following command please: gdb ksysguardd then type 'run' at the appearing prompt, wait until the segfault appears and call 'bt' then? Ciao, Tobias
gdb ksysguardd 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 "i486-slackware-linux"...Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /opt/kde34/bin/ksysguardd ksysguardd 1.2.0 (c) 1999, 2000, 2001, 2002 Chris Schlaeger <cs@kde.org> and (c) 2001 Tobias Koenig <tokoe@kde.org> This program is part of the KDE Project and licensed under the GNU GPL version 2. See http://www.kde.org for details. Program received signal SIGSEGV, Segmentation fault. 0x4008c795 in strncpy () from /lib/libc.so.6 (gdb) bt #0 0x4008c795 in strncpy () from /lib/libc.so.6 #1 0x080514c6 in initAcpi () #2 0x0804adf0 in initModules () #3 0x0804aea0 in main () (gdb) Ciao, Giovanni
On Tue, May 10, 2005 at 08:32:16AM -0000, Giovanni Venturi wrote: Hi Giovanni, > Program received signal SIGSEGV, Segmentation fault. > 0x4008c795 in strncpy () from /lib/libc.so.6 > (gdb) bt > #0 0x4008c795 in strncpy () from /lib/libc.so.6 > #1 0x080514c6 in initAcpi () > #2 0x0804adf0 in initModules () > #3 0x0804aea0 in main () > (gdb) Hmm, what does the directory /proc/acpi/battery/ look like on your system? Ciao, Tobias
On my system: ls -R /proc/acpi/battery/ /proc/acpi/battery/: C11F /proc/acpi/battery/C11F: alarm info state Ciao, Giovanni
On Tue, May 10, 2005 at 02:50:18PM -0000, Giovanni Venturi wrote: Hi Giovanni, > ls -R /proc/acpi/battery/ > /proc/acpi/battery/: > C11F ^^^ that looks really, really strange... which distribution/kernel do you use? Ciao, Tobias
Hello Tobias, > > > ls -R /proc/acpi/battery/ > > /proc/acpi/battery/: > > C11F > > ^^^ that looks really, really strange... which distribution/kernel do you > use? > I use Slackware-current, but I compile the kernel on my own and I use kernel vanilla. The problem is still there with 2.6.12-rc4, but now I use 2.6.10 because alsa driver with the lastest kernel wants alsa-utils 1.0.9rc4 and I'm waiting the Slackware mantainer update that packets. Ciao, Giovanni
Can be this bug fixed? Can I help you Tobias in some way? Ciao, Giovanni
Hi Giovanni, the patch that should fix your problem was applyed on Fri Apr 8 17:13:58 2005 UTC. Could you test KDE from CVS HEAD? Ciao, Tobias ___________________________________________________________ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de
Well, could be a problem. If you can tell me what changed I can change it into my local branch and try, so if all ok we can close this bug. Ciao, Giovanni
On Tue, May 24, 2005 at 11:23:09AM -0000, Giovanni Venturi wrote: Hi Giovanni, > Well, could be a problem. If you can tell me what changed I can change it into > my local branch and try, so if all ok we can close this bug. See http://websvn.kde.org/trunk/kdebase/ksysguard/ksysguardd/Linux/acpi.c?rev=404102&r1=357909&r2=404102 for the change, you can ignore all the AcpiThermalZones stuff. Ciao, Tobias
Well at the end I compiled HEAD :) and it works. So I take a look at the link you send me and I produced the attached patch following your code (kdebase/ksysguard/ksysguardd/Linux/acpi.c). Look at that, compile it on your system I'm going to compile it on my Desktop system next days. For the laptop is ok, and also for the Desktop. If it's ok for you too tell me. Or you or me can commit for kde 3.4.2 and close this bug. Well, better if you do this because the fix is a your work. Ciao, Gianni Created an attachment (id=11203) acpi.c.diff
The patch doesn't work for you?
Tobias I'd like to see close this bug... I'd like to commit the patch for KDE 3.4.2, but you are the manteiner and jsut you can say if I can or not commit. Let me know, Giovanni
On Fri, Jun 17, 2005 at 09:57:30PM -0000, Giovanni Venturi wrote: > Tobias Hi Giovanni, > I'd like to see close this bug... I'd like to commit the patch for KDE > 3.4.2, but you are the manteiner and jsut you can say if I can or not commit. I've currently no KDE 3.4 checked out for testing, so I'll just trust you that the code works, please commit. Ciao, Tobias
SVN commit 428125 by gianni: This fix the bug #105182 with the merged code from the trunk by Tobias I hope no problem BUG:105182 M +41 -32 acpi.c [POSSIBLY UNSAFE: scanf] --- branches/KDE/3.4/kdebase/ksysguard/ksysguardd/Linux/acpi.c #428124:428125 @@ -1,6 +1,6 @@ /* KSysGuard, the KDE System Guard - + Copyright (c) 2003 Stephan Uhlmann <su@su2.info> This program is free software; you can redistribute it and/or @@ -35,7 +35,6 @@ #define ACPIBATTERYINFOBUFSIZE 1024 #define ACPIBATTERYSTATEBUFSIZE 512 -static int AcpiBatteryOK = 0; static int AcpiBatteryNum = 0; static char AcpiBatteryNames[ ACPIBATTERYNUMMAX ][ 8 ]; static int AcpiBatteryCharge[ ACPIBATTERYNUMMAX ]; @@ -48,40 +47,52 @@ void initAcpi( struct SensorModul* sm ) { - int BatteryDirNummer; + initAcpiBattery(sm); +} + +int updateAcpi( void ) +{ + if (AcpiBatteryNum > 0) { + updateAcpiBattery(); + } + + return 0; +} + +void exitAcpi( void ) +{ + AcpiBatteryNum = -1; +} + + +/************ ACPI Battery **********/ + +void initAcpiBattery( struct SensorModul* sm ) +{ DIR *d; struct dirent *de; char s[ ACPIFILENAMELENGTHMAX ]; if ( ( d = opendir( "/proc/acpi/battery" ) ) == NULL ) { - print_error( "Directory \'/proc/acpi/battery\' does not exist or is not readable.\n" - "Load the battery ACPI kernel module or compile it into your kernel.\n" ); - AcpiBatteryOK = -1; + AcpiBatteryNum = -1; return; } else { + AcpiBatteryNum = 0; while ( ( de = readdir( d ) ) ) if ( ( strcmp( de->d_name, "." ) != 0 ) && ( strcmp( de->d_name, ".." ) != 0 ) ) { - sscanf(de->d_name,"BAT%d",&BatteryDirNummer); - strncpy( AcpiBatteryNames[ BatteryDirNummer ], de->d_name, 8 ); - snprintf( s, sizeof( s ), "acpi/battery/%d/batterycharge", AcpiBatteryNum ); - registerMonitor( s, "integer", printAcpiBatFill, printAcpiBatFillInfo, sm ); - snprintf( s, sizeof( s ), "acpi/battery/%d/batteryusage", AcpiBatteryNum ); - registerMonitor( s, "integer", printAcpiBatUsage, printAcpiBatUsageInfo, sm); - AcpiBatteryCharge[ BatteryDirNummer ] = 0; - AcpiBatteryNum++; + strncpy( AcpiBatteryNames[ AcpiBatteryNum ], de->d_name, 8 ); + snprintf( s, sizeof( s ), "acpi/battery/%d/batterycharge", AcpiBatteryNum ); + registerMonitor( s, "integer", printAcpiBatFill, printAcpiBatFillInfo, sm ); + snprintf( s, sizeof( s ), "acpi/battery/%d/batteryusage", AcpiBatteryNum ); + registerMonitor( s, "integer", printAcpiBatUsage, printAcpiBatUsageInfo, sm); + AcpiBatteryCharge[ AcpiBatteryNum ] = 0; + AcpiBatteryNum++; } - - AcpiBatteryOK = 1; } } -void exitAcpi( void ) +int updateAcpiBattery( void ) { - AcpiBatteryOK = -1; -} - -int updateAcpi( void ) -{ int i, fd; char s[ ACPIFILENAMELENGTHMAX ]; size_t n; @@ -90,8 +101,8 @@ char *p; int AcpiBatCapacity = 1; int AcpiBatRemainingCapacity = 0; - - if ( AcpiBatteryOK < 0 ) + + if ( AcpiBatteryNum <= 0 ) return -1; for ( i = 0; i < AcpiBatteryNum; i++ ) { @@ -139,7 +150,7 @@ if ( p ) p++; } - + /* get current battery usage, (current Current) */ p = AcpiBatStateBuf; while ( ( p!= NULL ) && ( sscanf( p, "present rate: %d ", @@ -147,18 +158,16 @@ p = strchr( p, '\n' ); if ( p ) p++; - } - - + } + + /* calculate charge rate */ if ( AcpiBatCapacity > 0 ) AcpiBatteryCharge[ i ] = AcpiBatRemainingCapacity * 100 / AcpiBatCapacity; else AcpiBatteryCharge[ i ] = 0; - - - } + } return 0; } @@ -182,7 +191,7 @@ void printAcpiBatUsage( const char* cmd) { int i; - + sscanf( cmd + 13, "%d", &i ); fprintf(CurrentClient, "%d\n", AcpiBatteryUsage[ i ] ); }
Giovanni, please fix acpi.h too.
SVN commit 429089 by gianni: I forgot to change this CCBUG: 105182 M +3 -0 acpi.h --- branches/KDE/3.4/kdebase/ksysguard/ksysguardd/Linux/acpi.h #429088:429089 @@ -24,7 +24,10 @@ void exitAcpi( void ); int updateAcpi( void ); +int updateAcpiBattery( void ); +void initAcpiBattery( struct SensorModul* sm ); + void printAcpiBatFill( const char* ); void printAcpiBatFillInfo( const char* ); void printAcpiBatUsage( const char* );