Issue #14929 has been updated by usa (Usaku NAKAMURA).
Backport changed from 2.3: REQUIRED, 2.4: REQUIRED, 2.5: REQUIRED to 2.3: REQUIRED, 2.4: DONE, 2.5: REQUIRED
ruby_2_4 r64561 merged revision(s) 64007,64019,64020.
----------------------------------------
Bug #14929: [PATCH] thread.c (do_select): fix leak on exception
https://bugs.ruby-lang.org/issues/14929#change-73749
* Author: normalperson (Eric Wong)
* Status: Closed
* Priority: Normal
* Assignee:
* Target version:
* ruby -v:
* Backport: 2.3: REQUIRED, 2.4: DONE, 2.5: REQUIRED
----------------------------------------
```
thread.c (do_select): fix leak on exception
When do_select is interrupted and raise happens from
RUBY_VM_CHECK_INTS_BLOCKING, the original FD sets we copied
do not get freed, leading to a memory leak. Wrap up all the
FD sets into a Ruby object to ensure the GC can release an
allocations made for rb_fdset_t.
This leak existed since Ruby 2.0.0 (r36430)
```
I found this bug because I was tracking down a problem
while working on timer-thread elimination.
---Files--------------------------------
0001-thread.c-do_select-fix-leak-on-exception.patch (3.87 KB)
--
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>