Bug#842070: libgtk-3-0: Upgrade breaks gvim: Gtk-CRITICAL **: gtk_widget_set_size_request: assertion 'width >= -1' failed

Ben Armstrong BArmstrong at dymaxion.ca
Tue Oct 25 18:39:46 UTC 2016


Simon,

Here is the info you requested ...

On 25/10/16 03:14 PM, Simon McVittie wrote:
> What 'guiopts' do you use in gvim? (type ":set guiopts?" into gvim)

Do you mean ":set guioptions?" If so:

   guioptions=aegimrLtTf

> Which Gtk theme are you using? I ask because I use vim.gtk3 myself, and
> I can't reproduce this with the default Adwaita theme.

I'm on Cinnamon, so whatever it uses by default. I assume Adwaita. Not 
sure the "right way" to query, but guessing:

$ gtk-query-settings  | grep -i theme
                      gtk-theme-name: "Adwaita"
                 gtk-icon-theme-name: "gnome"
!           gtk-fallback-icon-theme: NULL
                  gtk-key-theme-name: "Default"
               gtk-cursor-theme-name: "Adwaita"
               gtk-cursor-theme-size: 24
                gtk-sound-theme-name: "freedesktop"
   gtk-application-prefer-dark-theme: FALSE

> It would probably be useful if you can get a backtrace from the crash,
> the invalid pixman_region32_init_rect call, and/or the invalid
> size request.
>
> The size request is probably the most useful:
>
>      $ sudo apt install gdb
>      $ G_DEBUG=fatal_criticals gdb /usr/bin/vim.gtk3
>      (gdb) run
>      ... when it crashes with the critical warning you quoted ...
>      (gdb) thread apply all bt
>
> To make the backtrace useful, you will probably need the libgtk-3-0-dbgsym
> and vim-gtk3-dbgsym packages from the debug symbols archive. Please see
> <https://wiki.debian.org/HowToGetABacktrace> for more information about
> backtraces and debug symbols.

Here you go:

Thread 5 (Thread 0x7fffea277700 (LWP 4547)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff5fd92aa in g_cond_wait_until () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5f67e89 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff5fbbcf6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff5fbb325 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff3fd5464 in start_thread (arg=0x7fffea277700) at pthread_create.c:333
#6  0x00007ffff2e4c9df in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 4 (Thread 0x7fffeaa78700 (LWP 4546)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007ffff5fd92aa in g_cond_wait_until () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5f67e89 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff5fbbcf6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff5fbb325 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff3fd5464 in start_thread (arg=0x7fffeaa78700) at pthread_create.c:333
#6  0x00007ffff2e4c9df in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 3 (Thread 0x7fffe3fff700 (LWP 4545)):
#0  0x00007ffff2e4356d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff5f939d6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5f93d62 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff657b4e6 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007ffff5fbb325 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff3fd5464 in start_thread (arg=0x7fffe3fff700) at pthread_create.c:333
#6  0x00007ffff2e4c9df in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 2 (Thread 0x7fffeb839700 (LWP 4544)):
#0  0x00007ffff2e4356d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff5f939d6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5f93aec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff5f93b31 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff5fbb325 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff3fd5464 in start_thread (arg=0x7fffeb839700) at pthread_create.c:333
#6  0x00007ffff2e4c9df in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 1 (Thread 0x7ffff7f26a40 (LWP 4540)):
#0  0x00007ffff5f99241 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007ffff5f9a64d in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5f9a7af in g_log () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x0000555555769914 in gtk_form_move_resize (form=0x555555d33260, widget=0x555555f8b0f0, x=0, y=0, w=<optimized out>, h=<optimized out>)
     at gui_gtk_f.c:1166
#4  0x000055555575eebc in gui_mch_set_text_area_pos (x=<optimized out>, y=<optimized out>, w=<optimized out>, h=<optimized out>)
     at gui_gtk.c:827
#5  0x00005555557569f9 in gui_position_components (total_width=1) at gui.c:1355
#6  0x000055555575982c in gui_resize_shell (pixel_width=<optimized out>, pixel_height=pixel_height at entry=1) at gui.c:1470
#7  0x000055555576144f in form_configure_event (widget=widget at entry=0x555555d33260, event=0x555555fae3e0, data=<optimized out>)
     at gui_gtk_x11.c:4440
#8  0x00007ffff76fb55c in _gtk_marshal_BOOLEAN__BOXED (closure=0x555556126920, return_value=0x7fffffffcf60, n_param_values=<optimized out>,
     param_values=0x7fffffffcfc0, invocation_hint=<optimized out>, marshal_data=<optimized out>) at ././gtk/gtkmarshalers.c:86
#9  0x00007ffff626cf75 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007ffff627ef82 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x00007ffff628766f in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x00007ffff6287faf in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff7847d0c in gtk_widget_event_internal (widget=0x555555d33260, event=0x555555fae3e0) at ././gtk/gtkwidget.c:7721
#14 0x00007ffff76fa584 in gtk_main_do_event (event=0x555555fae3e0) at ././gtk/gtkmain.c:1830
#15 0x00007ffff720bb95 in _gdk_event_emit (event=event at entry=0x555555fae3e0) at ././gdk/gdkevents.c:73
#16 0x00007ffff723cb52 in gdk_event_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>)
     at ././gdk/x11/gdkeventsource.c:367
#17 0x00007ffff5f937d7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff5f93a40 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff5f93aec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x0000555555766135 in gui_mch_update () at gui_gtk_x11.c:6471
#21 0x000055555564df45 in vgetorpeek (advance=advance at entry=1) at getchar.c:2036
#22 0x000055555564f390 in vgetc () at getchar.c:1606
#23 0x000055555564f819 in safe_vgetc () at getchar.c:1802
#24 0x0000555555699250 in normal_cmd (oap=0x7fffffffd650, toplevel=1) at normal.c:627
#25 0x0000555555792e95 in main_loop (cmdwin=0, noexmode=0) at main.c:1311
#26 0x0000555555794010 in vim_main2 () at main.c:877
#27 0x00005555555b7291 in main (argc=<optimized out>, argv=<optimized out>) at main.c:415

At this point, I *did* see the buffer and it looked pretty much as 
expected, but then I did "continue" repeatedly, until it seemed to be 
all done spitting out more messages (looked like repeats of the original 
messages, so I didn't include them in my original report, but this 
happened before when I first filed the bug report, too):

(gdb) continue
Continuing.
*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug


(gvim:4540): Gtk-CRITICAL **: gtk_widget_set_size_request: assertion 'width >= -1' failed
[Thread 0x7fffea277700 (LWP 4547) exited]

Thread 1 "vim.gtk3" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff5f99241 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) continue
Continuing.
*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug


(gvim:4540): Gtk-CRITICAL **: gtk_widget_set_size_request: assertion 'width >= -1' failed

Thread 1 "vim.gtk3" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff5f99241 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) continue
Continuing.
*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

[Thread 0x7fffeaa78700 (LWP 4546) exited]

And then I flipped back to the editor window and it was scuttled in the 
same way as my original bug report. Would you like any more backtraces 
(e.g. at the points where I did 'continue' above? If so, which ones, 
just the last, or each one?)

Ben

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20161025/5a163195/attachment-0001.html>


More information about the pkg-gnome-maintainers mailing list