Bug 191492

Summary: digikam hangs on startup "reading database"
Product: [Applications] digikam Reporter: Christof Schulze <christof.schulze>
Component: Database-ScanAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: crash    
Priority: NOR    
Version: 0.9.5   
Target Milestone: ---   
Platform: FreeBSD Ports   
OS: FreeBSD   
Latest Commit: Version Fixed In: 1.0.0
Sentry Crash Report:

Description Christof Schulze 2009-05-03 17:46:51 UTC
Version:           0.9.5 (using KDE 3.5.10)
OS:                FreeBSD
Installed from:    FreeBSD Ports

This does not happen any time but most of the time:

When starting digikam, it hangs after having printed "reading database" in the splash screen.

strace revealed:
gettimeofday({0, 0}, NULL)              = 0
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 58) = 58
select(16, [], NULL, NULL, {0, 0})      = 0 (Timeout)
gettimeofday({0, 0}, NULL)              = 0
gettimeofday({0, 0}, NULL)              = 0
stat("/home/erika/Bilder/2007/070806 Sommerkurs/Marie", {st_mode=056, st_size=14073972177043504, ...}) = 0
select(16, [4 5], NULL, NULL, {3670067, 6946862}) = 1 (in [4 5 6])
read(15, "\20\0\1\0Y\0\10\0\6\00009.jpg\27\0\1\0Y\0\10\0\r\00052_inde"..., 1034) = 1034
select(16, [3 4 5 6 9 10 11 13], NULL, NULL, {1535085, 5832705}) = 1 (in [3])
read(15, "\27\0\1\0Y\0\10\0\r\00032_index.html\27\0\1\0Y\0\10\0\r\0"..., 1034) = 1034
select(16, [1 4 5 12 13], NULL, NULL, {2019910766, 1836345390}) = 1 (in [2 3 5 6 8 9 10 12])
read(15, "html\27\0\1\0Y\0\10\0\r\00045_index.html\27\0\1\0Y\0"..., 1015) = 302
select(16, [11], NULL, NULL, {1869098752, 1697604973}) = 0 (Timeout)
gettimeofday({1634429298, 1818837551}, NULL) = 0
write(15, "der/2003/skitour/Marielder/2003/s"..., 57) = 57
select(16, [0 1 3 5 6 8 11 13 14], NULL, NULL, {1294955125, 1701409377}) = 0 (Timeout)
gettimeofday({1919247468, 808464943}, NULL) = 0
gettimeofday({1802710835, 1970238569}, NULL) = 0
stat("/home/erika/Bilder/2007/070806 Sommerkurs/Martin", {st_mode=0, st_size=0, ...}) = 0
select(16, [], NULL, NULL, {0, 0})      = 0 (Timeout)
gettimeofday({0, 0}, NULL)              = 0
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 58) = 58
select(16, [], NULL, NULL, {0, 0})      = 0 (Timeout)
gettimeofday({0, 0}, NULL)              = 0
gettimeofday({0, 0}, NULL)              = 0
stat("/home/erika/Bilder/2007/070806 Sommerkurs/Robert", {st_mode=0, st_size=0, ...}) = 0
select(16, [], NULL, NULL, {0, 0})      = 0 (Timeout)
gettimeofday({0, 0}, NULL)              = 0
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 58) = 58
select(16, [], NULL, NULL, {0, 0})      = 0 (Timeout)
gettimeofday({0, 0}, NULL)              = 0
gettimeofday({0, 0}, NULL)              = 0
stat("/home/erika/Bilder/2007/070806 Sommerkurs/Sandra1", {st_mode=0, st_size=0, ...}) = 0
select(16, [], NULL, NULL, {0, 0})      = 0 (Timeout)
gettimeofday({0, 0}, NULL)              = 0
write(15, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 59

it hangs there forever. I had this happen on FreeBSD and Linux Systems.
I will gladly provide more information, please let me know what is needed.
Comment 1 caulier.gilles 2009-05-03 18:11:55 UTC
Problem exist too with digiKam 0.10.0 ?

Gilles Caulier
Comment 2 Andi Clemens 2009-05-09 13:08:00 UTC
Aren't there any debugging infos in the console?
For me this strace output isn't very useful, can you take a look if some error messages appear in the console?

Andi
Comment 3 Christof Schulze 2009-05-09 14:10:54 UTC
at the time I cannot test with digikam 0.10 as it does not compile for FreeBSD due to a Makefile shakeup. This is already known to the FreeBSD team I will report back when this issue is resolved.

The debug info in the console, are not helpful as they do not contain an error message. Anyways this is what I see:
% digikam                   
digikam: Removing Album: /bilder jule/2009_01_30
digikam: ScanLib: Finding non-existent Albums: 6138 ms
digikam: ScanLib: Finding items not in database: 13479 ms
digikam: ScanLib: Updating items without a date: 20 ms
digikam: Removing: blatt0021.jpeg in 373
digikam: Removing: blatt0022.jpeg in 373
digikam: Removing: mandy-konflikt.jpeg in 373
digikam: KDirWatch method = FAM
Comment 4 Christof Schulze 2009-05-11 15:36:27 UTC
This is the output of top while digikam is running:

 PID USERNAME    THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
 1380 erika         1  70    0   166M 43776K CPU1   1   1:30 29.98% kded4
 1167 root          1  47    0   363M   314M select 0   0:13  0.98% Xorg
 1605 erika         1   4    0   133M 50072K sbwait 1   0:12  0.00% digikam

Maybe the state is useful here.
Comment 5 Mikolaj Machowski 2009-05-11 17:32:35 UTC
Such high usage of kded4 isn't normal. And it points somewhere in kdelibs as source of problem IMO. Was is so high before digiKam was started?
Comment 6 Christof Schulze 2009-05-11 18:02:32 UTC
it is always that high. On the other hand, the cpu is also clocked down to 300 Mhz so cpu usage may look high here.

Running digikam with ktrace works most of the time.
Comment 7 Mikolaj Machowski 2009-05-11 19:10:58 UTC
Lois is right (his message went to mailing list):
-------------------------------------
I had also that issue on 64 bits Mandriva 2008.1 (and also previous
mandrivas). I solved it by removing the KDirWatch addDir calls. Of
course, directory changes are not seen now by digiKam, but at least,
the (great) application starts.
The problem seems to be a communication one between the fam/gamin lib
and server but I didn't get further.

I do a diff at home and send the 'patch' (not really a patch, as it
removes something).
I had also that issue on 64 bits Mandriva 2008.1 (and also previous
mandrivas). I solved it by removing the KDirWatch addDir calls. Of
course, directory changes are not seen now by digiKam, but at least,
the (great) application starts.
The problem seems to be a communication one between the fam/gamin lib
and server but I didn't get further.

I do a diff at home and send the 'patch' (not really a patch, as it
removes something).
-------------------------------------
I would not advocate messing with sources, just turn off fam/gam in system settings (depends on your distro). In fact I remember that with KDE3 there were problems with FAM and I disabled it completely by removing guilty package.
Comment 8 Christof Schulze 2009-05-24 15:34:12 UTC
I finally got digikam 0.10 installed and it does not show this kind of behavior for me.
Comment 9 caulier.gilles 2009-05-24 15:43:10 UTC
Christof,

So, this fiel can be closed ?

Gilles Caulier
Comment 10 Christof Schulze 2009-05-24 16:02:47 UTC
It works for me but I kept it open so that Mikolaj can put his patch here. 
People still using 0.9 might be able to benefit from it.
Comment 11 Mikolaj Machowski 2009-05-25 01:38:55 UTC
It was Lois Brarda patch, not mine and and I never got it. But, as I wrote above, this is issue rather on distro level because KDirWatch is usually good service.

I would vote for closing this bug, if anyone want to attach patch to this report OK but not include this in proper digiKam sources.