[KPhotoAlbum] wrong GPS position

Johannes Zarl-Zierl johannes at zarl-zierl.at
Tue Jul 17 21:23:36 BST 2018


Hi,

So what we're currently doing is the following:

1. Parse GPS data from Exif 
2. Store the parsed data in exifdb
3. Use the data

The Exif-Info dialog directly shows the Exif data from the file, not the 
cached fields from the exifdb. The exifdb only stores a subset of exif data 
that we actually use in KPA.

>From the problem description, I'd say that parsing the data works fine (and I 
don't see any source of non-determinism there). I assume that the problem 
persists across KPA runs if you don't recreate the exifdb, so we can rule out 
step 3 as well.

Which leaves us with the storage part. The non-determinism in your problem 
description also shouts "concurrent writes", so my guess would be that several 
threads read exif information and try to store in in the database 
concurrently. This should not be a problem for the underlying database, but I 
guess you can always introduce bugs in a higher layer.

I'll see if I can spot a problem...

Btw. did you also try the current version from git (the one including Robert's 
performance changes)?

As an additional pointer, could you maybe find an image in the "north pole" 
category that you described and send me both the correct and the incorrect 
values?

You can query the exifdb as follows:

sqlite3 exif-info.db "select 
Exif_GPSInfo_GPSVersionID,Exif_GPSInfo_GPSAltitude,Exif_GPSInfo_GPSAltitudeRef,Exif_GPSInfo_GPSMeasureMode,Exif_GPSInfo_GPSDOP,Exif_GPSInfo_GPSImgDirection,Exif_GPSInfo_GPSLatitude,Exif_GPSInfo_GPSLatitudeRef,Exif_GPSInfo_GPSLongitude,Exif_GPSInfo_GPSLongitudeRef,Exif_GPSInfo_GPSTimeStamp 
from exif where filename = '/path/to/DSC_1234.jpg';"

Maybe there's some pointer in the way the information gets garbled...

As an additional side-note: there's also the bug mentioned by Georgios/gsv000, 
but this would affect files at step 1., so it shouldn't be at play here...

Cheers,
  Johannes





More information about the Kphotoalbum mailing list