Bug 1331726

Summary: tests fail on big endian arches
Product: [Fedora] Fedora Reporter: Dan Horák <dan>
Component: rubygem-gobject-introspectionAssignee: Mamoru TASAKA <mtasaka>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: c.david86, green, lkundrak, mtasaka, negativo17, than
Target Milestone: ---   
Target Release: ---   
Hardware: s390x   
OS: Unspecified   
Whiteboard:
Fixed In Version: rubygem-gobject-introspection-3.0.9-2.fc25 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-06 18:21:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 467765, 1071880    
Attachments:
Description Flags
s390x libffi size issue fix trial none

Description Dan Horák 2016-04-29 11:56:10 UTC
a test is failing on big endian arches (ppc64, s390(x))

...
===============================================================================
Failure: test_indices(TestGtkTreePath)
/builddir/build/BUILD/rubygem-gtk3-3.0.7/usr/share/gems/gems/gtk3-3.0.7/test/test-gtk-tree-path.rb:34:in `test_indices'
     31: 
     32:   def test_indices
     33:     indices, depth = tree_path("2").indices
  => 34:     assert_equal([[2], 1],
     35:                  [indices, depth])
     36:   end
     37: 
<[[2], 1]> expected but was
<[[0], 1]>
diff:
? [[2], 1]
?   0     
===============================================================================
.......................................
Finished in 1.487586706 seconds.
------
337 tests, 392 assertions, 1 failures, 0 errors, 0 pendings, 3 omissions, 0 notifications
99.7006% passed
------
226.54 tests/s, 263.51 assertions/s

for full logs please see http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=3333330 or http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=2192633


Version-Release number of selected component (if applicable):
rubygem-gtk3-3.0.7-2.fc24
but all versions >= 3.0 fail

Comment 1 Mamoru TASAKA 2016-04-30 14:31:03 UTC
Please test with 3.0.8 again. If this still fails, I will report to the upstream.

Comment 2 Mamoru TASAKA 2016-04-30 14:32:10 UTC
(In reply to Mamoru TASAKA from comment #1)
> Please test with 3.0.8 again. If this still fails, I will report to the
> upstream.

Ah, sorry, I missed s390 failure.

Comment 3 Mamoru TASAKA 2016-05-04 15:56:19 UTC
rubygem-gobject-introspection-3.0.8-2.fc24 may fix this issue. Would you test this?

Comment 4 Dan Horák 2016-05-04 16:00:51 UTC
Sure, you mean rebuild rubygem-gtk3 with rubygem-gobject-introspection-3.0.8-2.fc24 in the buildroot?

Comment 5 Mamoru TASAKA 2016-05-04 16:20:48 UTC
(In reply to Dan Horák from comment #4)
> Sure, you mean rebuild rubygem-gtk3 with
> rubygem-gobject-introspection-3.0.8-2.fc24 in the buildroot?

Yes.

Comment 6 Dan Horák 2016-05-05 12:06:33 UTC
http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=2214665
it fails differently, succeeds on s390, still fails on s390x

...
+ sed -i test/run-test.rb -e '\@exit Test::Unit::AutoRunner@s|,[ \t]*File\.join(.*"test")||'
+ cd test
+ xvfb-run ruby -I../lib:.:../ext/gtk3 run-test.rb
glib-compile-resources simple_window.gresource.xml
Loaded suite .
Started
....O
===============================================================================
XSETTINGS is required. [test: custom type(TestGdkScreen::#get_setting)]
/builddir/build/BUILD/rubygem-gtk3-3.0.8/usr/share/gems/gems/gtk3-3.0.8/test/test-gdk-screen.rb:36:in `block (2 levels) in <class:TestGdkScreen>'
===============================================================================
O
===============================================================================
XSETTINGS is required. [test: no type(TestGdkScreen::#get_setting)]
/builddir/build/BUILD/rubygem-gtk3-3.0.8/usr/share/gems/gems/gtk3-3.0.8/test/test-gdk-screen.rb:25:in `block (2 levels) in <class:TestGdkScreen>'
===============================================================================
.............../usr/share/gems/gems/gobject-introspection-3.0.8/lib/gobject-introspection/loader.rb: line 551
   Gtk-CRITICAL **:Page flow is broken.
You may want to end it with a page of type
GTK_ASSISTANT_PAGE_CONFIRM or GTK_ASSISTANT_PAGE_SUMMARY
F
===============================================================================
Failure: test: #set_forward_page_func(TestGtkAssistant)
/builddir/build/BUILD/rubygem-gtk3-3.0.8/usr/share/gems/gems/gtk3-3.0.8/test/test-gtk-assistant.rb:41:in `block in <class:TestGtkAssistant>'
     38: 
     39:     assert_equal(-1, @assistant.current_page)
     40:     @assistant.next_page
  => 41:     assert_equal([-1, next_page],
     42:                  [page, @assistant.current_page])
     43:   end
     44: end
<[-1, 2]> expected but was
<[-1, -1]>
diff:
? [-1, 2 ]
?      -1 
===============================================================================
...


It is with only rubygem-gobject-introspection updated in the buildroot, otherwise same as in previous build attempts with rubygem-gtk3.

Comment 7 Dan Horák 2016-08-23 11:24:20 UTC
still failing with errors from comment 6 with rubygem-gtk3-3.0.9-1.fc25

Comment 8 Mamoru TASAKA 2016-08-23 12:24:00 UTC
I cannot debug without accessible machine (also the upstream cannot debug, either and actually the upstream is at a loss). If you can help me, please mail to me privately.

Comment 9 Mamoru TASAKA 2016-08-23 13:26:22 UTC
> upstream is at a loss

https://github.com/ruby-gnome2/ruby-gnome2/issues/758#issuecomment-217643682

It is much preferable that you can help the upstream.

Comment 10 Mamoru TASAKA 2016-08-25 02:51:43 UTC
Looks like this is libffi issue...

Comment 11 Mamoru TASAKA 2016-08-25 02:53:02 UTC
Created attachment 1193851 [details]
s390x libffi size issue fix trial

For s390x, the attached patch seems okay.
If the test fails on ppc64, similar fix may be needed.

Comment 12 Mamoru TASAKA 2016-08-25 02:55:27 UTC
After applying the above patch on libffi, the test suite on this bug goes like:

--------------------------------------------------------------------------------
2016-08-25 02:48:22 +0000 running test for /builddir/build/TEMP/ruby-gnome2/git/ruby-gnome2/gtk3
--------------------------------------------------------------------------------
Loaded suite test
Started
....O
===============================================================================
XSETTINGS is required. [test: custom type(TestGdkScreen::#get_setting)]
/builddir/build/TEMP/ruby-gnome2/git/ruby-gnome2/gtk3/test/test-gdk-screen.rb:36:in `block (2 levels) in <class:TestGdkScreen>'
===============================================================================
O
===============================================================================
XSETTINGS is required. [test: no type(TestGdkScreen::#get_setting)]
/builddir/build/TEMP/ruby-gnome2/git/ruby-gnome2/gtk3/test/test-gdk-screen.rb:25:in `block (2 levels) in <class:TestGdkScreen>'
===============================================================================
..................................................................GLib-GIO-Message: Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.
.............
........................................................../builddir/build/TEMP/ruby-gnome2/git/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb: line 577
   Gtk-WARNING **:(gtkicontheme.c:2184):gtk_icon_theme_choose_icon: runtime check failed: ((flags & GTK_ICON_LOOKUP_GENERIC_FALLBACK) == 0)
/builddir/build/TEMP/ruby-gnome2/git/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb: line 577
   Gtk-WARNING **:(gtkicontheme.c:2184):gtk_icon_theme_choose_icon: runtime check failed: ((flags & GTK_ICON_LOOKUP_GENERIC_FALLBACK) == 0)
../builddir/build/TEMP/ruby-gnome2/git/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb: line 577
   Gtk-WARNING **:(gtkicontheme.c:5481):gtk_icon_theme_lookup_by_gicon_for_scale: runtime check failed: ((flags & GTK_ICON_LOOKUP_GENERIC_FALLBACK) == 0)
/builddir/build/TEMP/ruby-gnome2/git/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb: line 577
   Gtk-WARNING **:(gtkicontheme.c:2226):gtk_icon_theme_choose_icon_for_scale: runtime check failed: ((flags & GTK_ICON_LOOKUP_GENERIC_FALLBACK) == 0)
...................
......................./builddir/build/TEMP/ruby-gnome2/git/ruby-gnome2/gtk3/test/test-gtk-menu-item.rb:5:in `new': 'Gtk::MenuItem#initialize(label, use_underline=false)' style has been deprecated. Use 'Gtk::MenuItem#initialize(:label => label, :use_underline => use_underline)' style.
./builddir/build/TEMP/ruby-gnome2/git/ruby-gnome2/gtk3/test/test-gtk-menu-item.rb:10:in `new': 'Gtk::MenuItem#initialize(label, use_underline=false)' style has been deprecated. Use 'Gtk::MenuItem#initialize(:label => label, :use_underline => use_underline)' style.
.......................................................
.................../builddir/build/TEMP/ruby-gnome2/git/ruby-gnome2/gobject-introspection/lib/gobject-introspection/loader.rb: line 577
   Gtk-WARNING **:Style property "nonexistent" is not registered
............................................................
........................................................

Finished in 4.747157996 seconds.
------
378 tests, 444 assertions, 0 failures, 0 errors, 0 pendings, 2 omissions, 0 notifications
100% passed
------

Comment 13 Mamoru TASAKA 2016-08-25 03:30:08 UTC
libffi, not libfli...

Comment 14 Mamoru TASAKA 2016-08-25 05:56:20 UTC
libffi on PPC(64) uses different path (from s390(x) path), so different debugging is needed (i.e. if debugging on PPC64 is needed, access right to PPC64 machine is needed).

Also, maybe reading powerpc/linux64_closure.S (of libffi) is neeeded, which is too hard for me...

Comment 16 Mamoru TASAKA 2016-08-31 14:20:47 UTC
After reading libffi documentation, it turned out that this should be fixed in rubygem-gobject-introspection.

rubygem-gobject-introspection-3.0.9-2.fc26 should fix this. ppc64 / s390x people, would you check this?

Comment 17 Dan Horák 2016-08-31 14:29:55 UTC
(In reply to Mamoru TASAKA from comment #16)
> After reading libffi documentation, it turned out that this should be fixed
> in rubygem-gobject-introspection.
> 
> rubygem-gobject-introspection-3.0.9-2.fc26 should fix this. ppc64 / s390x
> people, would you check this?

sure, trying now ...

Comment 18 Dan Horák 2016-08-31 14:44:55 UTC
I can confirm s390x has now fixed rubygem-gtk3-3.0.9-1.fc26 (built using the new introspection package in buildroot) -
http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=2333092

Comment 19 Mamoru TASAKA 2016-09-01 14:07:22 UTC
(In reply to Dan Horák from comment #18)
> I can confirm s390x has now fixed rubygem-gtk3-3.0.9-1.fc26 (built using the
> new introspection package in buildroot) -
> http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=2333092

Thank you. Now I am waiting for ppc builder rebuild.

Comment 20 Dan Horák 2016-09-01 14:19:49 UTC
success as well - http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=3662257

Thanks for the fix.

Comment 21 Mamoru TASAKA 2016-09-02 05:17:05 UTC
Thank you for confirming!
I'll push fix for F-25. Do you need the same fix for F-24?

Comment 22 Fedora Update System 2016-09-02 05:19:23 UTC
rubygem-gobject-introspection-3.0.9-2.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2016-eca620a2f0

Comment 23 Dan Horák 2016-09-02 06:20:31 UTC
Although the fix is missing in F-24/F-23 too, there is no post-GA update in the GTK rubygem stack, so having it updated in F-25 is sufficient.

Comment 24 Mamoru TASAKA 2016-09-02 09:11:37 UTC
Okay, thanks.

(Just note: currently I have no plan to update ruby-gnome2 suite to 3.0.9 on F-24 and below, due to some changes on rubygem-gdk_pixbuf2)

Comment 25 Fedora Update System 2016-09-02 09:33:22 UTC
rubygem-gobject-introspection-3.0.9-2.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2016-eca620a2f0

Comment 26 Dan Horák 2016-09-02 09:49:39 UTC
(In reply to Mamoru TASAKA from comment #24)
> Okay, thanks.
> 
> (Just note: currently I have no plan to update ruby-gnome2 suite to 3.0.9 on
> F-24 and below, due to some changes on rubygem-gdk_pixbuf2)

that's fine

Comment 27 Fedora Update System 2016-09-03 03:53:51 UTC
rubygem-gobject-introspection-3.0.9-2.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-eca620a2f0

Comment 28 Fedora Update System 2016-09-06 18:21:20 UTC
rubygem-gobject-introspection-3.0.9-2.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.