[#377882] remove array bracket — Kamarulnizam Rahim <niezam54@...>

Hi when i run my script, the output is as followed:

18 messages 2011/02/02

[#378046] Setter method for Hash value — Rolf Pedersen <rolfhsp@...>

Hi

20 messages 2011/02/03
[#378052] Re: Setter method for Hash value — Brian Candler <b.candler@...> 2011/02/03

Rolf Pedersen wrote in post #979431:

[#378056] Re: Setter method for Hash value — Rolf Pedersen <rolfhsp@...> 2011/02/03

Hi Brian (and others who have contributed with suggestions along the same

[#378144] C extension: How to check if a VALUE is still alive (not being GC'ed)? — Iñaki Baz Castillo <ibc@...>

Hi, I'm coding an async DNS resolver for EventMachine based on udns (a

13 messages 2011/02/05
[#378171] Re: C extension: How to check if a VALUE is still alive (not being GC'ed)? — Tony Arcieri <tony.arcieri@...> 2011/02/06

On Sat, Feb 5, 2011 at 4:02 PM, Iki Baz Castillo <ibc@aliax.net> wrote:

[#378179] Re: C extension: How to check if a VALUE is still alive (not being GC'ed)? — Iñaki Baz Castillo <ibc@...> 2011/02/06

2011/2/6 Tony Arcieri <tony.arcieri@medioh.com>:

[#378199] Choosing an office suite — Hilary Bailey <my77elephants@...>

I am trying to decide which office suite to choose from. The only

30 messages 2011/02/07
[#378229] Re: Choosing an office suite — Phillip Gawlowski <cmdjackryan@...> 2011/02/07

On Mon, Feb 7, 2011 at 11:15 AM, Hilary Bailey <my77elephants@gmail.com> wrote:

[#378202] making hash key from arrays — Arihan Sinha <arihan_sinha@...>

Hi All,

11 messages 2011/02/07

[#378254] "permission denied" happening too often — Peter Bailey <pbailey@...>

Hello,

15 messages 2011/02/08
[#378256] Re: "permission denied" happening too often — Anurag Priyam <anurag08priyam@...> 2011/02/08

> I've got Ruby scripts that have been working fine for years now. But,

[#378257] Re: "permission denied" happening too often — Markus Schirp <mbj@...> 2011/02/08

You can also try to strace your script. In the logs you'll find the system

[#378259] Re: "permission denied" happening too often — Peter Bailey <pbailey@...> 2011/02/08

Markus Schirp wrote in post #980289:

[#378307] undefined class/module YAML::PrivateType - Error — "Priya D." <dharsininitt@...>

Hi,

11 messages 2011/02/09

[#378341] System calls with ` in parameters — "Gerad S." <geradstemke@...>

Hi All,

12 messages 2011/02/09

[#378618] Defining class methods — Tony Arcieri <tony.arcieri@...>

It seems there are 3 ways of defining class methods (at least in common

12 messages 2011/02/16

[#378685] LiveAST: a pure Ruby 1.9.2 library obtaining live abstract syntax trees — "James M. Lawrence" <quixoticsycophant@...>

= LiveAST

13 messages 2011/02/18

[#378753] posix_mq : Problem installing on HPUX — Tadeusz Bochan <tad.bochan@...>

Hello,

13 messages 2011/02/20

[#378890] a, b = Array.new(2).map!{|x| data.dup} — Stefan Salewski <mail@...>

I think I can replace this code

19 messages 2011/02/23
[#378892] Re: a, b = Array.new(2).map!{|x| data.dup} — niklas | brueckenschlaeger <niklas@...> 2011/02/23

Are you sure you can't rework your code to *not* copy data 5x? I assume

[#378899] Re: a, b = Array.new(2).map!{|x| data.dup} — Stefan Salewski <mail@...> 2011/02/23

On Thu, 2011-02-24 at 07:00 +0900, niklas | brueckenschlaeger wrote:

[#378941] Automatic question generator libs in Ruby Language — Sniper Abandon <sathish.salem.1984@...>

is there any Automatic question generator libraries in Ruby Language ?

20 messages 2011/02/24
[#379058] Re: Automatic question generator libs in Ruby Language — Sniper Abandon <sathish.salem.1984@...> 2011/02/27

suppose if i have a paragraph (arround 250 words)

[#379172] Re: Automatic question generator libs in Ruby Language — Shadowfirebird <shadowfirebird@...> 2011/03/01

> i want to get all the possible question from that paragraph

[#379174] Re: Automatic question generator libs in Ruby Language — Peter Zotov <whitequark@...> 2011/03/01

On Tue, 1 Mar 2011 19:31:36 +0900, Shadowfirebird wrote:

[#379175] Re: Automatic question generator libs in Ruby Language — Adam Prescott <mentionuse@...> 2011/03/01

On Tue, Mar 1, 2011 at 10:55 AM, Peter Zotov <whitequark@whitequark.org>wrote:

[#379177] Re: Automatic question generator libs in Ruby Language — Peter Zotov <whitequark@...> 2011/03/01

On Tue, 1 Mar 2011 20:02:13 +0900, Adam Prescott wrote:

[#379179] Re: Automatic question generator libs in Ruby Language — Adam Prescott <mentionuse@...> 2011/03/01

On Tue, Mar 1, 2011 at 12:28 PM, Peter Zotov <whitequark@whitequark.org>wrote:

[#378949] why is $1 in a grep() equal to nil? — 7stud -- <bbxx789_05ss@...>

class DataSource

16 messages 2011/02/24
[#378953] Re: why is $1 in a grep() equal to nil? — Eric Christopherson <echristopherson@...> 2011/02/25

On Thu, Feb 24, 2011 at 2:59 PM, 7stud -- <bbxx789_05ss@yahoo.com> wrote:

[#378958] parsing rule for this code? — 7stud -- <bbxx789_05ss@...>

1)

11 messages 2011/02/25

[#379000] Symbol#to_proc helping out with #select to beat Scala-s solution — Jarmo Pertman <jarmo.p@...>

Hey!

9 messages 2011/02/25

[#379074] finding a tag in a binary file — rob stanton <tnotnats@...>

I have a binary file in which I'd like to find multiple strings of 10

12 messages 2011/02/27

Re: Memory leak in 1.9.2-p330?

From: Tal Yalon <tal.yalon@...>
Date: 2011-02-09 07:58:52 UTC
List: ruby-talk #378309
Okay,

I ran your code on 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin10.5.0],
and it did not crash, although interestingly enough it did produce the same
leak that I've experienced on 1.9.2-p302!

BTW on my 1.9.2-p302 it didn't ran fine - it didn't crash, but leaked -
exactly which version of 1.9 were you using?

Now, to get things even more interesting, I took your code (that leaked on
both ruby versions I have) and moved the "max_items = [ max_items,
queue.size ].max" line to be before the if() condition. This corrects a
potential bug where max_items would be calculated every second, missing
theoretical spikes in the queue size. Below is the modified code.

Running that code for a few minutes on both versions did _not_ produce any
leak whatsoever... So this is very strange indeed. Can you verify that it
works for you too?

#!/usr/bin/env ruby

time_to_print = Time.now

i = max_rss = max_items = 0

queue = []

while true
 start = Time.now
 interval = 2 # seconds

 queue << start

 while !queue.empty? && (Time.now - queue.first) > interval
  queue.shift
 end

 # MOVED max_items CALC TO HERE
 max_items = [ max_items, queue.size ].max
 if Time.now - time_to_print >= 0
  rss = `ps -o rss= -p #{Process.pid}`.to_i
  max_rss = [ max_rss, rss].max
  puts "#{start.to_i} iters=#{i} queue_size=#{queue.size} rss=#{rss} max
queue_size=#{max_items} rss=#{max_rss}"
  time_to_print = Time.now + 1
 end

 i += 1
end


On Tue, Feb 8, 2011 at 7:57 PM, Adam Prescott <mentionuse@gmail.com> wrote:

> On Tue, Feb 8, 2011 at 3:07 PM, Tal Yalon <tal.yalon@gmail.com> wrote:
>
> > Hi all,
> >
> > Before I go and submit a bug report, I would appreciate a fresh pair of
> > eyes
> > hopefully finding a bug in the code and not in Ruby :)
> >
> > The code pushes elements to a "time window" queue of 2 seconds. Although
> I
> > see that the maximum queue size stabilizes after a very short time
> (couple
> > of seconds), the process's max RSS size starts to grow after a while 2
> > minutes.
> > Interestingly enough, the max RSS size stays fixed when running with
> 1.8.7.
> > All tests were done on Ruby compiled using rvm.
> >
> > Printing the process's RSS and max RSS size was done to observe the leak
> in
> > action, This code also leaks when removing the lines that execute ps and
> > print it.
> >
> > Any idea will be welcomed.
> >
> > Thanks,
> > Tal
> >
> > #!/usr/bin/env ruby
> >
> > before = Time.now.to_i
> > i = 0
> > max_rss = 0
> > max_items = 0
> >
> > queue = []
> > while true
> >  now = Time.now.to_i
> >  windows_start_time = now - 2
> >  queue << now
> >  while not queue.empty? and queue[0] < windows_start_time
> >    queue.shift
> >  end
> >
> >  if now - before >= 1
> >    max_items = [ max_items, queue.size ].max
> >    rss = `ps -o rss= -p #{Process.pid}`.to_i
> >    max_rss = [ max_rss, rss].max
> >    print("#{now} iters=#{i} queue_size=#{queue.size} rss=#{rss}, max:
> > queue_size=#{max_items}, rss=#{max_rss}\n")
> >    before = now
> >  end
> >  i += 1
> > end
> >
>
> This is the error I was getting running your code:
>
> /tmp/orig:8: [BUG] Segmentation fault
> ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
>
> Abort trap
>
> In 1.9 it was running fine, as you said.
>
> I was having some trouble reading your code so I did some tidying to get
> this:
>
>
>
> time_to_print = Time.now
>
> i = max_rss = max_items = 0
>
> queue = []
>
> while true
>  start = Time.now
>  interval = 2 # seconds
>
>  queue << start
>
>  while !queue.empty? && (Time.now - queue.first) > interval
>   queue.shift
>  end
>
>  if Time.now - time_to_print >= 0
>    max_items = [ max_items, queue.size ].max
>   rss = `ps -o rss= -p #{Process.pid}`.to_i
>   max_rss = [ max_rss, rss].max
>    puts "#{start.to_i} iters=#{i} queue_size=#{queue.size} rss=#{rss} max
> queue_size=#{max_items} rss=#{max_rss}"
>    time_to_print = Time.now + 1
>  end
>
>  i += 1
> end
>
>
> The inner conditional chunk uses a Time.now in the comparison against
> time_to_print, whereas before it hooked into now and before. It's also
> using
> Time instances and not working off just integers.
>
> However, this code now works fine on 1.8.7 and 1.9, for me.
>
> Maybe this could highlight whatever is causing the bug in 1.8.7 in the
> original code? Personally, I'm just more confused as to what might be
> causing it!
>

In This Thread

Prev Next