[ruby-core:93654] [Ruby master Bug#15986] `TestJIT#test_block_handler_with_possible_frame_omitted_inlining` fails on s390x and armv7hl
From:
v.ondruch@...
Date:
2019-07-10 17:03:06 UTC
List:
ruby-core #93654
Issue #15986 has been updated by vo.x (Vit Ondruch).
Subject changed from `TestJIT#test_block_handler_with_possible_frame_omitted_inlining` fails on s390x and aarch64 to `TestJIT#test_block_handler_with_possible_frame_omitted_inlining` fails on s390x and armv7hl
File build-x86_64.log added
File build-armv7hl.log added
File build-s390x.log added
So this is my hacked up test case:
~~~
$ git diff
diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb
index 08494cbbbb..9ace7754d4 100644
--- a/test/ruby/test_jit.rb
+++ b/test/ruby/test_jit.rb
@@ -944,9 +944,15 @@ def assert_compile_once(script, result_inspect:, insns: [])
end
# Shorthand for normal test cases
- def assert_eval_with_jit(script, stdout: nil, success_count:, min_calls: 1, insns: [], uplevel: 3)
- out, err = eval_with_jit(script, verbose: 1, min_calls: min_calls)
+ def assert_eval_with_jit(script, stdout: nil, success_count:, min_calls: 2, insns: [], uplevel: 3)
+ out, err = eval_with_jit(script, verbose: 2, min_calls: min_calls, save_temps: true)
actual = err.scan(/^#{JIT_SUCCESS_PREFIX}:/).size
+ puts "", "**********", "* rb_mjit_min_header-2.7.0.h", "---", ""
+ $stdout.flush
+ puts File.read(".ext/include/x86_64-linux/rb_mjit_min_header-2.7.0.h")
+ # puts File.read(".ext/include/armv7hl-linux/rb_mjit_min_header-2.7.0.h")
+ # puts File.read(".ext/include/s390x-linux/rb_mjit_min_header-2.7.0.h")
+ Dir.glob('/tmp/*.c').each {|f| puts '**********', "* #{f}", "", File.read(f), "---"; $stdout.flush}
# Add --jit-verbose=2 logs for cl.exe because compiler's error message is suppressed
# for cl.exe with --jit-verbose=1. See `start_process` in mjit_worker.c.
if RUBY_PLATFORM.match?(/mswin/) && success_count != actual
~~~
And I run just the single test:
~~~
make test-all TESTS="test/ruby/test_jit.rb -n /test_block_handler_with_possible_frame_omitted_inlining/"
~~~
See the attached logs from s390x, armv7hl and x86_64 (apologies, some of the lines might be slightly intermingled but the build system, but I hope you can handle that).
BTW I was wrong saying that it fails on AArch64, because it actually fails on armv7hl
----------------------------------------
Bug #15986: `TestJIT#test_block_handler_with_possible_frame_omitted_inlining` fails on s390x and armv7hl
https://bugs.ruby-lang.org/issues/15986#change-79265
* Author: vo.x (Vit Ondruch)
* Status: Feedback
* Priority: Normal
* Assignee: k0kubun (Takashi Kokubun)
* Target version:
* ruby -v: ruby -v: ruby 2.7.0dev (2019-07-04T10:34:08Z master d9f8b88b47) [s390x-linux]
* Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN
----------------------------------------
I am trying to build the Ruby 2.7 snapshot for Fedora Rawhide [1], but I observe the following test failure on s390x and aarch64 platforms:
~~~
1) Failure:
TestJIT#test_block_handler_with_possible_frame_omitted_inlining [/builddir/build/BUILD/ruby-2.7.0-d9f8b88b47/test/ruby/test_jit.rb:846]:
Expected 2 times of JIT success, but succeeded 1 times.
script:
"""
def multiply(a, b)
a *= b
end
3.times do
p multiply(7.0, 10.0)
end
"""
stderr:
"""
JIT success (65.9ms): block in <main>@-e:6 -> /tmp/_ruby_mjit_p54157u0.c
gcc: fatal error: output filename may not be empty
compilation terminated.
Successful MJIT finish
"""
..
<2> expected but was
<1>.
Finished tests in 440.892116s, 47.2746 tests/s, 6150.4071 assertions/s.
~~~
[1]: https://koji.fedoraproject.org/koji/taskinfo?taskID=36030301
---Files--------------------------------
build-s390x.log (1.29 MB)
build-armv7hl.log (1.26 MB)
build-x86_64.log (1.28 MB)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>