Hello everyone! This post is related to Geeqie crashing in an assertion in file_data_unref (see subject line).
In addition to perusing more of the source code, I've received helpful --debug output from a bug reporter, who can reproduce the issue with a few attempts, while I don't manage to reproduce it: filedata.c:718: file_data_unref: deleting '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.JPG', parent '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.jpg' ** ERROR:filedata.c:676:file_data_free: assertion failed: (fd->sidecar_files == NULL) This has been encountered during loading images from an SD card. As one can see, it added a file (*.JPG) as its own sidecar file (*.jpg), and file_data_unref cannot cope with that. This is because in filedata.c file_data_check_sidecars() and check_case_insensitive_ext() a case-insensitive fstat is performed for files with a generated list of potential sidecar file name extensions. This gives wrong results on a case-insensitive file-system and apparently adds .jpg as a sidecar file for .JPG. layout.c:2204: 0.341570 (+00000.033411) layout_new: end filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.JPG' 1 0 filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.JPG' 0 0 filedata.c:655: file_data_ref (2): '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.JPG' @ filedata.c:398 filedata.c:428: file_data_pool hit: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.JPG' filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.JPg' 0 0 filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.JpG' 0 0 filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.Jpg' 0 0 filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.jPG' 0 0 filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.jPg' 0 0 filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.jpG' 0 0 filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.jpg' 0 0 filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.CR2' 0 0 filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.Cr2' 0 0 filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.cR2' 0 0 filedata.c:390: file_data_new: '/media/EOS_DIGITAL/DCIM/100CANON/IMG_3230.cr2' 0 0 As a work-around, I've inserted a file ext comparison directly in file_data_check_sidecars(), but I could imagine adding another one in file_data_unref(). What do you think? Regards, Michael ------------------------------------------------------------------------------ What You Don't Know About Data Connectivity CAN Hurt You This paper provides an overview of data connectivity, details its effect on application quality, and explores various alternative solutions. http://p.sf.net/sfu/progress-d2d _______________________________________________ Geeqie-devel mailing list Geeqie-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geeqie-devel