[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#582469: kopete: statistics plugin makes kopete freeze at startup



Package: kopete
Version: 4:4.4.3-2

Hi,

Kopete freezes (some sort of infinite loop in one of the sub-processes it
seems) during startup making it consume all the CPU resources of one
core if the statistics plugin is enabled.

The strace goes like this:

stat64(".../.kde/share/apps/kopete/kopete_statistics-0.1.db", 
{st_mode=S_IFREG|0644, st_size=14167040, ...}) = 0
open(".../.kde/share/apps/kopete/kopete_statistics-0.1.db", O_RDWR|O_CREAT|
O_LARGEFILE, 0644) = 13
fcntl64(13, F_GETFD)              = 0
fcntl64(13, F_SETFD, FD_CLOEXEC)  = 0
fstat64(13, {st_mode=S_IFREG|0644, st_size=14167040, ...}) = 0
dup(13)                           = 14
fcntl64(13, F_SETLK64, {type=F_RDLCK, whence=SEEK_SET, start=0, len=1}, 
0xbffb9e40) = 0
mmap2(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|
MAP_STACK, -1, 0) = 0xb07e7000
mprotect(0xb07e7000, 4096, PROT_NONE) = 0
clone(child_stack=0xb0fe7454, flags=CLONE_VM|CLONE_FS|CLONE_FILES|
CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|
CLONE_PARENT_SET
TID|CLONE_CHILD_CLEARTID, parent_tidptr=0xb0fe7bd8, {entry_number:6, 
base_addr:0xb0fe7b70, limit:1048575, seg_32bit:1, contents:0, read_exec_o
nly:0, limit_in_pages:1, seg_not_present:0, useable:1}, 
child_tidptr=0xb0fe7bd8) = 13742
futex(0xb0fe7bd8, FUTEX_WAIT, 13742, NULL <unfinished ...>
13742 set_robust_list(0xb0fe7be0, 0xc)  = 0
13742 fcntl64(14, F_GETLK64, {type=F_UNLCK, whence=SEEK_SET, start=0, len=1, 
pid=0}) = 0
13742 _exit(0)                          = ?
<... futex resumed> )             = 0
close(14)                         = 0
_llseek(13, 0, [0], SEEK_SET)     = 0
read(13, "SQLite format 3\0\4\0\1\1\0@  \0\3\221\260\0\0\0\0"..., 100) = 100
times({tms_utime=414, tms_stime=32, tms_cutime=0, tms_cstime=0}) = 1719009302
fcntl64(13, F_SETLK64, {type=F_RDLCK, whence=SEEK_SET, start=1073741824, 
len=1}, 0xbffb99f8) = 0
fcntl64(13, F_SETLK64, {type=F_RDLCK, whence=SEEK_SET, start=1073741826, 
len=510}, 0xbffb99f8) = 0
fcntl64(13, F_SETLK64, {type=F_UNLCK, whence=SEEK_SET, start=1073741824, 
len=1}, 0xbffb99f8) = 0
access(".../.kde/share/apps/kopete/kopete_statistics-0.1.db-journal", F_OK) = 
-1 ENOENT (No such file or directory)
fstat64(13, {st_mode=S_IFREG|0644, st_size=14167040, ...}) = 0
_llseek(13, 0, [0], SEEK_SET)     = 0
read(13, "SQLite format 3\0\4\0\1\1\0@  \0\3\221\260\0\0\0\0"..., 1024) = 1024
fcntl64(13, F_SETLK64, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}, 
0xbffb9488) = 0
fcntl64(13, F_SETLK64, {type=F_RDLCK, whence=SEEK_SET, start=1073741824, 
len=1}, 0xbffb9a98) = 0
fcntl64(13, F_SETLK64, {type=F_RDLCK, whence=SEEK_SET, start=1073741826, 
len=510}, 0xbffb9a98) = 0
fcntl64(13, F_SETLK64, {type=F_UNLCK, whence=SEEK_SET, start=1073741824, 
len=1}, 0xbffb9a98) = 0
access(".../.kde/share/apps/kopete/kopete_statistics-0.1.db-journal", F_OK) = 
-1 ENOENT (No such file or directory)
fstat64(13, {st_mode=S_IFREG|0644, st_size=14167040, ...}) = 0
_llseek(13, 24, [24], SEEK_SET)   = 0
read(13, "\0\3\221\260\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 16
fcntl64(13, F_SETLK64, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}, 
0xbffb9af8) = 0
gettimeofday({1274147326, 241579}, NULL) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1604, ...}) = 0
times({tms_utime=414, tms_stime=32, tms_cutime=0, tms_cstime=0}) = 1719009302
fcntl64(13, F_SETLK64, {type=F_RDLCK, whence=SEEK_SET, start=1073741824, 
len=1}, 0xbffb9918) = 0
fcntl64(13, F_SETLK64, {type=F_RDLCK, whence=SEEK_SET, start=1073741826, 
len=510}, 0xbffb9918) = 0
fcntl64(13, F_SETLK64, {type=F_UNLCK, whence=SEEK_SET, start=1073741824, 
len=1}, 0xbffb9918) = 0
access(".../.kde/share/apps/kopete/kopete_statistics-0.1.db-journal", F_OK) = 
-1 ENOENT (No such file or directory)
fstat64(13, {st_mode=S_IFREG|0644, st_size=14167040, ...}) = 0
_llseek(13, 24, [24], SEEK_SET)   = 0
read(13, "\0\3\221\260\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 16
_llseek(13, 3072, [3072], SEEK_SET) = 0
read(13, ..., 1024) = 1024

And then it starts read(2)ing and _llseek(2)ing over and over again (the
offsets passed to _llseek(2) _do_ change from call to call).

I've removed the pid from the lines of the same process to make it a bit
more readable (same goes to the path.)

Removing the existing database doesn't help.

The only workaround is disabling the plugin by editing the config file
with an editor because the main window never comes up.

Cheers,
-- 
Raphael Geissert - Debian Developer
www.debian.org - get.debian.net



Reply to: