From: merch-redmine@... Date: 2019-06-17T23:13:26+00:00 Subject: [ruby-core:93212] [Ruby trunk Bug#15082] Memory leak in net/http/response and net/http/header Issue #15082 has been updated by jeremyevans0 (Jeremy Evans). Status changed from Open to Feedback alexis (Alexis Bernard) wrote: > I kept to investigate the memory leak issue. It seems it comes when OpenSSL::SSL::VERIFY_PEER is enabled and a ca_file is specified : I tried with your example with 2.7.0-preview1 and it is either not leaking or not leaking enough to be measurable in my tests. Can you try again with 2.7.0-preview1 and see if the leak has been resolved in your environment? ---------------------------------------- Bug #15082: Memory leak in net/http/response and net/http/header https://bugs.ruby-lang.org/issues/15082#change-78659 * Author: alexis (Alexis Bernard) * Status: Feedback * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux] * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- Hello, I'm observing a memory leak in net/http with the following script : ~~~ require "net/http" require "bundler/inline" gemfile do gem "memory_profiler" end def profile_http_get(n) uri = URI("http://www.ruby-lang.org/fr/") http = Net::HTTP.new(uri.host, uri.port) report = MemoryProfiler.report do n.times { http.request(Net::HTTP::Get.new(uri.path)) } end report.pretty_print end ~~~ Here is the MemoryProfiler report when n is 10 : ~~~ retained memory by gem ----------------------------------- 4591 net retained memory by file ----------------------------------- 4005 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb 586 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb retained memory by location ----------------------------------- 2048 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:55 1917 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:62 520 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb:83 66 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb:68 40 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:43 retained memory by class ----------------------------------- 4591 String retained objects by gem ----------------------------------- 67 net retained objects by file ----------------------------------- 53 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb 14 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb retained objects by location ----------------------------------- 27 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:55 25 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:62 13 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb:83 1 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb:68 1 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:43 retained objects by class ----------------------------------- 67 String ~~~ When n is 20 : ~~~ retained memory by gem ----------------------------------- 8229 net retained memory by file ----------------------------------- 7217 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb 1012 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb retained memory by location ----------------------------------- 3654 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:55 3523 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:62 880 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb:83 66 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb:68 66 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb:86 40 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:43 retained memory by class ----------------------------------- 8229 String retained objects by gem ----------------------------------- 119 net retained objects by file ----------------------------------- 95 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb 24 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb retained objects by location ----------------------------------- 48 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:55 46 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:62 22 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb:83 1 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb:68 1 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/header.rb:86 1 /home/alexis/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/net/http/response.rb:43 retained objects by class ----------------------------------- 119 String ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: