hightower2

Activity Graph

Page 1 of 4 | Next »

2019-07-08

[07:21:37] hightower2: Ping timeout: 248 seconds

2019-07-07

[00:18:15] hightower2: Ping timeout: 268 seconds
[00:30:52] hightower2: has joined #ruby
[12:26:42] hightower2: Ping timeout: 245 seconds
[12:39:31] hightower2: has joined #ruby
[17:54:03] hightower2: Hey what's the simplest way to do glob matching on strings?
[19:33:53] hightower2: yeah, could abuse that, thanks

2019-07-06

[19:15:40] hightower2: has joined #ruby
[19:17:08] hightower2: Hey what's a good library for finding files on disk, filtering by pattern, etc.
[19:19:41] hightower2: well, might go with Dir's functionality

2019-06-27

[07:03:56] hightower2: Ping timeout: 258 seconds

2019-06-26

[20:29:53] hightower2: has joined #RubyOnRails
[20:29:53] hightower2: has joined #ruby

2019-06-25

[01:21:03] hightower2: Ping timeout: 244 seconds

2019-06-24

[14:06:57] hightower2: has joined #RubyOnRails
[14:06:57] hightower2: has joined #ruby
[16:02:07] hightower2: Ping timeout: 245 seconds
[23:16:54] hightower2: has joined #ruby
[23:16:55] hightower2: has joined #RubyOnRails
[23:17:09] hightower2: What's the standard File::Find module in ruby?
[23:19:04] hightower2: just checked it, thanks. Still looking for a more robust/capable version though, if anyone is aware of one
[23:20:40] hightower2: various extra options, although just looking for more convenience and less code that I have to write. I don't argue that Find can be made to work any way a person wants, if extra code around it is added
[23:21:53] hightower2: primarily I'd like for it to be able to automatically filter files found based on some regexes or globs, etc.
[23:22:03] hightower2: but as mentioned, it's nothing that can't be added manually with a couple more lines
[23:26:00] hightower2: nice one, thanks
[23:28:08] hightower2: yep, good one. Need the full path in my case

2019-06-13

[20:19:32] hightower2: has joined #ruby
[20:19:32] hightower2: Changing host
[20:19:32] hightower2: has joined #ruby
[20:48:02] hightower2: Ping timeout: 272 seconds
[21:00:45] hightower2: has joined #ruby
[21:34:17] hightower2: Ping timeout: 268 seconds

2019-06-11

[21:51:08] hightower2: has joined #ruby
[21:51:26] hightower2: has joined #ruby
[21:51:26] hightower2: Changing host
[21:58:24] hightower2: Ping timeout: 248 seconds

2019-06-09

[16:38:43] hightower2: has joined #ruby
[16:38:43] hightower2: Changing host
[16:38:43] hightower2: has joined #ruby
[16:47:31] hightower2: Ping timeout: 252 seconds

2019-06-08

[22:01:11] hightower2: has joined #ruby
[22:51:39] hightower2: Ping timeout: 248 seconds

2019-06-07

[02:25:48] hightower2: Ping timeout: 258 seconds
[07:17:55] hightower2: has joined #ruby
[13:38:31] hightower2: Ping timeout: 246 seconds

2019-06-06

[00:06:29] hightower2: Ping timeout: 258 seconds
[05:38:38] hightower2: has joined #ruby
[07:10:54] hightower2: Ping timeout: 272 seconds
[08:55:45] hightower2: has joined #ruby
[19:33:21] hightower2: Ping timeout: 258 seconds
[22:19:26] hightower2: has joined #ruby

2019-06-05

[21:49:45] hightower2: has joined #ruby

2019-06-04

[10:01:22] hightower2: has joined #ruby
[21:52:54] hightower2: Ping timeout: 258 seconds

2019-05-28

[05:53:52] hightower2: has joined #ruby
[15:30:42] hightower2: Ping timeout: 272 seconds

2019-05-27

[08:30:06] hightower2: has joined #RubyOnRails
[08:30:06] hightower2: has joined #ruby
[08:49:46] hightower2: Ping timeout: 252 seconds

2019-05-26

[05:48:47] hightower2: has joined #ruby
[09:33:44] hightower2: Ping timeout: 272 seconds
[09:50:10] hightower2: has joined #ruby
[10:41:43] hightower2: Ping timeout: 245 seconds
[15:15:43] hightower2: has joined #ruby
[18:13:31] hightower2: Ping timeout: 268 seconds

2019-05-25

[21:07:40] hightower2: has joined #ruby
[21:17:49] hightower2: has joined #ruby
[21:17:49] hightower2: Changing host
[21:41:55] hightower2: Ping timeout: 258 seconds

2019-05-24

[00:57:04] hightower2: Ping timeout: 252 seconds
[06:48:57] hightower2: has joined #ruby
[06:49:35] hightower2: has joined #ruby
[06:49:35] hightower2: Changing host
[09:51:42] hightower2: Ping timeout: 272 seconds

2019-05-23

[08:45:46] hightower2: Ping timeout: 252 seconds
[13:48:21] hightower2: has joined #RubyOnRails
[13:48:21] hightower2: has joined #ruby

2019-05-22

[13:47:06] hightower2: has joined #RubyOnRails
[13:47:06] hightower2: has joined #ruby

2019-05-21

[03:34:01] hightower2: Ping timeout: 246 seconds
[06:40:37] hightower2: has joined #ruby
[09:47:22] hightower2: Read error: Connection reset by peer

2019-05-20

[21:21:22] hightower2: has joined #RubyOnRails
[21:21:22] hightower2: has joined #ruby

2019-05-16

[06:25:28] hightower2: Ping timeout: 245 seconds

2019-05-15

[22:18:57] hightower2: has joined #RubyOnRails
[22:18:57] hightower2: has joined #ruby
[22:30:52] hightower2: Ping timeout: 255 seconds
[22:34:12] hightower2: has joined #ruby

2019-05-13

[09:54:56] hightower2: has joined #ruby
[16:09:13] hightower2: Ping timeout: 245 seconds
[17:22:19] hightower2: has joined #RubyOnRails
[17:22:19] hightower2: has joined #ruby
[22:30:03] hightower2: Ping timeout: 245 seconds

2019-05-12

[05:52:13] hightower2: Ping timeout: 268 seconds
[06:01:16] hightower2: has joined #ruby
[06:01:35] hightower2: has joined #ruby
[06:01:35] hightower2: Changing host
[07:50:25] hightower2: Ping timeout: 246 seconds
[09:32:48] hightower2: has joined #ruby
[11:30:09] hightower2: Ping timeout: 268 seconds
[18:31:06] hightower2: has joined #ruby
[22:29:37] hightower2: Ping timeout: 246 seconds

2019-05-11

[22:26:37] hightower2: has joined #ruby

2019-05-10

[18:33:37] hightower2: has joined #RubyOnRails
[18:33:37] hightower2: has joined #ruby
[18:35:52] hightower2: Remote host closed the connection
[18:36:36] hightower2: has joined #RubyOnRails
[18:36:36] hightower2: has joined #ruby
[18:36:55] hightower2: Max SendQ exceeded
[18:37:55] hightower2: has joined #ruby
[18:38:19] hightower2: has joined #ruby
[18:38:19] hightower2: Changing host
[20:27:46] hightower2: Remote host closed the connection
[20:52:19] hightower2: has joined #RubyOnRails
[20:52:19] hightower2: has joined #ruby
[22:29:12] hightower2: Ping timeout: 245 seconds

2019-05-09

[04:02:58] hightower2: has joined #ruby
[06:19:18] hightower2: Ping timeout: 258 seconds

2019-05-06

[05:05:43] hightower2: has joined #ruby
[05:11:25] hightower2: Ping timeout: 246 seconds
[06:49:38] hightower2: has joined #ruby
[10:31:14] hightower2: Ping timeout: 252 seconds
[14:28:05] hightower2: has joined #ruby
[14:53:23] hightower2: Ping timeout: 245 seconds
[16:33:47] hightower2: has joined #ruby
[20:06:59] hightower2: has joined #ruby
[20:06:59] hightower2: Changing host
[20:07:01] hightower2: has joined #RubyOnRails
[22:29:03] hightower2: Ping timeout: 246 seconds

2019-05-05

[16:01:31] hightower2: has joined #RubyOnRails
[16:01:31] hightower2: has joined #ruby
[21:13:22] hightower2: Ping timeout: 245 seconds

2019-05-02

[03:09:21] hightower2: has joined #ruby
[05:23:29] hightower2: Ping timeout: 244 seconds
[07:38:08] hightower2: has joined #ruby
[15:17:12] hightower2: Ping timeout: 246 seconds
[19:53:21] hightower2: has joined #ruby
[22:28:52] hightower2: Ping timeout: 246 seconds

2019-05-01

[22:25:49] hightower2: has joined #ruby
[23:31:18] hightower2: Ping timeout: 245 seconds

2019-04-30

[00:23:54] hightower2: has joined #ruby
[00:29:18] hightower2: has joined #ruby
[00:29:18] hightower2: Changing host
[00:29:19] hightower2: has joined #RubyOnRails
[00:53:23] hightower2: Ping timeout: 245 seconds
[05:57:21] hightower2: has joined #ruby
[06:19:50] hightower2: has joined #ruby
[06:19:50] hightower2: Changing host
[06:19:51] hightower2: has joined #RubyOnRails
[10:23:48] hightower2: Ping timeout: 250 seconds
[12:34:47] hightower2: has joined #ruby
[12:44:37] hightower2: has joined #ruby
[12:44:37] hightower2: Changing host
[12:44:39] hightower2: has joined #RubyOnRails
[17:24:34] hightower2: Ping timeout: 250 seconds
[19:14:26] hightower2: has joined #RubyOnRails
[19:14:26] hightower2: has joined #ruby
[22:29:08] hightower2: Ping timeout: 268 seconds

2019-04-29

[05:48:09] hightower2: has joined #ruby
[05:54:18] hightower2: Ping timeout: 250 seconds
[07:32:48] hightower2: has joined #ruby
[08:02:40] hightower2: has joined #ruby
[08:02:40] hightower2: Changing host
[08:02:41] hightower2: has joined #RubyOnRails
[10:49:08] hightower2: Ping timeout: 244 seconds
[12:52:38] hightower2: has joined #ruby
[15:28:47] hightower2: Ping timeout: 245 seconds
[17:25:54] hightower2: has joined #ruby
[18:24:44] hightower2: Ping timeout: 255 seconds

2019-04-28

[18:21:32] hightower2: has joined #ruby
[22:55:10] hightower2: Ping timeout: 246 seconds

2019-04-27

[05:37:14] hightower2: Ping timeout: 258 seconds
[05:48:06] hightower2: has joined #ruby
[08:52:30] hightower2: has joined #RubyOnRails
[08:52:30] hightower2: has joined #ruby
[08:52:30] hightower2: Changing host
[18:24:40] hightower2: Ping timeout: 258 seconds

2019-04-26

[05:45:10] hightower2: has joined #ruby
[10:39:14] hightower2: has joined #ruby
[10:39:14] hightower2: Changing host
[10:39:15] hightower2: has joined #RubyOnRails
[15:02:52] hightower2: Ping timeout: 246 seconds
[20:54:59] hightower2: has joined #ruby
[21:14:12] hightower2: Changing host
[21:14:13] hightower2: has joined #RubyOnRails
[21:14:13] hightower2: has joined #ruby

2019-04-25

