hobodave

Activity Graph

Page 1 of 6 | Next »

2017-06-22

[16:23:04] hobodave: has joined #RubyOnRails
[16:23:21] hobodave: has joined #ruby
[18:29:27] hobodave: Quit: ["Textual IRC Client: www.textualapp.com"]

2017-06-21

[15:35:01] hobodave: has joined #ruby
[21:32:38] hobodave: Ping timeout: 260 seconds

2017-06-20

[14:25:48] hobodave: has joined #ruby
[14:26:09] hobodave: has joined #RubyOnRails
[17:13:39] hobodave: Quit: Computer has gone to sleep.
[17:15:22] hobodave: has joined #RubyOnRails
[17:15:28] hobodave: has joined #ruby
[17:49:35] hobodave: Quit: Computer has gone to sleep.
[19:12:34] hobodave: has joined #ruby
[19:13:11] hobodave: has joined #RubyOnRails
[19:23:42] hobodave: Quit: Computer has gone to sleep.
[19:29:05] hobodave: has joined #RubyOnRails
[19:29:31] hobodave: has joined #ruby
[21:14:43] hobodave: Quit: Computer has gone to sleep.

2017-06-19

[15:58:09] hobodave: has joined #ruby
[15:58:15] hobodave: has joined #RubyOnRails
[16:25:47] hobodave: Quit: Computer has gone to sleep.
[16:27:36] hobodave: has joined #RubyOnRails
[16:27:38] hobodave: has joined #ruby
[17:44:29] hobodave: Quit: Computer has gone to sleep.
[17:55:32] hobodave: has joined #ruby
[17:56:02] hobodave: has joined #RubyOnRails
[18:03:24] hobodave: Ping timeout: 260 seconds

2017-06-16

[15:41:31] hobodave: has joined #ruby
[19:21:27] hobodave: Quit: Computer has gone to sleep.
[19:31:27] hobodave: has joined #ruby
[20:36:09] hobodave: Ping timeout: 258 seconds

2017-06-15

[15:38:31] hobodave: has joined #ruby
[17:16:56] hobodave: Quit: Computer has gone to sleep.
[17:41:07] hobodave: has joined #ruby
[22:23:35] hobodave: Quit: Computer has gone to sleep.

2017-06-14

[01:52:51] hobodave: Quit: Computer has gone to sleep.
[15:59:57] hobodave: has joined #RubyOnRails
[16:00:07] hobodave: has joined #ruby
[22:58:08] hobodave: Ping timeout: 260 seconds

2017-06-13

[15:26:28] hobodave: has joined #ruby
[15:27:17] hobodave: has joined #RubyOnRails

2017-06-12

[16:34:24] hobodave: has joined #ruby
[16:34:34] hobodave: has joined #RubyOnRails
[18:06:18] hobodave: Ping timeout: 258 seconds
[18:52:53] hobodave: has joined #RubyOnRails
[18:53:20] hobodave: has joined #ruby
[19:56:09] hobodave: Quit: Computer has gone to sleep.
[20:06:50] hobodave: has joined #ruby
[20:08:31] hobodave: has joined #RubyOnRails
[21:29:57] hobodave: Ping timeout: 255 seconds

2017-06-09

[15:26:44] hobodave: has joined #ruby
[15:26:58] hobodave: has joined #RubyOnRails
[16:46:17] hobodave: Quit: Computer has gone to sleep.
[16:50:23] hobodave: has joined #RubyOnRails
[16:50:28] hobodave: has joined #ruby
[20:06:38] hobodave: Ping timeout: 260 seconds

2017-06-08

[11:24:38] hobodave: has joined #RubyOnRails
[11:24:45] hobodave: has joined #ruby
[13:01:19] hobodave: Quit: Computer has gone to sleep.
[14:22:07] hobodave: has joined #ruby
[14:35:28] hobodave: Quit: Computer has gone to sleep.
[14:40:32] hobodave: has joined #ruby
[15:17:30] hobodave: Quit: Computer has gone to sleep.
[15:19:55] hobodave: has joined #ruby
[18:24:20] hobodave: Ping timeout: 260 seconds
[20:56:28] hobodave: has joined #RubyOnRails
[20:58:44] hobodave: has joined #ruby
[21:10:11] hobodave: Quit: Computer has gone to sleep.
[22:53:54] hobodave: has joined #ruby
[22:54:04] hobodave: has joined #RubyOnRails
[22:57:38] hobodave: Client Quit

2017-06-07

[01:32:53] hobodave: Quit: Computer has gone to sleep.
[15:26:16] hobodave: has joined #ruby
[15:26:32] hobodave: has joined #RubyOnRails
[21:34:43] hobodave: Quit: Computer has gone to sleep.

2017-06-06

[15:40:33] hobodave: has joined #RubyOnRails
[15:40:51] hobodave: has joined #ruby
[19:03:08] hobodave: Ping timeout: 246 seconds
[20:02:53] hobodave: has joined #ruby
[20:03:18] hobodave: has joined #RubyOnRails
[21:57:38] hobodave: Quit: Computer has gone to sleep.
[23:39:00] hobodave: has joined #ruby
[23:39:11] hobodave: has joined #RubyOnRails

2017-06-05

[16:17:38] hobodave: has joined #ruby
[16:17:46] hobodave: has joined #RubyOnRails
[16:53:46] hobodave: Quit: Computer has gone to sleep.
[16:55:56] hobodave: has joined #ruby
[16:56:20] hobodave: has joined #RubyOnRails
[18:08:18] hobodave: Ping timeout: 240 seconds
[19:32:19] hobodave: has joined #RubyOnRails
[19:32:39] hobodave: has joined #ruby
[20:48:42] hobodave: Ping timeout: 258 seconds

2017-05-31

[16:14:08] hobodave: has joined #ruby
[16:14:30] hobodave: has joined #RubyOnRails
[17:39:38] hobodave: Quit: Computer has gone to sleep.
[17:50:24] hobodave: has joined #RubyOnRails
[17:50:40] hobodave: has joined #ruby
[21:12:45] hobodave: Quit: Computer has gone to sleep.
[21:29:40] hobodave: has joined #ruby
[21:29:41] hobodave: has joined #RubyOnRails
[22:28:27] hobodave: Ping timeout: 240 seconds

2017-05-30

[14:40:08] hobodave: has joined #ruby
[14:40:53] hobodave: has joined #RubyOnRails
[16:36:46] hobodave: Quit: Computer has gone to sleep.
[16:48:23] hobodave: has joined #RubyOnRails
[16:48:56] hobodave: has joined #ruby
[17:54:50] hobodave: Remote host closed the connection
[17:56:28] hobodave: has joined #ruby
[17:56:46] hobodave: has joined #RubyOnRails
[18:28:54] hobodave: Quit: Computer has gone to sleep.
[18:50:27] hobodave: has joined #RubyOnRails
[18:51:17] hobodave: has joined #ruby
[18:59:03] hobodave: Quit: Computer has gone to sleep.
[19:17:05] hobodave: has joined #ruby
[19:17:18] hobodave: has joined #RubyOnRails
[20:57:29] hobodave: Quit: Computer has gone to sleep.

2017-05-26

[16:15:48] hobodave: has joined #RubyOnRails
[16:15:48] hobodave: has joined #ruby
[17:38:36] hobodave: Quit: Computer has gone to sleep.
[17:48:35] hobodave: has joined #ruby
[17:49:00] hobodave: has joined #RubyOnRails
[20:04:18] hobodave: Quit: Computer has gone to sleep.

2017-05-25

[16:10:47] hobodave: has joined #ruby
[16:11:09] hobodave: has joined #RubyOnRails
[17:04:16] hobodave: matthewd you around?
[21:39:22] hobodave: Ping timeout: 260 seconds

2017-05-24

