! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
Crash in thunar_file_is_gfile_ancestor
Status:
RESOLVED: FIXED

Comments

Description noel 2018-02-06 12:40:29 CET
Thunar crashes via Segfault, when thunar_file_is_gfile_ancestor is run. Coredump and binary package are here: https://thermicorp.de/~thermi~private/f8ba823c-58fa-415f-ab7f-dc776590d021/
The pkg.tar.xz file contains all files of the thunar package. It was built with debug information. It should contain all necessary information.

Stack trace:
                Stack trace of thread 4976:                                                                                   
                #0  0x000055657b9018ab thunar_file_is_gfile_ancestor (thunar)                                                 
                #1  0x000055657b93f435 thunar_tree_view_visible_func (thunar)                                                 
                #2  0x000055657b93a8f0 thunar_tree_model_item_files_added (thunar)                                            
                #3  0x000055657b93aa90 thunar_tree_model_item_load_idle (thunar)                                              
                #4  0x00007f70506eeca6 g_main_context_dispatch (libglib-2.0.so.0)                                             
                #5  0x00007f70506ef081 n/a (libglib-2.0.so.0)                                                                 
                #6  0x00007f70506ef3b2 g_main_loop_run (libglib-2.0.so.0)                                                     
                #7  0x00007f70525eedf3 gtk_main (libgtk-x11-2.0.so.0)                                                         
                #8  0x000055657b8ecec4 main (thunar)                                                                          
                #9  0x00007f70500eff4a __libc_start_main (libc.so.6)                                                          
                #10 0x000055657b8ed0ba _start (thunar)                                                                        
                                                                                                                              
                Stack trace of thread 30929:                                                                                  
                #0  0x00007f70501bf879 syscall (libc.so.6)                                                                    
                #1  0x00007f7050735cb1 g_cond_wait (libglib-2.0.so.0)                                                         
                #2  0x00007f7050c73a1c g_io_scheduler_job_send_to_mainloop (libgio-2.0.so.0)                                  
                #3  0x00007f7053573488 exo_job_emit (libexo-1.so.0)                                                           
                #4  0x000055657b90d112 thunar_job_files_ready (thunar)                                                        
                #5  0x000055657b90bca9 _thunar_io_jobs_ls (thunar)                                                            
                #6  0x000055657b92d55a thunar_simple_job_execute (thunar)                                                     
                #7  0x00007f7053573067 n/a (libexo-1.so.0)                                                                    
                #8  0x00007f7050c7377e n/a (libgio-2.0.so.0)                                                                  
                #9  0x00007f7050c9e049 n/a (libgio-2.0.so.0)                                                                  
                #10 0x00007f7050717ca3 n/a (libglib-2.0.so.0)                                                                 
                #11 0x00007f705071726a n/a (libglib-2.0.so.0)                                                                 
                #12 0x00007f705048d08c start_thread (libpthread.so.0)                                                         
                #13 0x00007f70501c4e7f __clone (libc.so.6)                                                                    
                                                                                                                              
                Stack trace of thread 32026:                                                                                  
                #0  0x00007f70501ba97b __poll (libc.so.6)                                                                     
                #1  0x00007f70506eeff3 n/a (libglib-2.0.so.0)                                                                 
                #2  0x00007f70506ef3b2 g_main_loop_run (libglib-2.0.so.0)
                #3  0x00007f7050ce36d8 n/a (libgio-2.0.so.0)      
                #4  0x00007f705071726a n/a (libglib-2.0.so.0)            
                #5  0x00007f705048d08c start_thread (libpthread.so.0)
                #6  0x00007f70501c4e7f __clone (libc.so.6)           
                                                            
                Stack trace of thread 32025:                 
                #0  0x00007f70501ba97b __poll (libc.so.6)    
                #1  0x00007f70506eeff3 n/a (libglib-2.0.so.0)        
                #2  0x00007f70506ef10e g_main_context_iteration (libglib-2.0.so.0)
                #3  0x00007f70506ef162 n/a (libglib-2.0.so.0)
                #4  0x00007f705071726a n/a (libglib-2.0.so.0)                       
                #5  0x00007f705048d08c start_thread (libpthread.so.0)   
                #6  0x00007f70501c4e7f __clone (libc.so.6)        

                Stack trace of thread 32025:                 
                #0  0x00007f70501ba97b __poll (libc.so.6)    
                #1  0x00007f70506eeff3 n/a (libglib-2.0.so.0)        
                #2  0x00007f70506ef10e g_main_context_iteration (libglib-2.0.so.0)
                #3  0x00007f70506ef162 n/a (libglib-2.0.so.0)
                #4  0x00007f705071726a n/a (libglib-2.0.so.0)                       
                #5  0x00007f705048d08c start_thread (libpthread.so.0)   
                #6  0x00007f70501c4e7f __clone (libc.so.6)        
                                                                         
                Stack trace of thread 30930:                                        
                #0  0x00007f70501bf879 syscall (libc.so.6)              
                #1  0x00007f7050735cb1 g_cond_wait (libglib-2.0.so.0)
                #2  0x00007f7050c73a1c g_io_scheduler_job_send_to_mainloop (libgio-2.0.so.0)
                #3  0x00007f7053573488 exo_job_emit (libexo-1.so.0)
                #4  0x000055657b90d112 thunar_job_files_ready (thunar)
                #5  0x000055657b90bca9 _thunar_io_jobs_ls (thunar)
                #6  0x000055657b92d55a thunar_simple_job_execute (thunar)
                #7  0x00007f7053573067 n/a (libexo-1.so.0)   
                #8  0x00007f7050c7377e n/a (libgio-2.0.so.0)         
                #9  0x00007f7050c9e049 n/a (libgio-2.0.so.0)
                #10 0x00007f7050717ca3 n/a (libglib-2.0.so.0)
                #11 0x00007f705071726a n/a (libglib-2.0.so.0)
                #12 0x00007f705048d08c start_thread (libpthread.so.0)
                #13 0x00007f70501c4e7f __clone (libc.so.6)  
                                                            
                Stack trace of thread 30934:                                        
                #0  0x00007f70501bf879 syscall (libc.so.6)              
                #1  0x00007f7050735cb1 g_cond_wait (libglib-2.0.so.0)
                #2  0x00007f7050c73a1c g_io_scheduler_job_send_to_mainloop (libgio-2.0.so.0)
                #3  0x00007f7053573488 exo_job_emit (libexo-1.so.0)
                #4  0x000055657b90d112 thunar_job_files_ready (thunar)
                #5  0x000055657b90bca9 _thunar_io_jobs_ls (thunar)
                #6  0x000055657b92d55a thunar_simple_job_execute (thunar)
                #7  0x00007f7053573067 n/a (libexo-1.so.0)   
                #8  0x00007f7050c7377e n/a (libgio-2.0.so.0)         
                #9  0x00007f7050c9e049 n/a (libgio-2.0.so.0)
                #10 0x00007f7050717ca3 n/a (libglib-2.0.so.0)
                #11 0x00007f705071726a n/a (libglib-2.0.so.0)
                #12 0x00007f705048d08c start_thread (libpthread.so.0)
                #13 0x00007f70501c4e7f __clone (libc.so.6)  
                                                            
                Stack trace of thread 30927:                                        
                #0  0x00007f70501b5c75 __lxstat (libc.so.6)             
                #1  0x00007f7050cfc753 n/a (libgio-2.0.so.0)      
                #2  0x00007f7050cf9c4d n/a (libgio-2.0.so.0)             
                #3  0x00007f7050c612bb g_file_enumerator_next_file (libgio-2.0.so.0)
                #4  0x000055657b90c427 thunar_io_scan_directory (thunar)
                #5  0x000055657b90bc6b _thunar_io_jobs_ls (thunar)
                #6  0x000055657b92d55a thunar_simple_job_execute (thunar)
                #7  0x00007f7053573067 n/a (libexo-1.so.0)
                #8  0x00007f7050c7377e n/a (libgio-2.0.so.0)
                #9  0x00007f7050c9e049 n/a (libgio-2.0.so.0)
                #10 0x00007f7050717ca3 n/a (libglib-2.0.so.0)
                #11 0x00007f705071726a n/a (libglib-2.0.so.0)
                #12 0x00007f705048d08c start_thread (libpthread.so.0)
                #13 0x00007f70501c4e7f __clone (libc.so.6)

                Stack trace of thread 30926:                                        
                #0  0x00007f70501b5c75 __lxstat (libc.so.6)             
                #1  0x00007f7050cfc753 n/a (libgio-2.0.so.0)      
                #2  0x00007f7050cf9c4d n/a (libgio-2.0.so.0)             
                #3  0x00007f7050c612bb g_file_enumerator_next_file (libgio-2.0.so.0)
                #4  0x000055657b90c427 thunar_io_scan_directory (thunar)
                #5  0x000055657b90bc6b _thunar_io_jobs_ls (thunar)
                #6  0x000055657b92d55a thunar_simple_job_execute (thunar)
                #7  0x00007f7053573067 n/a (libexo-1.so.0)   
                #8  0x00007f7050c7377e n/a (libgio-2.0.so.0)         
                #9  0x00007f7050c9e049 n/a (libgio-2.0.so.0)
                #10 0x00007f7050717ca3 n/a (libglib-2.0.so.0)
                #11 0x00007f705071726a n/a (libglib-2.0.so.0)
                #12 0x00007f705048d08c start_thread (libpthread.so.0)
                #13 0x00007f70501c4e7f __clone (libc.so.6)  
                                                            
                Stack trace of thread 30928:                                        
                #0  0x00007f70501b5c75 __lxstat (libc.so.6)             
                #1  0x00007f7050cfc753 n/a (libgio-2.0.so.0)      
                #2  0x00007f7050cf9c4d n/a (libgio-2.0.so.0)             
                #3  0x00007f7050c612bb g_file_enumerator_next_file (libgio-2.0.so.0)
                #4  0x000055657b90c427 thunar_io_scan_directory (thunar)
                #5  0x000055657b90bc6b _thunar_io_jobs_ls (thunar)
                #6  0x000055657b92d55a thunar_simple_job_execute (thunar)
                #7  0x00007f7053573067 n/a (libexo-1.so.0)   
                #8  0x00007f7050c7377e n/a (libgio-2.0.so.0)         
                #9  0x00007f7050c9e049 n/a (libgio-2.0.so.0)
                #10 0x00007f7050717ca3 n/a (libglib-2.0.so.0)
                #11 0x00007f705071726a n/a (libglib-2.0.so.0)
                #12 0x00007f705048d08c start_thread (libpthread.so.0)
                #13 0x00007f70501c4e7f __clone (libc.so.6) 

                Stack trace of thread 30931:
                #0  0x00007f70501b5c75 __lxstat (libc.so.6)
                #1  0x00007f7050cfc753 n/a (libgio-2.0.so.0)
                #2  0x00007f7050cf9c4d n/a (libgio-2.0.so.0)
                #3  0x00007f7050c612bb g_file_enumerator_next_file (libgio-2.0.so.0)
                #4  0x000055657b90c427 thunar_io_scan_directory (thunar)
                #5  0x000055657b90bc6b _thunar_io_jobs_ls (thunar)
                #6  0x000055657b92d55a thunar_simple_job_execute (thunar)
                #7  0x00007f7053573067 n/a (libexo-1.so.0)
                #8  0x00007f7050c7377e n/a (libgio-2.0.so.0)
                #9  0x00007f7050c9e049 n/a (libgio-2.0.so.0)
                #10 0x00007f7050717ca3 n/a (libglib-2.0.so.0)
                #11 0x00007f705071726a n/a (libglib-2.0.so.0)
                #12 0x00007f705048d08c start_thread (libpthread.so.0)
                #13 0x00007f70501c4e7f __clone (libc.so.6)


                Stack trace of thread 30932:
                #0  0x00007f70501b5c75 __lxstat (libc.so.6)
                #1  0x00007f7050cfc753 n/a (libgio-2.0.so.0)
                #2  0x00007f7050cf9c4d n/a (libgio-2.0.so.0)
                #3  0x00007f7050c612bb g_file_enumerator_next_file (libgio-2.0.so.0)
                #4  0x000055657b90c427 thunar_io_scan_directory (thunar)
                #5  0x000055657b90bc6b _thunar_io_jobs_ls (thunar)
                #6  0x000055657b92d55a thunar_simple_job_execute (thunar)
                #7  0x00007f7053573067 n/a (libexo-1.so.0)
                #8  0x00007f7050c7377e n/a (libgio-2.0.so.0)
                #9  0x00007f7050c9e049 n/a (libgio-2.0.so.0)
                #10 0x00007f7050717ca3 n/a (libglib-2.0.so.0)
                #11 0x00007f705071726a n/a (libglib-2.0.so.0)
                #12 0x00007f705048d08c start_thread (libpthread.so.0)
                #13 0x00007f70501c4e7f __clone (libc.so.6)

                Stack trace of thread 30933:
                #0  0x00007f70501b5c75 __lxstat (libc.so.6)
                #1  0x00007f7050cfc753 n/a (libgio-2.0.so.0)
                #2  0x00007f7050cf9c4d n/a (libgio-2.0.so.0)
                #3  0x00007f7050c612bb g_file_enumerator_next_file (libgio-2.0.so.0)
                #4  0x000055657b90c427 thunar_io_scan_directory (thunar)
                #5  0x000055657b90bc6b _thunar_io_jobs_ls (thunar)
                #6  0x000055657b92d55a thunar_simple_job_execute (thunar)
                #7  0x00007f7053573067 n/a (libexo-1.so.0)
                #8  0x00007f7050c7377e n/a (libgio-2.0.so.0)
                #9  0x00007f7050c9e049 n/a (libgio-2.0.so.0)
                #10 0x00007f7050717ca3 n/a (libglib-2.0.so.0)
                #11 0x00007f705071726a n/a (libglib-2.0.so.0)
                #12 0x00007f705048d08c start_thread (libpthread.so.0)
                #13 0x00007f70501c4e7f __clone (libc.so.6)

                Stack trace of thread 30925:
                #0  0x00007f70501b5c75 __lxstat (libc.so.6)
                #1  0x00007f7050cfc753 n/a (libgio-2.0.so.0)
                #2  0x00007f7050cf9c4d n/a (libgio-2.0.so.0)
                #3  0x00007f7050c612bb g_file_enumerator_next_file (libgio-2.0.so.0)
                #4  0x000055657b90c427 thunar_io_scan_directory (thunar)
                #5  0x000055657b90bc6b _thunar_io_jobs_ls (thunar)
                #6  0x000055657b92d55a thunar_simple_job_execute (thunar)
                #7  0x00007f7053573067 n/a (libexo-1.so.0)
                #8  0x00007f7050c7377e n/a (libgio-2.0.so.0)
                #9  0x00007f7050c9e049 n/a (libgio-2.0.so.0)
                #10 0x00007f7050717ca3 n/a (libglib-2.0.so.0)
                #11 0x00007f705071726a n/a (libglib-2.0.so.0)
                #12 0x00007f705048d08c start_thread (libpthread.so.0)
                #13 0x00007f70501c4e7f __clone (libc.so.6)
Comment 1 noel 2018-02-06 12:41:15 CET
*Thunar sometimes crashes via Segfault (non deterministic)
Comment 2 Andre Miranda editbugs 2018-02-06 15:29:34 CET
Are there steps to reproduce this crash? How hard is to crash it?
Comment 3 noel 2018-02-06 15:38:40 CET
The crash is non-deterministic, but seems to happen when folders with many pictures are opened.
Comment 4 alexxcons editbugs 2018-02-06 22:20:20 CET
Created attachment 7587 
hardened thunar_file_is_gfile_ancestor

Thanks for reporting & for the coredump !

I failed to reproduce the bug myself  :X
However I hardened the faulty method (added a NULL check) and simplified the loop a bit.

Could you take a try for the patch ? 
It's build against https://git.xfce.org/xfce/thunar/log/?h=xfce-4.12
You dont need to install it, sufficient to run it from build folder for testing.

The method looks the same in thunar-master.
Comment 5 noel 2018-02-11 22:59:11 CET
I tested it for the last couple of days and didn't get a crash. Looks like it works. Please merge. Thank you for your time.
Comment 6 Git Bot editbugs 2018-02-12 00:13:21 CET
Alexander Schwinn referenced this bugreport in commit 606c114a2508a378f2188f6a452e7d5cac948af8

Crash in thunar_file_is_gfile_ancestor (bug #14202)

https://git.xfce.org/xfce/thunar/commit?id=606c114a2508a378f2188f6a452e7d5cac948af8
Comment 7 Git Bot editbugs 2018-02-12 00:30:09 CET
Alexander Schwinn referenced this bugreport in commit 2da1b2afd197d65be07560c6db35cc27686090e7

Crash in thunar_file_is_gfile_ancestor (bug #14202)

https://git.xfce.org/xfce/thunar/commit?id=2da1b2afd197d65be07560c6db35cc27686090e7
Comment 8 alexxcons editbugs 2018-02-12 00:32:03 CET
You are welcome!

Merged into master and branch xfce-4.12

Bug #14202

Reported by:
noel
Reported on: 2018-02-06
Last modified on: 2018-02-12

People

Assignee:
alexxcons
CC List:
4 users

Version

Version:
1.6.13

Attachments

Additional information