yahns Ruby server user/dev discussion
 help / color / mirror / code / Atom feed
From: "Lin Jen-Shin (godfat)" <godfat@godfat.org>
To: e@80x24.org
Cc: yahns-public@yhbt.net
Subject: Re: [PATCH 1/2] Add QueueQuitter#closed? to queue_quitter_pipe.rb
Date: Sun, 9 Dec 2018 16:49:27 +0800	[thread overview]
Message-ID: <CAA2_N1teywxU28V0OzB4vdyM9mOYNXYKsa9przUFwAkVYzE_jg@mail.gmail.com> (raw)
In-Reply-To: <20181208172037.6ccjk4jv3mb5x7il@dcvr>

On Sun, Dec 9, 2018 at 1:20 AM Eric Wong <e@80x24.org> 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/20170415002501.19627-1-e@80x24.org/
>
> 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	other threads:[~2018-12-09  8:49 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-08  8:30 [PATCH 1/2] Add QueueQuitter#closed? to queue_quitter_pipe.rb Lin Jen-Shin
2018-12-08  8:30 ` [PATCH 2/2] @srv.shutdown could raise Errno::ENOTCONN Lin Jen-Shin
2018-12-08 11:36 ` [PATCH 1/2] Add QueueQuitter#closed? to queue_quitter_pipe.rb Eric Wong
2018-12-08 11:52   ` Lin Jen-Shin (godfat)
2018-12-08 17:20     ` Eric Wong
2018-12-09  8:49       ` Lin Jen-Shin (godfat) [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://yhbt.net/yahns/README

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAA2_N1teywxU28V0OzB4vdyM9mOYNXYKsa9przUFwAkVYzE_jg@mail.gmail.com \
    --to=godfat@godfat.org \
    --cc=e@80x24.org \
    --cc=yahns-public@yhbt.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhbt.net/yahns.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).