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
cpu_time and allocations are 0 when JRuby is used #33471
Conversation
r? @kaspth (@rails-bot has picked a reviewer for you, use r? to override) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like it might silently break on MRI. Perhaps wrap these assertions in a conditional for JRuby?
Thanks for the review. Let me update the test case to handle if ruby is JRuby or CRuby. |
8d77b00
to
beebae0
Compare
@@ -80,10 +80,15 @@ def test_event_attributes | |||
instrument "some_event.my_log_subscriber" | |||
wait | |||
event = @log_subscriber.event | |||
if defined?(JRUBY_VERSION) | |||
assert_operator event.cpu_time, :>=, 0 | |||
assert_operator event.allocations, :>=, 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cpu_time
and allocations
always return 0, so assert_equal 0, ...
is preferable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the review and useful information. Updated and squashed.
According to rails#33449 and rails#33468, cpu_time and allocations are 0 when JRuby is used. ```ruby $ ruby -v jruby 9.2.1.0-SNAPSHOT (2.5.0) 2018-07-27 13b2df5 Java HotSpot(TM) 64-Bit Server VM 25.181-b13 on 1.8.0_181-b13 [linux-x86_64] $ bundle exec ruby -w -Itest test/log_subscriber_test.rb -n test_event_attributes Run options: -n test_event_attributes --seed 6231 F Failure: SyncLogSubscriberTest#test_event_attributes [test/log_subscriber_test.rb:84]: Expected 0 to be > 0. rails test test/log_subscriber_test.rb:78 Finished in 0.018983s, 52.6791 runs/s, 105.3582 assertions/s. 1 runs, 2 assertions, 1 failures, 0 errors, 0 skips ```
beebae0
to
d35b06e
Compare
if CLOCK_PROCESS_CPUTIME_ID is implemented on jruby some day, the test will fail. @kampio ? Correct me if I'm wrong and it's just some known restriction that can never be implemented on JVM |
I'm not sure about the restriction, but if CLOCK_PROCESS_CPUTIME_ID is implemented on jruby some day, I think we can just revert the #33468. |
Summary
According to #33449 and #33468, cpu_time and allocations are 0 when JRuby is used.
This pull request addresses the following failure with JRuby.