(In reply to Harald Judt from comment #1)
> > gdb backtrace attached - it is strange that the
> > thunar_file_compare_by_name() function is called even for only one file in
> > working directory - both file_a->collate_key_nocase and
> > file_b->collate_key_nocase are NULL. I noticed that sometimes this function
> > is not called, but when it is (it is random), then it crashes.
>
> This is probably related to threading issues and timing-specific. Something
> needs to be protected to avoid being accessed when it shouldn't be. Likely
> the old file is in the process of being destroyed while being compared with
> the new file or something like that.
I have a similar or identical backtrace to the one posted in the original bug report. I also cannot rename files without thunar going away on me.
I don't know if it helps at all, but I used gdb to print some extra info from the last stack frame reached in thunar. I hope the Xfce team can solve this soon, because I have to sort out some old backed-up directories and I'm used to using thunar to do this sort of work!
(gdb) frame 1
#1 0x000055555559188d in thunar_file_compare_by_name (file_a=0x555555d3e390, file_b=0x555555d2dd00, case_sensitive=<optimized out>) at thunar-file.c:4027
4027 result = strcmp (file_a->collate_key, file_b->collate_key);
(gdb) info frame
Stack level 1, frame at 0x7fffffffd380:
rip = 0x55555559188d in thunar_file_compare_by_name (thunar-file.c:4027); saved rip = 0x55555559fd9e
called by frame at 0x7fffffffd3b0, caller of frame at 0x7fffffffd360
source language c.
Arglist at 0x7fffffffd360, args: file_a=0x555555d3e390, file_b=0x555555d2dd00, case_sensitive=<optimized out>
Locals at 0x7fffffffd360, Previous frame's sp is 0x7fffffffd380
Saved registers:
rbx at 0x7fffffffd368, rbp at 0x7fffffffd370, rip at 0x7fffffffd378
(In reply to Harald Judt from comment #1) file_compare_ by_name( ) function is called even for only one file in >collate_ key_nocase and >collate_ key_nocase are NULL. I noticed that sometimes this function
> > gdb backtrace attached - it is strange that the
> > thunar_
> > working directory - both file_a-
> > file_b-
> > is not called, but when it is (it is random), then it crashes.
>
> This is probably related to threading issues and timing-specific. Something
> needs to be protected to avoid being accessed when it shouldn't be. Likely
> the old file is in the process of being destroyed while being compared with
> the new file or something like that.
I have a similar or identical backtrace to the one posted in the original bug report. I also cannot rename files without thunar going away on me.
I don't know if it helps at all, but I used gdb to print some extra info from the last stack frame reached in thunar. I hope the Xfce team can solve this soon, because I have to sort out some old backed-up directories and I'm used to using thunar to do this sort of work!
(gdb) frame 1 file_compare_ by_name (file_a= 0x555555d3e390, file_b= 0x555555d2dd00, case_sensitive= <optimized out>) at thunar-file.c:4027 >collate_ key, file_b- >collate_ key);
#1 0x000055555559188d in thunar_
4027 result = strcmp (file_a-
(gdb) info frame file_compare_ by_name (thunar- file.c: 4027); saved rip = 0x55555559fd9e 0x555555d3e390, file_b= 0x555555d2dd00, case_sensitive= <optimized out>
Stack level 1, frame at 0x7fffffffd380:
rip = 0x55555559188d in thunar_
called by frame at 0x7fffffffd3b0, caller of frame at 0x7fffffffd360
source language c.
Arglist at 0x7fffffffd360, args: file_a=
Locals at 0x7fffffffd360, Previous frame's sp is 0x7fffffffd380
Saved registers:
rbx at 0x7fffffffd368, rbp at 0x7fffffffd370, rip at 0x7fffffffd378
(gdb) print *file_a TYPE_REGULAR, gfile = 0x555555dfe160, content_type = 0x555555d85050 "image/jpeg", ad/.cache/ thumbnails/ normal/ 87903c1cff4c5d3 2097076c5ddf568 6e.png" , 030\001\ t\001\001\ 001\002: 73\001\ 001\001\ 001MSJ\ 001\030\ 030\030\ 001\t\t\ t", collate_key_nocase = 0x7fffd4009070 "S\001\ 030\001\ t\001\001\ 001\002: 73\001\ 001\001\ 001MSJ\ 001\030\ 030\030\ 001\t\t\ t", FILE_FLAG_ THUMB_MASK | THUNAR_ FILE_FLAG_ IS_MOUNTED) }
$2 = {__parent__ = {g_type_instance = {g_class = 0x55555588d4b0}, ref_count = 3, qdata = 0x555555e1ce80}, info = 0x7fffe00124c0, kind = G_FILE_
icon_name = 0x0, custom_icon_name = 0x0, display_name = 0x7fffd400b7f0 "p73.jpg", basename = 0x7fffd4011680 "p73.jpg", thumbnail_path = 0x555555e3acc0 "/home/
collate_key = 0x7fffd4009070 "S\001\
flags = (THUNAR_
(gdb) print *file_b TYPE_UNKNOWN, gfile = 0x7fffd4010f00, content_type = 0x0, icon_name = 0x0, custom_icon_name = 0x0, FILE_FLAG_ IS_MOUNTED}
$3 = {__parent__ = {g_type_instance = {g_class = 0x55555588d4b0}, ref_count = 11, qdata = 0x555555dffd90}, info = 0x0, kind = G_FILE_
display_name = 0x0, basename = 0x0, thumbnail_path = 0x0, collate_key = 0x0, collate_key_nocase = 0x0, flags = THUNAR_