Project

General

Profile

Actions

Bug #20743

open

ruby doesn't properly split RUBY_DEBUG_LOG_FILTER into items

Added by x-yuri (Yuri Kanivetsky) 11 days ago. Updated 11 days ago.

Status:
Open
Assignee:
-
Target version:
-
ruby -v:
ruby 3.4.0dev (2024-09-15T01:06:11Z master 532af89e3b) +PRISM [x86_64-linux-musl]
[ruby-core:119201]

Description

$ docker run --rm alpine:3.20.3 sh -euxc '
    apk add git build-base autoconf ruby yaml-dev zlib-dev openssl-dev libffi-dev
    git clone https://github.com/ruby/ruby
    cd ruby
    git checkout 532af89e3b5b78dd3a6fe29c6cc64ad1b073afe2
    ./autogen.sh
    ./configure cflags=-DUSE_RUBY_DEBUG_LOG --disable-install-doc
    make -j8 install
    ruby -v
    RUBY_DEBUG_LOG=stderr RUBY_DEBUG_LOG_FILTER=rb_thread_schedule_limits,rb_ractor_thread_switch ruby -e ""
'
...
+ RUBY_DEBUG_LOG=stderr RUBY_DEBUG_LOG_FILTER=rb_thread_schedule_limits,rb_ractor_thread_switch ruby -e     
RUBY_DEBUG_LOG=stderr [stderr]                                                                                                               
RUBY_DEBUG_LOG_FILTER[0]=rb_thread_schedule_limit (all)                                                                                      
RUBY_DEBUG_LOG_FILTER[1]=rb_ractor_thread_switch (all)
...

As you can see ruby reports that RUBY_DEBUG_LOG_FILTER[0] equals rb_thread_schedule_limit, not rb_thread_schedule_limits.

This happens because here:
https://github.com/ruby/ruby/blob/532af89e3b5b78dd3a6fe29c6cc64ad1b073afe2/debug.c#L353
1 should not be subtracted.

Also in the following lines str is increased, but len is not decreased. It makes sense to recheck if there are no further mistakes.

Actions

Also available in: Atom PDF

Like0
Like0