From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#32452: 26.1; gnutls_try_handshake maxes out cpu retrying when server is a bit busy Date: Wed, 02 Mar 2022 02:22:37 +0100 Message-ID: <87y21tjggy.fsf__43924.9896955275$1646184230$gmane$org@gnus.org> References: <87wosqwlu3.fsf@gmail.com> <83va84cuf6.fsf@gnu.org> <87k0doi6vy.fsf@gnus.org> <905557ed-58f6-8671-51de-a44e73029aa9@cs.ucla.edu> <87ley15pp6.fsf@gnus.org> <172175b8-c6b3-314f-e803-e00d04f5d57a@cs.ucla.edu> <87y221436n.fsf@gnus.org> <0df255b3-41a1-619d-97d3-28fd246e0b9f@cs.ucla.edu> <87pmnc4p64.fsf@gnus.org> <87v8x3znmm.fsf@gnus.org> <6f364184-7fa8-04f3-44a9-22ce40b872e8@cs.ucla.edu> <8735k5vezs.fsf@gnus.org> <83ee3pprkr.fsf@gnu.org> <87pmn9txzo.fsf@gnus.org> <87ee3ns6x0.fsf@gnus.org> <78c5037a-ac96-e7be-532f-b1776ed25b2b@cs.ucla.edu> <87a6e9n0rg.fsf@gnus.org> <87czj5ld38.fsf@gnus.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23975"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: 32452@debbugs.gnu.org, bug-gnulib@gnu.org, npostavs@gmail.com To: Paul Eggert Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Mar 02 02:23:42 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nPDiQ-00064n-Mz for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 02 Mar 2022 02:23:42 +0100 Original-Received: from localhost ([::1]:58722 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nPDiP-0008KB-RP for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 01 Mar 2022 20:23:41 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:51962) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nPDhm-0008Ie-RZ for bug-gnu-emacs@gnu.org; Tue, 01 Mar 2022 20:23:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:44756) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nPDhm-0002YR-Fz for bug-gnu-emacs@gnu.org; Tue, 01 Mar 2022 20:23:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nPDhm-0007wy-8q for bug-gnu-emacs@gnu.org; Tue, 01 Mar 2022 20:23:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 02 Mar 2022 01:23:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 32452 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo Original-Received: via spool by 32452-submit@debbugs.gnu.org id=B32452.164618417230529 (code B ref 32452); Wed, 02 Mar 2022 01:23:02 +0000 Original-Received: (at 32452) by debbugs.gnu.org; 2 Mar 2022 01:22:52 +0000 Original-Received: from localhost ([127.0.0.1]:38653 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPDhc-0007wL-16 for submit@debbugs.gnu.org; Tue, 01 Mar 2022 20:22:52 -0500 Original-Received: from quimby.gnus.org ([95.216.78.240]:54024) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPDhZ-0007w2-LV for 32452@debbugs.gnu.org; Tue, 01 Mar 2022 20:22:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=qHy/FI5yPHqszWEsXTZF4SOScPX4IBOzYqBTB8neyrs=; b=snTOFMf4T2QHEw6koOotJO6ubC GhoDxa5N+NaOMiLRYjCH0ns0U0BY3mQaaYH/S7PLvv0rSR+l2HRqzpnSclfe4CZPyRvROY3Wdsjex 4V2ry0LL/hXLuOEU1yx4yiNx1hncTCBhtzUswtspnIpA0KByoq/KztRlCybrHW8F2T5A=; Original-Received: from [84.212.220.105] (helo=giant) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nPDhP-00051M-Fj; Wed, 02 Mar 2022 02:22:41 +0100 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACVBMVEXailbwzbn////k Z3WJAAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+YDAgETGJIhU5cAAAFaSURBVCjPJVJNqgYxCEuh7jug 97Ew7hX0/ld5me8V+pOFMYkFdHUrNs8N6EbvdTA4KEXathJFYWafEbU4WLAZuX0O6wblz70t6W6N 5V13Y8INkOwz+27NSUztmb7XuhIZQr4sGU949ImaEvGmgtaozGlje7XsNyNTHNUW1bEnwrGbGiqa kgDqsWHftr2QQu4Zr+d+qtd8qyoefPf35J246MMX3e3EfspfSel3G6a3wpevV0iQMIruX9P8Svt+ 7PgHL0ETnJiJfqbbDgTfSu4m8Oy8wxhVoeP/cr5Ano/stzPBeu2xmDgOUbd3io6ymc7cx4a5TeNG KI3n9R600Gjp27cZrwSdlSlJINFqZsxHEivFzhcQ9AAlbYv9lxpHbBlEc+zikOzGkZ47v9Gt4Ico gpXjS965yI+NgldcAv4Dt5Ghdk9B8EdIxJ0szj5bH5rOowJnXisizx75A7DZd6MM1G9lAAAAJXRF WHRkYXRlOmNyZWF0ZQAyMDIyLTAzLTAyVDAxOjE5OjIzKzAwOjAwlfo81wAAACV0RVh0ZGF0ZTpt b2RpZnkAMjAyMi0wMy0wMlQwMToxOToyMyswMDowMOSnhGsAAAAASUVORK5CYII= X-Now-Playing: White Hole's _Pink Album_: "Peter Builts" In-Reply-To: (Paul Eggert's message of "Tue, 1 Mar 2022 17:00:36 -0800") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:227900 Archived-At: Paul Eggert writes: > Do you see this problem with a fresh checkout from the latest master > branch, combined with the latest Gnulib? Yes, when I add the nanosleep module as previously described. > If not, problem solved. If so, what's the output of 'git status' and > of 'git diff' when things fail? larsi@giant:~/src/emacs/gtest$ git status On branch master Your branch is up to date with 'origin/master'. Changes to be committed: (use "git restore --staged ..." to unstage) new file: lib/nanosleep.c new file: m4/nanosleep.m4 Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git restore ..." to discard changes in working directory) modified: admin/merge-gnulib modified: lib/gnulib.mk.in modified: m4/gnulib-comp.m4 modified: src/gnutls.c diff --git a/admin/merge-gnulib b/admin/merge-gnulib index fec469c017..ea3d23686f 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib @@ -40,7 +40,7 @@ GNULIB_MODULES= getloadavg getopt-gnu getrandom gettime gettimeofday gitlog-to-changelog ieee754-h ignore-value intprops largefile libgmp lstat manywarnings memmem-simple mempcpy memrchr minmax mkostemp mktime - nproc nstrftime + nanosleep nproc nstrftime pathmax pipe2 pselect pthread_sigmask qcopy-acl readlink readlinkat regex sig2str sigdescr_np socklen stat-time std-gnu11 stdalign stddef stdio diff --git a/lib/gnulib.mk.in b/lib/gnulib.mk.in index 3a9f5b9818..b79eebc804 100644 --- a/lib/gnulib.mk.in +++ b/lib/gnulib.mk.in @@ -129,6 +129,7 @@ # minmax \ # mkostemp \ # mktime \ +# nanosleep \ # nproc \ # nstrftime \ # pathmax \ @@ -2497,6 +2498,16 @@ EXTRA_libgnu_a_SOURCES += mktime.c endif ## end gnulib module mktime-internal +## begin gnulib module nanosleep +ifeq (,$(OMIT_GNULIB_MODULE_nanosleep)) + +ifneq (,$(GL_COND_OBJ_NANOSLEEP_CONDITION)) +libgnu_a_SOURCES += nanosleep.c +endif + +endif +## end gnulib module nanosleep + ## begin gnulib module nproc ifeq (,$(OMIT_GNULIB_MODULE_nproc)) diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 index 1d31239d2d..fb5f1b52a4 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 @@ -140,6 +140,7 @@ AC_DEFUN # Code from module mktime: # Code from module mktime-internal: # Code from module multiarch: + # Code from module nanosleep: # Code from module nocrash: # Code from module nproc: # Code from module nstrftime: @@ -430,6 +431,10 @@ AC_DEFUN fi gl_TIME_MODULE_INDICATOR([mktime]) gl_MULTIARCH + gl_FUNC_NANOSLEEP + gl_CONDITIONAL([GL_COND_OBJ_NANOSLEEP], + [test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1]) + gl_TIME_MODULE_INDICATOR([nanosleep]) gl_NPROC gl_FUNC_GNU_STRFTIME gl_PATHMAX @@ -1304,6 +1309,7 @@ AC_DEFUN lib/mkostemp.c lib/mktime-internal.h lib/mktime.c + lib/nanosleep.c lib/nproc.c lib/nproc.h lib/nstrftime.c @@ -1456,6 +1462,7 @@ AC_DEFUN m4/mktime.m4 m4/mode_t.m4 m4/multiarch.m4 + m4/nanosleep.m4 m4/nocrash.m4 m4/nproc.m4 m4/nstrftime.m4 diff --git a/src/gnutls.c b/src/gnutls.c index 3ec3837067..5389b15b1e 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -616,6 +616,7 @@ gnutls_try_handshake (struct Lisp_Process *proc) gnutls_session_t state = proc->gnutls_state; int ret; bool non_blocking = proc->is_non_blocking_client; + struct timespec delay = { 0, 1000 * 1000 * 10 }; if (proc->gnutls_complete_negotiation_p) non_blocking = false; @@ -630,6 +631,7 @@ gnutls_try_handshake (struct Lisp_Process *proc) maybe_quit (); if (non_blocking && ret != GNUTLS_E_INTERRUPTED) break; + nanosleep (&delay, NULL); } proc->gnutls_initstage = GNUTLS_STAGE_HANDSHAKE_TRIED; -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no