[09:18:14] hightower2: has joined #RubyOnRails
[09:18:14] hightower2: has joined #ruby
[10:54:37] hightower2: pradiprwt, it depends a lot why/how the leak is happening. You first need to run GC.start at some point in the code (or in-process irb/pry shell, if you provisioned one) to see if the memory use is real or not (i.e. if memory use is high after GC.start then the leak may be real)
[10:55:52] hightower2: then, you need to see whether your project uses some bindings to some libraries, and try to identify likely cause of the leak (what objects are not getting freed in Ruby due to reference count not dropping to 0, or what objects do get destroyed in ruby without also destroying the memory they allocated in/via libraries and bindings)
[10:56:34] hightower2: Also, in Ruby there is a class named ObjectSpace, you can iterate through it and count how many of each object you have, and which objects are growing in count
[10:57:08] hightower2: Through this process, you might even find out that your memory leak is not serious (i.e. not in libs/bindings) but simply because you are not removing some Ruby objects
[10:58:12] hightower2: And also as one of basic things, check that you use "# frozen_string_literals: true" on top of Ruby files, so that when you call lines like "var = 'string'" it would not actually create/allocate a new ruby string object on every pass through that function/line.
[10:59:01] hightower2: This will help you reduce the churn (creating/destroying thousands of objects) regardless of whether it will help the memory leak or not
[11:00:45] hightower2: And finally, you will probably not be able to completely prevent Ruby's memory size from growing over long term (weeks/months of runtime), so you will want to implement some sort of solution for being able to transparently restart processes without user impact.
[11:17:52] hightower2: I don't know offhand
[11:18:52] hightower2: pradiprwt, yeah, with GC.start and inspecting the ObjectSpace you will be able to determine whether the issue is just in Ruby objects being accumulated somewhere (and therefore never freed/destroyed). If you see that even after calling GC.start the count of some objects in ObjectSpace is growing, then you simply need to find where in the code these objects are getting accumulated instead of deleted/nil-ed
[11:20:05] hightower2: And if you find that the issue is not there, that is, if the issue is in some memory from bindings/libraries remaining allocated, then you most probably just need to figure out which destroy functions you need to call before you delete Ruby objects which used those bindings.
[11:20:27] hightower2: pradiprwt, by the way, is your app using 'curb'? (Ruby bindings for curl)
[11:24:42] hightower2: ok, the leak is not related to curb then :)
[11:26:27] hightower2: pradiprwt, install 'pry', then at some point in your code run 'pry' and this will give you interactive prompt into the current app's process. From that prompt, first inspect ObjectSpace (there is even some ready-made function defined on ObjectSpace to print summary), then call GC.start, and then inspect ObjectSpace again
[11:27:11] hightower2: For example, you can run 'pry' from code after 10k iterations of some main function which you cal
[11:28:47] hightower2: pry; GC.start; ObjectSpace.count_objects; GC.start
[11:29:00] hightower2: See e.g. https://ruby-doc.org/core-2.6.3/ObjectSpace.html#method-c-count_objects
[11:29:26] hightower2: also if count_objects will give a too brief summary, you can run manually something like:
[11:30:45] hightower2: ObjectSpace.each_object{|o| count[o.class.to_s]+=1}; classes= count.keys; classes.sort!{ |a,b| count[b] <=> count[a]}; warn classes.map{ |c| [ c, count[c]]}.inspect
[11:31:06] hightower2: (and do "count= Hash.new 0" before that line, to initialize "count")
[11:41:48] hightower2: pradiprwt, yes, you must have a running app... or some minimal reproducible example of your code which exhibits memory increase
[16:20:10] hightower2: Ping timeout: 250 seconds
[20:51:45] hightower2: has joined #ruby
[21:16:02] hightower2: Ping timeout: 258 seconds

2019-04-23

[13:36:26] hightower2: has joined #RubyOnRails
[13:36:26] hightower2: has joined #ruby
[15:58:46] hightower2: Ping timeout: 276 seconds

2019-04-22

[07:43:17] hightower2: has joined #RubyOnRails
[07:43:17] hightower2: has joined #ruby
[08:09:34] hightower2: Ping timeout: 246 seconds

2019-04-21

[18:15:42] hightower2: has joined #ruby
[20:52:33] hightower2: Ping timeout: 245 seconds

2019-04-20

[06:42:54] hightower2: has joined #ruby
[08:28:13] hightower2: Ping timeout: 268 seconds
[13:01:23] hightower2: has joined #ruby
[18:18:25] hightower2: Ping timeout: 246 seconds

2019-04-19

[07:40:37] hightower2: has joined #ruby
[19:17:58] hightower2: Ping timeout: 245 seconds

2019-04-18

[08:19:20] hightower2: has joined #ruby
[17:23:48] hightower2: Ping timeout: 245 seconds
[19:40:46] hightower2: has joined #ruby
[22:36:55] hightower2: Ping timeout: 268 seconds

2019-04-17

[05:49:24] hightower2: has joined #ruby
[05:56:22] hightower2: Ping timeout: 246 seconds
[05:59:56] hightower2: has joined #ruby
[06:07:12] hightower2: Ping timeout: 255 seconds
[08:50:26] hightower2: has joined #ruby
[18:51:43] hightower2: Ping timeout: 245 seconds
[20:51:47] hightower2: has joined #ruby
[21:40:53] hightower2: Ping timeout: 268 seconds

2019-04-16

[02:27:43] hightower2: Ping timeout: 268 seconds
[08:16:53] hightower2: has joined #ruby
[19:19:34] hightower2: Ping timeout: 250 seconds
[21:15:32] hightower2: has joined #ruby
[21:44:37] hightower2: Ping timeout: 246 seconds

2019-04-15

[07:50:49] hightower2: has joined #ruby
[07:50:50] hightower2: has joined #RubyOnRails
[15:10:51] hightower2: ryouba, as phaul says. initialize() is not executed on "class enter" but on/after object creation
[18:13:54] hightower2: Read error: Connection reset by peer
[18:14:55] hightower2: has joined #ruby

2019-04-13

[16:56:14] hightower2: Ping timeout: 268 seconds