Community
Participate
Working Groups
Created attachment 261369 [details] gdb backtrace _pixman_log_error Whenever I select the "History view" (on a project using Git), I get the following in my console (terminal - not the Eclipse console): *** BUG *** In pixman_region32_init_rect: Invalid rectangle passed Set a breakpoint on '_pixman_log_error' to debug This seems to be different from #435948 since I used the test program from there and it does not reproduce. Details: Version: Mars.2 Release (4.5.2) OS: Ubuntu 15.10 Java: openjdk version "1.8.0_66-internal" Using Gnome 3 (aka. Gnome Shell) I also installed the debug symbols for the relevant libraries and attached a GDB backtrace of the issue. Also, using the work-around linked from here - https://bugs.archlinux.org/task/46885 - seems to solve the issue. Ie. run eclipse --launcher.GTK_version 2 (the above seems to also solve a seemingly unrelated issue that text in the "Package" view sometimes shows with a "ghosting" effect).
Build ID: eclipse-committers-oxygen-RC1-linux-gtk-x86_64 on REL 7.3 / Oracle 8u121 I still see the same error logged on the Console with Oxygen RC1. There's no obvious degradation of functionality, aside the log output on the console. Let me know if any additional information is needed -- here's my gtk packages installed: bash-4.2$ cat /etc/redhat-release Red Hat Enterprise Linux Workstation release 7.3 (Maipo) bash-4.2$ rpm -qa | grep -i gtk | sort adwaita-gtk2-theme-3.14.2.2-2.el7.i686 adwaita-gtk2-theme-3.14.2.2-2.el7.x86_64 avahi-ui-gtk3-0.6.31-17.el7.x86_64 caribou-gtk2-module-0.4.16-1.el7.x86_64 caribou-gtk3-module-0.4.16-1.el7.x86_64 clutter-gtk-1.4.4-7.el7.x86_64 colord-gtk-0.1.25-4.el7.x86_64 gtk2-2.24.28-8.el7.i686 gtk2-2.24.28-8.el7.x86_64 gtk2-devel-2.24.28-8.el7.x86_64 gtk2-engines-2.20.2-7.el7.x86_64 gtk2-immodule-xim-2.24.28-8.el7.x86_64 gtk3-3.14.13-20.el7.i686 gtk3-3.14.13-20.el7.x86_64 gtk3-devel-3.14.13-20.el7.x86_64 gtk3-immodule-xim-3.14.13-20.el7.x86_64 gtkhtml3-4.8.5-2.el7.x86_64 gtkmm24-2.24.2-8.el7.x86_64 gtkmm30-3.8.1-3.el7.x86_64 gtksourceview3-3.14.3-1.el7.x86_64 gtkspell3-3.0.3-4.el7.x86_64 gtk-vnc2-0.5.2-7.el7.x86_64 ibus-gtk2-1.5.3-13.el7.x86_64 ibus-gtk3-1.5.3-13.el7.x86_64 libcanberra-gtk2-0.30-5.el7.i686 libcanberra-gtk2-0.30-5.el7.x86_64 libcanberra-gtk3-0.30-5.el7.i686 libcanberra-gtk3-0.30-5.el7.x86_64 libchamplain-gtk-0.12.4-5.el7.x86_64 libnm-gtk-1.4.0-2.el7.x86_64 libreport-gtk-2.1.11-35.el7.x86_64 PackageKit-gtk3-module-1.0.7-6.el7.x86_64 pinentry-gtk-0.8.1-17.el7.x86_64 pygtk2-2.24.0-9.el7.x86_64 pygtk2-libglade-2.24.0-9.el7.x86_64 spice-gtk3-0.31-6.el7_3.2.x86_64 usermode-gtk-1.111-5.el7.x86_64 webkitgtk3-2.4.9-6.el7.x86_64 xdg-user-dirs-gtk-0.10-4.el7.x86_64
@Martin: yes, I can confirm that this is still happening. Currently I'm testing on Ubuntu 17.04 with OpenJDK 1.8.0_131-8u131-b11-0ubuntu1.17.04.1-b11, Gnome Shell 3.24.2 and eclipse-java-oxygen-RC3-linux-gtk-x86_64.tar.gz. I attach a new gdb backtrace in the hopes that somebody will find it useful. NB: this eclipse / SWT / Gnome combination seems to have a collection of issues related to correctly using GTK since just by starting it I see a slew of warnings / errors in my console like: (Eclipse:9740): GLib-CRITICAL **: g_base64_encode_step: assertion 'in != NULL' failed (Eclipse:9740): Gtk-WARNING **: Negative content height -3 (allocation 1, extents 2x2) while allocating gadget (node toolbar, owner GtkToolbar) (Eclipse:9740): Gtk-WARNING **: Negative content width -5 (allocation 1, extents 3x3) while allocating gadget (node progressbar, owner GtkProgressBar) (Eclipse:9740): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width 12 and height -4 (Eclipse:9740): Gtk-CRITICAL **: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar etc.
Created attachment 269102 [details] Full backtrace for the pixman error
I think this error is seen in SWT console when you run AllTests for SWT. Could be narrowed down that way.
There seems to be some discussion about this upstream in GTK: https://bugzilla.gnome.org/show_bug.cgi?id=791081 Could be that it's a bug in GTK3 and not Eclipse.
Created attachment 273629 [details] Resizing an SWT table can lead to pixman_region32_init_rect: Invalid rectangle One minimal snippet to reproduce similar errors with: public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); shell.setSize(300, 200); shell.setText("Bug 492709"); Table table = new Table(shell, SWT.BORDER); table.setHeaderVisible(true); for (int i = 0; i < 2; ++i) { TableColumn column = new TableColumn(table, SWT.NONE); column.setText("column " + i); column.setWidth(150); } shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } Resize the shell until the horizontal scroll bar is hidden, see attached gif.
Since in our product we see the "bug" error message on resize only, I'll be checking only the resize examples, e.g. the one from Comment 6. Generally, we see the message when resizing the Eclipse window so that some view with an SWT tree or a table becomes "too small". I've written a GTK only example, which defines a similar table. I observe that when resized the GTK window will keep half a row of the table, plus the table column headers, plus the horizontal scrollbar as a minimum size. This prevents the horizontal scrollbar from overlapping with the column headers, and so prevents the error message. The SWT table (and by extension tree) on the other hand, will somehow inline its horizontal scrollbar in the table area. So when resizing, the half-a-row becomes occupied by the horizontal scrollbar, at some point overlaps with the header and produces the error message. So far I've noticed two methods of interest: 1. org.eclipse.swt.widgets.Scrollable.resizeHandle(int, int) This is called during layouting, and as far as I can tell results in the too-small table area. 2. org.eclipse.swt.widgets.Table.createHandle(int) This creates an SWT fixed, with a GTK scrolled window, with a table. Aside from the SWT fixed, this is as my native GTK example. I assume that the scroll bars of the scrolled window are not taken into account in some minimum size for the resize, but I have no idea why that would be the case. Any pointers here are greatly appreciated.
(In reply to Simeon Andreev from comment #7) > I assume that the scroll bars of the scrolled window are not taken into > account in some minimum size for the resize, but I have no idea why that > would be the case. > > Any pointers here are greatly appreciated. GTK has the luxury of restricting resizes to the minimum size, which is why you can't make GtkWidgets smaller than a certain size (i.e. try resizing a native GTK app to a very small window -- it won't let you). SWT has setSize() API which it needs to support without question. For this reason we cannot restrict sizing to GTK's minimum size requirements, and that's where 99% of these allocation warnings come from.
I reported bug 533799 for the resize issue described in comment 6 and comment 7. I'm guessing its a duplicate of this ticket, but I can't know for sure; I've not seen any error messages when opening the history view (with a git context).
Saw the same issue in a job on JIPP https://ci.eclipse.org/xtext/job/xtext-xtend/job/master/
*** This bug has been marked as a duplicate of bug 533799 ***