When I do Ctrl-i on an image nautilus crashes. I've replicated on two different Chimera installs. It doesn't happen on a non-Chimera system. I've tried to debug the situation, but I can't work out what's going on. In the call to append_gexiv2_tag for the flash the value of tag_names seems to get corrupted. It doesn't match the flash global variable passed in. All the preceding calls work: tag_names matches the passed in variable as you'd expect.
(lldb) target create "/usr/bin/nautilus"
Current executable set to '/usr/bin/nautilus' (x86_64).
(lldb) run
Process 4920 launched: '/usr/bin/nautilus' (x86_64)
** Message: 21:36:08.971: Connecting to org.freedesktop.Tracker3.Miner.Files
Process 4920 stopped
* thread #1, name = 'nautilus', stop reason = signal SIGSEGV: sent by kernel (SI_KERNEL)
frame #0: 0x00007ffff7f28200 libc.so`strncmp(_l="Xmp.", _r="", n=<unavailable>) at strncmp.c:7:15
warning: strncmp.c: source file checksum mismatch between line table (dc65216f943433804864eb3dc03ffd14) and file on disk ()
(lldb) bt
* thread #1, name = 'nautilus', stop reason = signal SIGSEGV: sent by kernel (SI_KERNEL)
* frame #0: 0x00007ffff7f28200 libc.so`strncmp(_l="Xmp.", _r="", n=<unavailable>) at strncmp.c:7:15
frame #1: 0x00007fffdfae556a libgexiv2-0.16.so.4`gexiv2_metadata_is_xmp_tag(tag="") at gexiv2-metadata.cpp:1012:12 [inlined]
frame #2: 0x00007fffdfae5556 libgexiv2-0.16.so.4`gexiv2_metadata_has_tag(self=0x00007fffcf908160, tag="", error=0x0000000000000000) at gexiv2-metadata.cpp:553:9
frame #3: 0x00007fffdfae54a5 libgexiv2-0.16.so.4`gexiv2_metadata_try_has_tag(self=<unavailable>, tag=<unavailable>, error=<unavailable>) at gexiv2-metadata.cpp:543:12 [artificial]
frame #4: 0x00007fffdfb06327 libnautilus-image-properties.so`append_gexiv2_tag(self=0x00007fffde0d5800, tag_names=0x00007fffec492540, tag_description="Flash Fired") at nautilus-image-properties-model.c:190:13
frame #5: 0x00007fffdfb0600a libnautilus-image-properties.so`append_gexiv2_info(self=0x00007fffde0d5800) at nautilus-image-properties-model.c:234:5 [inlined]
frame #6: 0x00007fffdfb05f13 libnautilus-image-properties.so`load_finished(self=0x00007fffde0d5800) at nautilus-image-properties-model.c:276:9
frame #7: 0x00007fffdfb05cfb libnautilus-image-properties.so`file_read_callback(object=<unavailable>, res=<unavailable>, data=0x00007fffde0d5800) at nautilus-image-properties-model.c:360:9
frame #8: 0x00007ffff799bdb0 libgio-2.0.so.0`___lldb_unnamed_symbol_efd80 + 48
frame #9: 0x00007ffff79dfa48 libgio-2.0.so.0`___lldb_unnamed_symbol_133a20 + 40
frame #10: 0x00007ffff7dd88b3 libglib-2.0.so.0`___lldb_unnamed_symbol_10a680 + 563
frame #11: 0x00007ffff7dd911b libglib-2.0.so.0`___lldb_unnamed_symbol_10acf0 + 1067
frame #12: 0x00007ffff7dd9394 libglib-2.0.so.0`g_main_context_iteration + 116
frame #13: 0x00007ffff7a102ad libgio-2.0.so.0`g_application_run + 525
frame #14: 0x0000555555601b38 nautilus`main(argc=1, argv=0x00007fffffffe208) at nautilus-main.c:77:14
frame #15: 0x00007ffff7ed6bad libc.so`libc_start_main_stage2(main=(nautilus`main at nautilus-main.c:48), argc=<unavailable>, argv=0x00007fffffffe208) at __libc_start_main.c:95:7
frame #16: 0x00005555555ffa46 nautilus`_start + 22
(lldb) up
frame #1: 0x00007fffdfae556a libgexiv2-0.16.so.4`gexiv2_metadata_is_xmp_tag(tag="") at gexiv2-metadata.cpp:1012:12 [inlined]
(lldb) up
frame #2: 0x00007fffdfae5556 libgexiv2-0.16.so.4`gexiv2_metadata_has_tag(self=0x00007fffcf908160, tag="", error=0x0000000000000000) at gexiv2-metadata.c
pp:553:9
(lldb) up
frame #3: 0x00007fffdfae54a5 libgexiv2-0.16.so.4`gexiv2_metadata_try_has_tag(self=<unavailable>, tag=<unavailable>, error=<unavailable>) at gexiv2-metadata.cpp:543:12 [artificial]
(lldb) up
frame #4: 0x00007fffdfb06327 libnautilus-image-properties.so`append_gexiv2_tag(self=0x00007fffde0d5800, tag_names=0x00007fffec492540, tag_description="Flash Fired") at nautilus-image-properties-model.c:190:13
warning: nautilus-image-properties-model.c: source file checksum mismatch between line table (f20b173456aaa08e6fed6412879a65c9) and file on disk ()
(lldb) frame var -L flash
0x00007fffdfb09120: (const char *[2]) flash = {
0x00007fffdfb09120: [0] = 0x00007fffdfb03f11 "Exif.Photo.Flash"
0x00007fffdfb09128: [1] = 0x0000000000000000
}
(lldb) frame var -L tag_names
r12: (const char **) tag_names = 0x00007fffec492540
(lldb) p tag_names
(const char **) 0x00007fffec492540
(lldb) p *tag_names
(const char *) 0x8b485053e5894855 ""
(lldb)
When I do Ctrl-i on an image nautilus crashes. I've replicated on two different Chimera installs. It doesn't happen on a non-Chimera system. I've tried to debug the situation, but I can't work out what's going on. In the call to
append_gexiv2_tagfor the flash the value oftag_namesseems to get corrupted. It doesn't match theflashglobal variable passed in. All the preceding calls work:tag_namesmatches the passed in variable as you'd expect.Steps to reproduce: