Actions
Bug #17020
closedObjectSpace.trace_object_allocations_stop raises if called before trace_object_allocations_start
Description
The error is easy to reproduce:
e.g. on Ruby 2.3:
$ ruby -robjspace -e 'ObjectSpace.trace_object_allocations_stop'
-e:1:in `trace_object_allocations_stop': wrong argument type false (expected tracepoint) (TypeError)
from -e:1:in `<main>'
Up to ruby 2.7.1:
$ ruby -robjspace -e 'ObjectSpace.trace_object_allocations_stop'
Traceback (most recent call last):
1: from -e:1:in `<main>'
-e:1:in `trace_object_allocations_stop': wrong argument type false (expected tracepoint) (TypeError)
Updated by nobu (Nobuyoshi Nakada) about 4 years ago
- Assignee set to byroot (Jean Boussier)
A possible alternative might be an exception, I thought first, but it isn’t a single condition.
Could you add the test?
Updated by byroot (Jean Boussier) about 4 years ago
As explained in the PR, I have no idea how to write a regression test, because as long as ObjectSpace.trace_object_allocations_start
was called at least once in the program, it no longer fails afterwards. That is what led me to think it's a bug.
I can write test that calls trace_object_allocations_stop
but based on test ordering it might never fail on CI.
Updated by byroot (Jean Boussier) almost 4 years ago
I added a regression test using assert_separately
.
Updated by byroot (Jean Boussier) almost 4 years ago
I can't close, but this is fixed in a74df67244199d1fd1f7a20b49dd5a096d2a13a2
Updated by tenderlovemaking (Aaron Patterson) almost 4 years ago
- Status changed from Open to Closed
I merged. Thanks for the patch
Actions
Like0
Like0Like0Like0Like0Like0