[#116016] [Ruby master Bug#20150] Memory leak in grapheme clusters — "peterzhu2118 (Peter Zhu) via ruby-core" <ruby-core@...>
Issue #20150 has been reported by peterzhu2118 (Peter Zhu).
7 messages
2024/01/04
[#116382] [Ruby master Feature#20205] Enable `frozen_string_literal` by default — "byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Issue #20205 has been reported by byroot (Jean Boussier).
77 messages
2024/01/23
[ruby-core:116169] [Ruby master Bug#20158] Ractor affects Coverage results
From:
"mame (Yusuke Endoh) via ruby-core" <ruby-core@...>
Date:
2024-01-11 03:41:50 UTC
List:
ruby-core #116169
Issue #20158 has been updated by mame (Yusuke Endoh).
Status changed from Open to Assigned
Assignee set to ko1 (Koichi Sasada)
Thanks, I reproduce the problem successfully with rspec + Ractor + TracePoi=
nt (without coverage).
```ruby
# test_spec.rb
if ENV["RACTOR"] =3D=3D "1"
Ractor.new { nil }
p :ractor_enabled
else
p :ractor_disabled
end
$tp =3D TracePoint.new(:line) {|t| pp t }
$tp.enable
describe "foo" do
$tp.disable
end
```
Expected behavior: The last output should be the line of `$tp.disable` as f=
ollows.
```
$ RACTOR=3D0 rspec t_spec.rb
:ractor_disabled
...
#<TracePoint:line /home/mame/.rbenv/versions/ruby-dev/lib/ruby/gems/3.4.0+0=
/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:398 in `subclass'>
#<TracePoint:line /home/mame/work/ractor_coverage_repro/t_spec.rb:12>
#<TracePoint:line <internal:trace_point>:297 in `disable'>
No examples found.
Finished in 0.00022 seconds (files took 7.97 seconds to load)
0 examples, 0 failures
```
Actual result: Once Ractor mode is enabled, TracePoint stops firing in the =
middle of the process.
```
$ RACTOR=3D1 rspec t_spec.rb
:ractor_enabled
...
#<TracePoint:line /home/mame/.rbenv/versions/ruby-dev/lib/ruby/3.4.0+0/ruby=
gems/basic_specification.rb:208 in `internal_init'>
#<TracePoint:line /home/mame/.rbenv/versions/ruby-dev/lib/ruby/3.4.0+0/ruby=
gems/basic_specification.rb:209 in `internal_init'>
#<TracePoint:line /home/mame/.rbenv/versions/ruby-dev/lib/ruby/3.4.0+0/ruby=
gems/stub_specification.rb:73 in `initialize'>
#<TracePoint:line /home/mame/.rbenv/versions/ruby-dev/lib/ruby/3.4.0+0/ruby=
gems/stub_specification.rb:74 in `initialize'>
No examples found.
Finished in 0.00027 seconds (files took 0.101 seconds to load)
0 examples, 0 failures
```
Assigning to @ko1
----------------------------------------
Bug #20158: Ractor affects Coverage results
https://bugs.ruby-lang.org/issues/20158#change-106178
* Author: janosch-x (Janosch M=FCller)
* Status: Assigned
* Priority: Normal
* Assignee: ko1 (Koichi Sasada)
* ruby -v: ruby 3.3.0preview1 (2023-05-12 master a1b01e7701) [arm64-darwin2=
2]
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
I have a large rspec test suite. I found that if I call a Ractor, the Cover=
age results are strongly affected, i.e. almost all files appear to be uncov=
ered. This happens even if I only ever call a Ractor before the library or =
rspec are required.
Unfortunately, I was not able to build a simple repro yet.
I assume it is a timing thing and only affects larger suites, or it only ha=
ppens if there are multiple files, and maybe if the library lazily requires=
its sub-modules?
However, I guess this should produce the same results when added to the spe=
c_helper.rb of other large suites:
```ruby
# Ractor.new { nil } # uncomment this to affect coverage results
require 'coverage'
Coverage.start
# require library, set up rspec etc.=20
RSpec.configuration.after(:suite) do
# this number is greatly reduced and unstable when calling Ractor above
p Coverage.result.values.sum { |arr| arr.sum(&:to_i) }
end
```
I had this problem in [this library](https://github.com/jaynetics/character=
_set/). The problem affects simplecov users as well, as described [here](ht=
tps://github.com/simplecov-ruby/simplecov/issues/1058).
--=20
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-c=
ore.ml.ruby-lang.org/