From: chopraanmol1@... Date: 2018-09-11T05:16:10+00:00 Subject: [ruby-core:88943] [Ruby trunk Bug#15082] Memory leak in net/http/response and net/http/header Issue #15082 has been updated by chopraanmol1 (Anmol Chopra). @alexis Look into this PR https://github.com/SamSaffron/memory_profiler/pull/59 Once merged this PR should fix the issue you faced. I think this can be closed now. ---------------------------------------- Bug #15082: Memory leak in net/http/response and net/http/header https://bugs.ruby-lang.org/issues/15082#change-73981 * Author: alexis (Alexis Bernard) * Status: Open * 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: