Project

General

Profile

Actions

Bug #20167

open

Code execution isn't recorded in Ractor

Bug #20167: Code execution isn't recorded in Ractor

Added by shia (Sangyong Sim) almost 2 years ago. Updated 6 months ago.

Status:
Assigned
Assignee:
Target version:
-
[ruby-core:116104]

Description

reproduction code

# frozen-string-literal: true require "coverage" Coverage.start require_relative "./some_lib" # # some_lib.rb # class C # def hoge(i) # i # end # end r = Ractor.new do loop do v = Ractor.receive ret_v = C.new.hoge(v) Ractor.yield ret_v end end 2.times do |i| r << i r.take end Coverage.result.each do |file, lines| if file.include?("some_ractor_lib") if lines == [1, 1, 2, nil, nil] puts "OK" else puts "expected: [1, 1, 2, nil, nil]" puts "actual: #{lines.inspect}" end end end 

Target ruby version

3.2.0+ affected


Related issues 1 (1 open0 closed)

Updated by mame (Yusuke Endoh) almost 2 years ago Actions #1 [ruby-core:116108]

At this time, the coverage library should be able to only measure coverage for Ractor that invoked Coverage.start. (I have not tried but invoking Coverage.start in multiple Ractors may cause fatal problems.)

To improve this situation, probabily we need the following big modification.

  • Covearge.start registers hooks to all existing Ractors.
  • The hook measures coverage data per Ractor, not globally.
  • Coverage.result aggregates all coverage data from every Ractor.

Updated by jeremyevans0 (Jeremy Evans) almost 2 years ago Actions #2

  • Is duplicate of Bug #20158: Ractor affects Coverage results added

Updated by jhawthorn (John Hawthorn) 6 months ago Actions #3

  • Assignee set to ractor

Updated by hsbt (Hiroshi SHIBATA) 6 months ago Actions #4

  • Status changed from Open to Assigned
Actions

Also available in: PDF Atom