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.

Reply via email to