Issue #11692 has been updated by Edgars Beigarts.


I'm having similia issue when running tests with capybara that starts additional server in a new thread.
If I have some problems in my rails app that raises SystemStackError in the server thread then I am left without a GC and memory just keeps growing and growing, I have tried manually calling GC.start after that, but it doesn't help, GC.stat dislays the same number for major/minor.

I was trying to create a simple example, but I run into other issues too.
Here is the example: https://gist.github.com/ebeigarts/933f1601332609ed33a8



----------------------------------------
Bug #11692: [PATCH] Re-enable GC if stack overflow was caught from signal handler
https://bugs.ruby-lang.org/issues/11692#change-54905

* Author: Alex Gaziev
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
We got ruby application running on our production server and noticed that it regularly crashes with out of memory errors.
After months of investigation, I narrowed the case to the examples (1/2). 
After digging ruby sources and running test code, I found out that GC stopped working after recovering from native stack overflow error.
Probably the relevant code appeared in 2.2 https://github.com/ruby/ruby/commit/0c391a55d3ed4637e17462d9b9b8aa21e64e2340
where ruby_disable_gc_stress became ruby_disable_gc.

Patches for trunk and 2.2 branches below.

---Files--------------------------------
example1.rb (311 Bytes)
example2.rb (333 Bytes)
re-enable-gc-after-stackoverflow-trunk.patch (985 Bytes)
re-enable-gc-after-stackoverflow-ruby-2-2.patch (985 Bytes)


-- 
https://bugs.ruby-lang.org/