Issue #17020 has been updated by byroot (Jean Boussier).


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.

----------------------------------------
Bug #17020: ObjectSpace.trace_object_allocations_stop raises if called before trace_object_allocations_start
https://bugs.ruby-lang.org/issues/17020#change-86470

* Author: byroot (Jean Boussier)
* Status: Open
* Priority: Normal
* Assignee: byroot (Jean Boussier)
* ruby -v: ruby 2.5.8p224 (2020-03-31 revision 67882) [x86_64-darwin19]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
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)
```

Patch: https://github.com/ruby/ruby/pull/3001



-- 
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>