ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
From: Eric Wong <normalperson@yhbt.net>
To: ruby-core@ruby-lang.org
Subject: [ruby-core:90887] Re: [Ruby trunk Bug#15499] Breaking behavior on ruby 2.6: rb_thread_call_without_gvl doesn't invoke unblock_function when used on the main thread
Date: Fri, 4 Jan 2019 13:20:23 +0000	[thread overview]
Message-ID: <20190104132023.GA19211@dcvr> (raw)
In-Reply-To: <20190103223309.GA17694@dcvr>

Eric Wong <normalperson@yhbt.net> wrote:
> apolcyn@google.com wrote:
> > Thanks for the quick look! I didn't get a chance to try out
> > UBF_TIMER=2 before your last comment, but let me know if
> > there's something else to try.
> 
> Sorry for the breakage.  For now, you can workaround this
> breakage by spawning a do-nothing thread to handle signals:

r66708 should fix the breakage in your particular case.
Again, deeply sorry for the breakage.

>   Thread.new { sleep }
> 
> I'm slowly working on a permanent fix which won't increase
> overhead for the majority of use cases.

So r66708 uses a short-lived thread and thread-cache to avoid
permanent overhead.

r66712 introduces an experimental new API (rb_nogvl) which
allows C-API users to fire some unblock functions in signal
handlers.  It won't affect grpc's case, but it affects zlib and
bignum in core, at least.

It turns out zlib and bignum had the same problem you encountered;
but I missed them.

  reply	other threads:[~2019-01-04 13:20 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <redmine.issue-15499.20190103013749@ruby-lang.org>
2019-01-03  1:37 ` [ruby-core:90865] [Ruby trunk Bug#15499] Breaking behavior on ruby 2.6: rb_thread_call_without_gvl doesn't invoke unblock_function when used on the main thread apolcyn
2019-01-03  1:58   ` [ruby-core:90866] " Eric Wong
2019-01-03  9:01     ` [ruby-core:90870] " Eric Wong
2019-01-03 19:49 ` [ruby-core:90877] " apolcyn
2019-01-03 22:33   ` [ruby-core:90879] " Eric Wong
2019-01-04 13:20     ` Eric Wong [this message]
2019-01-04 13:22 ` [ruby-core:90888] [Ruby trunk Bug#15499][Assigned] " normalperson
2019-01-07 18:02 ` [ruby-core:90923] [Ruby trunk Bug#15499] " spam+bugs.ruby-lang.org
2019-01-08 18:18   ` [ruby-core:90933] " Eric Wong
2019-01-10 12:10 ` [ruby-core:90992] " spam+bugs.ruby-lang.org
2019-01-28 19:20 ` [ruby-core:91310] " ko1
2019-01-28 19:22 ` [ruby-core:91311] " ko1
2019-01-29  5:36 ` [ruby-core:91315] " naruse

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-list from there: mbox

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

  List information: https://www.ruby-lang.org/en/community/mailing-lists/

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

  git send-email \
    --in-reply-to=20190104132023.GA19211@dcvr \
    --to=ruby-core@ruby-lang.org \
    /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.
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).