From: usa@... Date: 2018-08-27T14:09:00+00:00 Subject: [ruby-core:88691] [Ruby trunk Bug#14929] [PATCH] thread.c (do_select): fix leak on exception 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: