Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

caja crashes, in loop until I just kill my whole mate-session #413

Closed
matobinder opened this issue May 7, 2015 · 4 comments
Closed

caja crashes, in loop until I just kill my whole mate-session #413

matobinder opened this issue May 7, 2015 · 4 comments

Comments

@matobinder
Copy link

Using CentOS 7.1 64 bit
Linux testmach 3.10.0-229.1.2.el7.x86_64 #1 SMP Fri Mar 27 03:04:26 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
mate-desktop-1.8.2-2.el7.x86_64
caja-1.8.2-1.el7.x86_64
All MATE installed from the EPEL repo

So I have been building "workstation VMs" for a number of people over the last few months. All using the MATE desktop. Users have been loving them. However, I just built a few more this week(hadn't built ones in a few weeks) and all the users are having caja crash in a big way. I have the build of these machines scripted, so they should all be built the same, just probably new versions of stuff out of CentOS/EPEL repos.

I can reproduce this on any of the VMs I built. I setup a VNCserver for users to connect to the Desktop, "mate-session" is their default so that is what comes up.

When switching from full screen to windowed on the VNCViewer, caja crashes, generates a core file. It then continues on to do so, generating additional core files every 30-40 seconds until I kill the how mate-session.

I'm not sure if this is VNC or VM related or not, its just the only way I have right now of working with this.

The really odd part, is that its only happening to completly new VM builds now. Everyone that had had it running before is not having any issues. Even if they issue a yum update.

I'd be happy to go into more detail or test things out. I have about 10 people really chomping on the bit to get a VM desktop to play with.

The stack trace of the bad thread is (same in all core files) other threads are just wait/polls
get_pixbuf_for_size () from /lib64/libmate-desktop-2.so.17
mate_bg_draw () from /lib64/libmate-desktop-2.so.17
mate_bg_create_pixmap () from /lib64/libmate-desktop-2.so.17
eel_background_ensure_realized ()
eel_background_set_up_widget ()
g_closure_invoke () from /lib64/libgobject-2.0.so.0
signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
g_signal_emit () from /lib64/libgobject-2.0.so.0
gtk_widget_realize () from /lib64/libgtk-x11-2.0.so.0
gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
gtk_scrolled_window_forall () from /lib64/libgtk-x11-2.0.so.0
gtk_container_map () from /lib64/libgtk-x11-2.0.so.0
_g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
g_signal_emit () from /lib64/libgobject-2.0.so.0
gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
gtk_box_forall () from /lib64/libgtk-x11-2.0.so.0
gtk_container_map () from /lib64/libgtk-x11-2.0.so.0
_g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
g_signal_emit () from /lib64/libgobject-2.0.so.0
gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
gtk_box_forall () from /lib64/libgtk-x11-2.0.so.0
gtk_container_map () from /lib64/libgtk-x11-2.0.so.0
_g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
g_signal_emit () from /lib64/libgobject-2.0.so.0
gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
gtk_box_forall () from /lib64/libgtk-x11-2.0.so.0
gtk_container_map () from /lib64/libgtk-x11-2.0.so.0
_g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
g_signal_emit () from /lib64/libgobject-2.0.so.0
gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
gtk_table_forall () from /lib64/libgtk-x11-2.0.so.0
gtk_container_map () from /lib64/libgtk-x11-2.0.so.0
_g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
g_signal_emit () from /lib64/libgobject-2.0.so.0
gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
gtk_window_map () from /lib64/libgtk-x11-2.0.so.0
map ()
_g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
g_signal_emit () from /lib64/libgobject-2.0.so.0
gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
gtk_window_show () from /lib64/libgtk-x11-2.0.so.0
caja_window_show ()
caja_spatial_window_show ()
_g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
g_signal_emit () from /lib64/libgobject-2.0.so.0
gtk_widget_show () from /lib64/libgtk-x11-2.0.so.0
caja_window_show_window ()
finish_loading ()
directory_ready_callback ()
ready_callback_call ()
call_ready_callbacks_at_idle ()
g_main_context_dispatch () from /lib64/libglib-2.0.so.0
g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
g_main_loop_run () from /lib64/libglib-2.0.so.0
gtk_main () from /lib64/libgtk-x11-2.0.so.0
main ()

@matobinder
Copy link
Author

Oops. Was going to add more info accidentally closed it.

@matobinder matobinder reopened this May 8, 2015
@matobinder
Copy link
Author

Ok, so I installed some of the debuginfo packages so I could try to track this down. Stack trace is much more usefull. :>
One question, I'm still new to github/git in general. How do I determine which version of mate-bg.c was used in this build I am looking at. Which is where it is doing its SEGV the line number the stack trace shows, and the "latest" version in here doesn't seem to jive. Since that pointer looked ok.
Here's the update stack trace with some debug info on the mate side...

#0  get_pixbuf_for_size (bg=bg@entry=0x19afa50, monitor=monitor@entry=1, best_width=0, best_height=0) at mate-bg.c:2400
#1  0x00007fcc4f5f90ef in draw_each_monitor (screen=0x18442b0, dest=0x192d050, bg=0x19afa50) at mate-bg.c:1065
#2  mate_bg_draw (bg=bg@entry=0x19afa50, dest=dest@entry=0x192d050, screen=0x18442b0, is_root=is_root@entry=1) at mate-bg.c:1086
#3  0x00007fcc4f5f9323 in mate_bg_create_pixmap (bg=0x19afa50, window=0x184b900, width=<optimized out>, height=924, is_root=1) at mate-bg.c:1216
#4  0x00000000005265af in eel_background_ensure_realized (self=self@entry=0x19afa30) at eel-background.c:363
#5  0x0000000000526788 in eel_background_set_up_widget (self=0x19afa30) at eel-background.c:550
#6  0x00007fcc4cb4ffd8 in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#7  0x00007fcc4cb620ad in signal_emit_unlocked_R () from /lib64/libgobject-2.0.so.0
#8  0x00007fcc4cb69e32 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#9  0x00007fcc4cb6a0ef in g_signal_emit () from /lib64/libgobject-2.0.so.0
#10 0x00007fcc4e65191d in gtk_widget_realize () from /lib64/libgtk-x11-2.0.so.0
#11 0x00007fcc4e651b48 in gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
#12 0x00007fcc4e5865ab in gtk_scrolled_window_forall () from /lib64/libgtk-x11-2.0.so.0
#13 0x00007fcc4e49319f in gtk_container_map () from /lib64/libgtk-x11-2.0.so.0
#14 0x00007fcc4cb5017f in _g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
#15 0x00007fcc4cb69487 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#16 0x00007fcc4cb6a0ef in g_signal_emit () from /lib64/libgobject-2.0.so.0
#17 0x00007fcc4e651b16 in gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
#18 0x00007fcc4e459832 in gtk_box_forall () from /lib64/libgtk-x11-2.0.so.0
#19 0x00007fcc4e49319f in gtk_container_map () from /lib64/libgtk-x11-2.0.so.0
#20 0x00007fcc4cb5017f in _g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
#21 0x00007fcc4cb69487 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#22 0x00007fcc4cb6a0ef in g_signal_emit () from /lib64/libgobject-2.0.so.0
#23 0x00007fcc4e651b16 in gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
#24 0x00007fcc4e459832 in gtk_box_forall () from /lib64/libgtk-x11-2.0.so.0
#25 0x00007fcc4e49319f in gtk_container_map () from /lib64/libgtk-x11-2.0.so.0
#26 0x00007fcc4cb5017f in _g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
#27 0x00007fcc4cb69487 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#28 0x00007fcc4cb6a0ef in g_signal_emit () from /lib64/libgobject-2.0.so.0
#29 0x00007fcc4e651b16 in gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
#30 0x00007fcc4e459832 in gtk_box_forall () from /lib64/libgtk-x11-2.0.so.0
#31 0x00007fcc4e49319f in gtk_container_map () from /lib64/libgtk-x11-2.0.so.0
#32 0x00007fcc4cb5017f in _g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
#33 0x00007fcc4cb69487 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#34 0x00007fcc4cb6a0ef in g_signal_emit () from /lib64/libgobject-2.0.so.0
#35 0x00007fcc4e651b16 in gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
#36 0x00007fcc4e5aeb70 in gtk_table_forall () from /lib64/libgtk-x11-2.0.so.0
#37 0x00007fcc4e49319f in gtk_container_map () from /lib64/libgtk-x11-2.0.so.0
#38 0x00007fcc4cb5017f in _g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
#39 0x00007fcc4cb69487 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#40 0x00007fcc4cb6a0ef in g_signal_emit () from /lib64/libgobject-2.0.so.0
#41 0x00007fcc4e651b16 in gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
#42 0x00007fcc4e66390a in gtk_window_map () from /lib64/libgtk-x11-2.0.so.0
#43 0x0000000000453631 in map (widget=0x18d4160) at caja-desktop-window.c:156
#44 0x00007fcc4cb50207 in _g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
#45 0x00007fcc4cb69487 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#46 0x00007fcc4cb6a0ef in g_signal_emit () from /lib64/libgobject-2.0.so.0
#47 0x00007fcc4e651b16 in gtk_widget_map () from /lib64/libgtk-x11-2.0.so.0
#48 0x00007fcc4e65d032 in gtk_window_show () from /lib64/libgtk-x11-2.0.so.0
#49 0x00000000004841c9 in caja_window_show (widget=0x18d4160) at caja-window.c:1670
#50 0x00000000004797e1 in caja_spatial_window_show (widget=0x18d4160) at caja-spatial-window.c:325
#51 0x00007fcc4cb50207 in _g_closure_invoke_va () from /lib64/libgobject-2.0.so.0
#52 0x00007fcc4cb69487 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0
#53 0x00007fcc4cb6a0ef in g_signal_emit () from /lib64/libgobject-2.0.so.0
#54 0x00007fcc4e650f06 in gtk_widget_show () from /lib64/libgtk-x11-2.0.so.0
#55 0x0000000000484f8e in caja_window_show_window (window=0x18d4160) at caja-window.c:708
#56 0x0000000000494325 in finish_loading (view=0x196a250) at fm-directory-view.c:9553
#57 0x00000000004ca87b in merged_callback_check_done (merged_callback=0x1976b20) at caja-desktop-directory.c:137
#58 merged_callback_remove_directory (directory=<optimized out>, merged_callback=0x1976b20) at caja-desktop-directory.c:151
#59 directory_ready_callback (directory=<optimized out>, files=<optimized out>, callback_data=0x1976b20) at caja-desktop-directory.c:173
#60 0x00000000004ce352 in ready_callback_call (directory=0x1973350, callback=<optimized out>) at caja-directory-async.c:1422
#61 0x00000000004d3783 in call_ready_callbacks_at_idle (callback_data=<optimized out>) at caja-directory-async.c:2065
#62 0x00007fcc4c85699a in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#63 0x00007fcc4c856ce8 in g_main_context_iterate.isra.24 () from /lib64/libglib-2.0.so.0
#64 0x00007fcc4c856fba in g_main_loop_run () from /lib64/libglib-2.0.so.0
#65 0x00007fcc4e519797 in gtk_main () from /lib64/libgtk-x11-2.0.so.0
#66 0x0000000000449ee8 in main (argc=1, argv=0x7ffff5779178) at caja-main.c:614

@matobinder
Copy link
Author

Ok... I dug into this with gdb and worked through it. When it gets into find_best_size() it goes through both passes, never finding a best size. And in the end it best which is null.

Looking at it a bit more.. no matter what the file was I was getting values for FileSize such as this (This was printing size from line on line 2336) from file mate-bg.c on May 4th,2014, which I ended up guessing was the version in this code). So maybe this should go under the mate-desktop bugs?

$32 = {width = -1, height = -1, file = 0x1697cf0 "/usr/share/backgrounds/night.jpg"}

The width/height were always -1, I'm not entirely sure what it is doing here.

@matobinder
Copy link
Author

I'm going to close this out and open it as an issue on the mate-desktop repo.
mate-desktop/mate-desktop#170

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant