[#119000] [Ruby master Bug#20710] Reducing Hash allocation introduces large performance degradation (probably related to VWA) — "pocke (Masataka Kuwabara) via ruby-core" <ruby-core@...>

Issue #20710 has been reported by pocke (Masataka Kuwabara).

6 messages 2024/09/02

[#119033] [Ruby master Bug#20713] Ruby 3.3.5 triggers a deprecation warning with `require "json"` — "Bo98 (Bo Anderson) via ruby-core" <ruby-core@...>

Issue #20713 has been reported by Bo98 (Bo Anderson).

7 messages 2024/09/04

[#119041] [Ruby master Bug#20714] Handle optional dependencies in `bundled_gems.rb` — "Earlopain (A S) via ruby-core" <ruby-core@...>

Issue #20714 has been reported by Earlopain (A S).

31 messages 2024/09/04

[#119074] [Ruby master Bug#20716] Different instance_method behavior in Ruby 2.7 and Ruby 3.x — "natton (Tien Truong) via ruby-core" <ruby-core@...>

Issue #20716 has been reported by natton (Tien Truong).

13 messages 2024/09/06

[#119145] [Ruby master Misc#20728] Propose Eileen Uchitelle as a core committer — "kddnewton (Kevin Newton) via ruby-core" <ruby-core@...>

Issue #20728 has been reported by kddnewton (Kevin Newton).

14 messages 2024/09/12

[#119168] [Ruby master Feature#20738] Removing a specific entry from a hash literal — "ursm (Keita Urashima) via ruby-core" <ruby-core@...>

Issue #20738 has been reported by ursm (Keita Urashima).

16 messages 2024/09/13

[#119199] [Ruby master Bug#20742] Trying to assign to a variable in statement modifier should emit a warning — "esad (Esad Hajdarevic) via ruby-core" <ruby-core@...>

SXNzdWUgIzIwNzQyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGVzYWQgKEVzYWQgSGFqZGFyZXZpYyku

7 messages 2024/09/15

[#119208] [Ruby master Bug#20745] IO::Buffer#copy triggers UB when src/dest buffers overlap — "hanazuki (Kasumi Hanazuki) via ruby-core" <ruby-core@...>

Issue #20745 has been reported by hanazuki (Kasumi Hanazuki).

8 messages 2024/09/16

[#119239] [Ruby master Feature#20750] Expose ruby_thread_has_gvl_p in ruby/thread.h — "kbrock (Keenan Brock) via ruby-core" <ruby-core@...>

Issue #20750 has been reported by kbrock (Keenan Brock).

8 messages 2024/09/17

[#119248] [Ruby master Bug#20752] IO::Buffer#slice fails to copy readonly flag, allowing writes into frozen String — "hanazuki (Kasumi Hanazuki) via ruby-core" <ruby-core@...>

Issue #20752 has been reported by hanazuki (Kasumi Hanazuki).

7 messages 2024/09/18

[#119301] [Ruby master Bug#20761] [DOC] `RubyVM::AbstractSyntaxTree.of` examples raise because parser is prism by default — "Earlopain (A S) via ruby-core" <ruby-core@...>

Issue #20761 has been reported by Earlopain (A S).

11 messages 2024/09/26

[#119335] [Ruby master Bug#20770] A *new* pipe operator proposal — "AlexandreMagro (Alexandre Magro) via ruby-core" <ruby-core@...>

Issue #20770 has been reported by AlexandreMagro (Alexandre Magro).

56 messages 2024/09/29

[ruby-core:119140] Re: CPU-bound load affects the timeout thread

From: Benoit Daloze via ruby-core <ruby-core@...>
Date: 2024-09-12 16:26:17 UTC
List: ruby-core #119140
Could you report that to https://github.com/ruby/timeout/issues ?

On Thu, Sep 12, 2024 at 1:16=E2=80=AFPM yuri.kanivetsky--- via ruby-core <
ruby-core@ml.ruby-lang.org> wrote:

> Hi,
>
> I'm not sure if it's a bug. Take a look at the following gist:
>
> https://gist.github.com/x-yuri/253f76df6287441f64b5eaee418813c0
>
> It's supposedly a minimal reproducible example of what I ran into a coupl=
e
> of days ago. In my case it was basically a sort of a background jobs
> service. It received messages, processed them and sent the result to
> another service. Every message was processed and sent in a separate threa=
d.
> And it made a number of http requests as part of processing messages
> (net/http which uses timeout()).
>
> It worked normally for a couple of hours (10-20 threads), but at some
> point the number of threads reached the thread pool's max_threads (320),
> http requests started to time out (later then they should, after 60-100
> seconds instead of 3 seconds), and probably things started to get slow.
>
> Then I noticed the following line:
>
> patterns.any? { |pattern| quote.match(pattern['regex']) } ? 1 : 0
>
> It was performed for every quote (10 times) in every thread, there were
> 300+ patterns and they (pattern['regex']) were strings. I moved convertin=
g
> strings to regexps to initialization (before starting to accept messages
> and creating threads) and it seems to work now with ~10 active threads.
>
> I'm trying to understand what exactly happened and how to avoid it or wha=
t
> awaits me in the future. Is there some critical load that breaks things? =
I
> guess in theory the number of threads should increase linearly with the
> load. But it looks like in this case there's some critical load that just
> makes things stop working. Or maybe for some time some negative effects g=
et
> accumulated and then things break. My conjecture is that it has something
> to do with GIL. But what exactly happens? Or what can I do to further
> investigate the issue? I'm going to try to run ruby with RUBY_DEBUG_LOG a=
nd
> try to examine the debug output. I guess I need to figure out why the
> timeout thread doesn't always get enough time. Does something block the
> threads? How are they scheduled? When do they switch? Any pointers or lin=
ks
> to the code are welcome.
>
> Regards,
> Yuri
>  ______________________________________________
>  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/lists/ruby-core.ml.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/lists/ruby-core.ml.ruby-lang.org/

In This Thread

Prev Next