On Sun, Dec 9, 2018 at 1:20 AM Eric Wong <[email protected]> wrote: > > Previously I have no idea why but sleepy_penguin has some compile > > error which I can't figure out how to fix, and it really looks like > > it's Ruby's bug. They probably fixed it on one of the recent Ruby > > patch releases, and it works fine after the `closed?` patch. > > Is it this? > https://bogomips.org/sleepy-penguin/[email protected]/ > > Totally forgot about it, and I've even been using a FreeBSD a > bunch, just not with 3rd-party gems.
It could be related. It was around RSTRUCT_PTR indeed. Looking at the Ruby header file (ruby.h), I can't remember the detail but it's rather weird. However if I just fix the header file, it did pass compilation, yet crashed at runtime. I stopped there. The thing is, the same version of sleepy_penguin now compiles and working properly :) The only thing changed was Ruby version. However indeed sleepy_penguin was actually working on MacOSX in some older versions, not sure older Ruby or older sleepy_penguin though. Since then I just swapped to Unicorn locally and didn't really bother more after failing to fix it. > One downside with graceful-shutdown-by-default and the generous > timeouts is I've had it cause rebooting a machine to take way > longer than expected, which increased downtime :x That's sad, but if the default doesn't work great, we can always tweak it? :) I think it's really nice to be shutting down gracefully by default, since it's much easier to forcefully quit, but not the other way around. I see that we can still use SIGQUIT for Unicorn, but ctrl+c is easier to use, and double SIGINT could still shut it down very quickly anyway. > Btw, which versions of Ruby are you using? I'm pretty sure > Ruby 2.0 support compatibility is no longer necessary, these > days; so we can rely on "exception: false" in more places > and slowly remove kgio dependencies. A few months ago one of the apps was still on 2.3.x, but now it caught up with 2.5.x. I think Ubuntu default is a good measurement, which seems to be 2.3 now? To extend support perhaps 2.2 will be safe enough. > Fwiw, I'm prepping a fork of yahns to demo Thread::Light > <https://bugs.ruby-lang.org/issues/13618>, too > working on lib/yahns/proxy_pass.rb was too much of a nightmare; > so I wanted to keep all the Ruby parts synchronous. Wow that thread is really long and I am still reading it, because I think it's very interesting. I didn't touch this kind of things for awhile now, but it's still nice to play with them. What I don't quite get is why people hate green thread yet keeping GVL. I thought that's somehow contradicting. I would love to see improvement over Fiber or just Thread::Light, whatever it'll end up with. I really think this is one of the missing pieces. I don't know why this is related to proxy_pass though. Would love to see when you have done something with that.
