From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-4.1 required=3.0 tests=AWL,BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id 287F51F6A9 for ; Fri, 4 Jan 2019 13:20:30 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id C08B1121EFE; Fri, 4 Jan 2019 22:20:27 +0900 (JST) Received: from dcvr.yhbt.net (dcvr.yhbt.net [64.71.152.64]) by neon.ruby-lang.org (Postfix) with ESMTPS id 59B54121EE4 for ; Fri, 4 Jan 2019 22:20:24 +0900 (JST) Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 4EE651F6A9; Fri, 4 Jan 2019 13:20:23 +0000 (UTC) Date: Fri, 4 Jan 2019 13:20:23 +0000 From: Eric Wong To: ruby-core@ruby-lang.org Message-ID: <20190104132023.GA19211@dcvr> References: <20190103223309.GA17694@dcvr> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190103223309.GA17694@dcvr> X-ML-Name: ruby-core X-Mail-Count: 90887 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 X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" Eric Wong 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.