[16:13:10] hobodave: has joined #RubyOnRails
[16:13:24] hobodave: has joined #ruby
[16:52:38] hobodave: Quit: Computer has gone to sleep.
[16:57:23] hobodave: has joined #ruby
[16:57:41] hobodave: has joined #RubyOnRails
[17:14:10] hobodave: Is there a way to modify the ActiveRecord pool size at runtime? (I'm trying to do this for a rails unit test)
[17:23:30] hobodave: Gah, Class#class_attribute is so horribly broken
[17:46:27] hobodave: matthewd you around?
[18:55:40] hobodave: mordof JRuby?
[22:11:57] hobodave: Ping timeout: 240 seconds

2017-05-23

[16:11:55] hobodave: has joined #ruby
[16:12:10] hobodave: has joined #RubyOnRails
[20:05:47] hobodave: Quit: Computer has gone to sleep.
[20:18:50] hobodave: has joined #ruby
[20:19:05] hobodave: has joined #RubyOnRails
[22:12:18] hobodave: Ping timeout: 272 seconds
[23:28:33] hobodave: has joined #ruby
[23:28:35] hobodave: has joined #RubyOnRails
[23:57:49] hobodave: Quit: Computer has gone to sleep.

2017-05-22

[15:21:35] hobodave: has joined #ruby
[15:21:35] hobodave: has joined #RubyOnRails
[15:22:47] hobodave: Client Quit
[16:24:41] hobodave: has joined #RubyOnRails
[16:25:13] hobodave: has joined #ruby
[18:03:33] hobodave: Ping timeout: 240 seconds
[19:17:08] hobodave: found a bug in ActiveSupport::Concern
[19:17:23] hobodave: I've been tracing this thing for a week
[19:18:03] hobodave: Rails uses it extensively
[19:18:05] hobodave: Since I use rails, I use ActiveSupport::Concern
[19:18:16] hobodave: and Rails' default behavior exposes the bug under concurrency
[19:18:26] hobodave: Thanks dminuoso
[19:28:03] hobodave: I actually think I misspoke. The bug is either in Class#class_attribute or ActiveSupport::Scoping::Default, depending on how you look at it
[19:28:57] hobodave: the bug is here: https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/class/attribute.rb#L89
[19:29:23] hobodave: when you "assign" a value to an attribute declared by class_attribute, you're deleting and redefining methods at runtime
[19:30:03] hobodave: Do that under concurrent load (JRuby) and threads are calling methods that don't exist momentarily
[19:30:07] hobodave: it's the cause of these: https://github.com/rails/rails/issues/25838 and https://github.com/rails/rails/issues/27418
[19:31:07] hobodave: I'm not sure what other inference could be made
[19:33:15] hobodave: that's definitely it
[19:33:34] hobodave: it has nothing to do with Paper trail. I've reproduced it using *just* rails code, no other gems
[19:34:53] hobodave: I worked around it by eagerly memoizing the value of default_scope_override in the class definition
[19:36:03] hobodave: If this is truly not thread-safe by design, then the error seems to be in the usage of it within ActiveRecord::Scoping::Default
[19:36:36] hobodave: https://github.com/rails/rails/blob/master/activerecord/lib/active_record/scoping/default.rb#L108
[19:37:13] hobodave: Line 108 shown there is not a simple atomic assignment. It uses the voodoo in class_attribute. Then some threads when executing line 111 below will raise NoMethodError
[19:38:03] hobodave: setting self.default_scope_override = false (or true, if applicable) circumvents the bug entirely
[19:38:45] hobodave: doing the method redefinition voodoo is reasonably justifiable if the expectation is that it only happens during boot time
[19:52:43] hobodave: matthewd you around?
[20:04:58] hobodave: I fixed it!
[20:16:25] hobodave: gahh, I didn't fix it :(
[22:33:09] hobodave: Quit: Computer has gone to sleep.

2017-05-20

[03:10:45] hobodave: has joined #ruby
[03:10:47] hobodave: has joined #RubyOnRails
[03:14:56] hobodave: Client Quit

2017-05-19

[01:46:31] hobodave: has joined #ruby
[01:46:35] hobodave: has joined #RubyOnRails
[03:51:46] hobodave: Ping timeout: 246 seconds
[04:45:40] hobodave: has joined #RubyOnRails
[04:48:05] hobodave: has joined #ruby
[05:45:11] hobodave: Ping timeout: 246 seconds
[11:24:08] hobodave: has joined #ruby
[11:24:49] hobodave: has joined #RubyOnRails
[13:46:40] hobodave: Ping timeout: 246 seconds
[16:08:34] hobodave: has joined #RubyOnRails
[16:08:52] hobodave: has joined #ruby
[16:09:19] hobodave: Client Quit
[16:09:52] hobodave: has joined #ruby
[16:10:30] hobodave: has joined #RubyOnRails
[16:11:26] hobodave: matthewd you around?
[17:31:37] hobodave: forgive me if this is phrased stupidly, but how do I figure out what class is referred to by this error message? NoMethodError: undefined method `default_scope_override' for #<Class:0xc414eb3>
[17:31:49] hobodave: what is that hex ID?
[17:34:20] hobodave: Thanks fryguy. That helps. How do I figure out what Class it refers to? Or, even simpler, if I have a candidate Class, how do I get its memory address?
[17:34:56] hobodave: this is in a rails console
[17:34:59] hobodave: so it's within the same run
[17:35:07] hobodave: I'd like to inspect that class if it's still in memory, if possible
[17:35:42] hobodave: I've been trying to debug a bizarre concurrency bug in Rails for the better part of a month and I'm getting close :D
[17:36:30] hobodave: I've been avoiding that. I'm on JRuby, so I have to explicitly enable that. I'm afraid of Heisenberg. :D
[17:37:52] hobodave: fryguy just found this: http://stackoverflow.com/questions/2402228/accessing-objects-memory-address-in-ruby
[17:37:56] hobodave: that's cool :)
[17:54:54] hobodave: morning woods
[18:02:20] hobodave: you're unlikely to get help here for that
[20:04:35] hobodave: Ping timeout: 240 seconds
[21:35:05] hobodave: has joined #RubyOnRails
[21:35:17] hobodave: has joined #ruby
[22:17:28] hobodave: Ping timeout: 260 seconds

2017-05-18

[15:39:34] hobodave: has joined #ruby
[15:40:06] hobodave: has joined #RubyOnRails
[15:46:07] hobodave: Ping timeout: 255 seconds
[17:23:00] hobodave: has joined #RubyOnRails
[17:23:25] hobodave: has joined #ruby
[21:13:23] hobodave: does matthewd ever check in here?
[21:13:56] hobodave: he seems to be the concurrency "guru" for Rails, correct?
[21:19:02] hobodave: his name is all over GH re: Rails.application.executor and stuff
[21:19:12] hobodave: I've been banging my head against a bug or two in ActiveRecord that is concurrency related
[21:19:46] hobodave: I've got a patch for one of the issues, but it exposes another :(
[21:20:09] hobodave: and I'm not sure if my test case is correct
[21:42:50] hobodave: Quit: Computer has gone to sleep.
[21:44:34] hobodave: has joined #ruby
[21:44:47] hobodave: has joined #RubyOnRails
[22:09:31] hobodave: matthewd you busy?
[22:11:20] hobodave: would you guys expect this code to raise the error shown at the bottom?
[22:15:05] hobodave: helps if I paste the link huh?
[22:15:38] hobodave: would you guys expect this code to raise the error shown at the bottom? https://gist.github.com/hobodave/972c209a22d54b0d1769b0701547404c
[22:32:48] hobodave: Quit: Computer has gone to sleep.

2017-05-16

[15:29:19] hobodave: has joined #ruby
[15:30:08] hobodave: has joined #RubyOnRails
[22:56:16] hobodave: Quit: Computer has gone to sleep.

2017-05-15

[15:08:54] hobodave: has joined #ruby
[15:08:54] hobodave: has joined #RubyOnRails
[17:10:33] hobodave: Quit: Computer has gone to sleep.
[18:02:31] hobodave: has joined #ruby
[18:02:58] hobodave: has joined #RubyOnRails
[19:15:28] hobodave: Ping timeout: 240 seconds

2017-05-12

[15:14:52] hobodave: has joined #ruby
[16:09:06] hobodave: Quit: Computer has gone to sleep.
[16:16:49] hobodave: has joined #ruby
[16:17:09] hobodave: has joined #RubyOnRails
[16:23:10] hobodave: Ping timeout: 264 seconds
[18:47:10] hobodave: has joined #RubyOnRails
[18:48:08] hobodave: has joined #ruby
[19:08:33] hobodave: Quit: Computer has gone to sleep.
[19:13:00] hobodave: has joined #ruby
[19:13:28] hobodave: has joined #RubyOnRails
[22:16:05] hobodave: Quit: Computer has gone to sleep.