From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.bugs Subject: bug#34910: 27.0.50; Too much matching reentrancy Date: Tue, 19 Mar 2019 13:25:13 +0100 Message-ID: <67b98e6f3b032e7114568934c94d32127897f5d2.camel@acm.org> References: <834l7zuw4x.fsf@gnu.org> <443195D9-DFEB-4E67-AEFE-556C3D900113@acm.org> <8336njuqrd.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-qiAkkP8zJ6Lx0ON0Xon0" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="144331"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Evolution 3.30.5 (3.30.5-1.fc29) Cc: 34910@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Mar 19 13:26:11 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1h6Dop-000bSl-3W for geb-bug-gnu-emacs@m.gmane.org; Tue, 19 Mar 2019 13:26:11 +0100 Original-Received: from localhost ([127.0.0.1]:56560 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6Doo-0002to-4Z for geb-bug-gnu-emacs@m.gmane.org; Tue, 19 Mar 2019 08:26:10 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:38945) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6Doh-0002tY-Ky for bug-gnu-emacs@gnu.org; Tue, 19 Mar 2019 08:26:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6Dog-00027c-Oc for bug-gnu-emacs@gnu.org; Tue, 19 Mar 2019 08:26:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:36123) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1h6Dog-00027H-KM for bug-gnu-emacs@gnu.org; Tue, 19 Mar 2019 08:26:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1h6Dog-00017B-Bx for bug-gnu-emacs@gnu.org; Tue, 19 Mar 2019 08:26:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 19 Mar 2019 12:26:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 34910 X-GNU-PR-Package: emacs Original-Received: via spool by 34910-submit@debbugs.gnu.org id=B34910.15529983244241 (code B ref 34910); Tue, 19 Mar 2019 12:26:02 +0000 Original-Received: (at 34910) by debbugs.gnu.org; 19 Mar 2019 12:25:24 +0000 Original-Received: from localhost ([127.0.0.1]:49666 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6Do4-00016K-3Y for submit@debbugs.gnu.org; Tue, 19 Mar 2019 08:25:24 -0400 Original-Received: from mail83c50.megamailservers.eu ([91.136.10.93]:37348 helo=mail18c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1h6Do1-000169-GK for 34910@debbugs.gnu.org; Tue, 19 Mar 2019 08:25:23 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1552998315; bh=r0mrMEduHq6HH0A5zRhFap1O2jE43AKImw0cTlcJd9E=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=eA8tXqUncisOK073Zz47rRLLxDTRFF0bnSOkp7JeanHXupi4lv6PtGY6AdYEmLwUT 7O2Z4bh9Q4JUTDMTWTYXmm0U2EOwqsLuIdesAFvri9HBicApt6MoDRQtpBU4hBUPwU Yn7LkU4qXalVnwIvSRoh1SrdRb4ntp7nsqQvFQQs= Feedback-ID: mattiase@acm.or Original-Received: from dhcppc1 (c-e636e253.032-75-73746f71.bbcust.telenor.se [83.226.54.230]) (authenticated bits=0) by mail18c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id x2JCPDRe004048; Tue, 19 Mar 2019 12:25:14 +0000 In-Reply-To: <8336njuqrd.fsf@gnu.org> X-CTCH-RefID: str=0001.0A0B0212.5C90DFAB.00AC, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=KOR08mNo c=1 sm=1 tr=0 a=M+GU/qJco4WXjv8D6jB2IA==:117 a=M+GU/qJco4WXjv8D6jB2IA==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=tWoBruE_kcLQ_xAR_2MA:9 a=QEXdDO2ut3YA:10 a=N54-gffFAAAA:8 a=Aw2g-5gMDjpzDD78xdkA:9 a=B2y7HmGcmWMA:10 a=6l0D2HzqY3Epnrm8mE3f:22 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:156495 Archived-At: --=-qiAkkP8zJ6Lx0ON0Xon0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit tis 2019-03-19 klockan 12:01 +0200 skrev Eli Zaretskii: > > I don't know yet. I asked you to elaborate on the reasons for your > expectations, and I still hope you will humor me. Because just > taking the problem's manifestations at face value, one could argue > that the precise error message is immaterial, as long as it points to > the right direction, and "stack overflow in regexp matcher" is as > obscure as the other message. But maybe I'm missing something, which > is why I asked you to elaborate on your reasoning. Sorry, I didn't mean to sound touchy! Being the bug reporter, I deserve every probing question. I'm most grateful for your quick reply! It turns out the regexp cache logic is broken: it always uses the last (LRU) entry, and fails if that entry is busy. It should really use the last free entry. What happened was that a regexp failed because of stack overflow, which caused lots of code to run and many regexps to be compiled, but the original (failing) regexp was still marked busy in the cache. Eventually, it had been pushed down to the last position in the cache, where it caused the next request for a free cache entry to fail with the reentrancy error. This patch fixes it. Please review. --=-qiAkkP8zJ6Lx0ON0Xon0 Content-Disposition: attachment; filename="0001-Fix-spurious-regexp-reentrancy-error.patch" Content-Type: text/x-patch; name="0001-Fix-spurious-regexp-reentrancy-error.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA2ZWM3YzM1NDUxM2EwNThmYjBiMzk2MTUwZWQzYTdjMTY1NWUyYTE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWF0dGlhcz0yMEVuZ2RlZz1DMz1BNXJkPz0g PG1hdHRpYXNlQGFjbS5vcmc+CkRhdGU6IFR1ZSwgMTkgTWFyIDIwMTkgMTM6MDY6MjAgKzAxMDAK U3ViamVjdDogW1BBVENIXSBGaXggc3B1cmlvdXMgcmVnZXhwIHJlZW50cmFuY3kgZXJyb3IKCnNy Yy9zZWFyY2guYyAoY29tcGlsZV9wYXR0ZXJuKTogRG9uJ3QgZ2l2ZSB1cCBpZiB0aGUgbGFzdCBy ZWdleHAgY2FjaGUKZW50cnkgaXMgYnVzeS4gIEluc3RlYWQsIHVzZSB0aGUgbGFzdCAobGVhc3Qg cmVjZW50bHkgdXNlZCkgbm9uLWJ1c3kKZW50cnksIGFuZCBvbmx5IHJlcG9ydCB0aGUgcmVlbnRy YW5jeSBlcnJvciBpZiB0aGVyZSBpcyBubyBmcmVlIGVudHJ5CmF0IGFsbCAoQnVnIzM0OTEwKS4K LS0tCiBzcmMvc2VhcmNoLmMgfCAxNSArKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5 IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3NlYXJjaC5j IGIvc3JjL3NlYXJjaC5jCmluZGV4IGExZTBiMDk3NmUuLjJjMDBlNmU5M2YgMTAwNjQ0Ci0tLSBh L3NyYy9zZWFyY2guYworKysgYi9zcmMvc2VhcmNoLmMKQEAgLTIyMywxMSArMjIzLDEzIEBAIHN0 YXRpYyBzdHJ1Y3QgcmVnZXhwX2NhY2hlICoKIGNvbXBpbGVfcGF0dGVybiAoTGlzcF9PYmplY3Qg cGF0dGVybiwgc3RydWN0IHJlX3JlZ2lzdGVycyAqcmVncCwKIAkJIExpc3BfT2JqZWN0IHRyYW5z bGF0ZSwgYm9vbCBwb3NpeCwgYm9vbCBtdWx0aWJ5dGUpCiB7Ci0gIHN0cnVjdCByZWdleHBfY2Fj aGUgKmNwLCAqKmNwcDsKKyAgc3RydWN0IHJlZ2V4cF9jYWNoZSAqY3AsICoqY3BwLCAqKmxydV9u b25idXN5OwogCi0gIGZvciAoY3BwID0gJnNlYXJjaGJ1Zl9oZWFkOyA7IGNwcCA9ICZjcC0+bmV4 dCkKKyAgZm9yIChjcHAgPSAmc2VhcmNoYnVmX2hlYWQsIGxydV9ub25idXN5ID0gTlVMTDsgOyBj cHAgPSAmY3AtPm5leHQpCiAgICAgewogICAgICAgY3AgPSAqY3BwOworICAgICAgaWYgKCFjcC0+ YnVzeSkKKyAgICAgICAgbHJ1X25vbmJ1c3kgPSBjcHA7CiAgICAgICAvKiBFbnRyaWVzIGFyZSBp bml0aWFsaXplZCB0byBuaWwsIGFuZCBtYXkgYmUgc2V0IHRvIG5pbCBieQogCSBjb21waWxlX3Bh dHRlcm5fMSBpZiB0aGUgcGF0dGVybiBpc24ndCB2YWxpZC4gIERvbid0IGFwcGx5CiAJIHN0cmlu ZyBhY2Nlc3NvcnMgaW4gdGhvc2UgY2FzZXMuICBIb3dldmVyLCBjb21waWxlX3BhdHRlcm5fMQpA QCAtMjQ3LDEzICsyNDksMTQgQEAgY29tcGlsZV9wYXR0ZXJuIChMaXNwX09iamVjdCBwYXR0ZXJu LCBzdHJ1Y3QgcmVfcmVnaXN0ZXJzICpyZWdwLAogCSAgJiYgY3AtPmJ1Zi5jaGFyc2V0X3VuaWJ5 dGUgPT0gY2hhcnNldF91bmlieXRlKQogCWJyZWFrOwogCi0gICAgICAvKiBJZiB3ZSdyZSBhdCB0 aGUgZW5kIG9mIHRoZSBjYWNoZSwgY29tcGlsZSBpbnRvIHRoZSBuaWwgY2VsbAotCSB3ZSBmb3Vu ZCwgb3IgdGhlIGxhc3QgKGxlYXN0IHJlY2VudGx5IHVzZWQpIGNlbGwgd2l0aCBhCi0JIHN0cmlu ZyB2YWx1ZS4gICovCisgICAgICAvKiBJZiB3ZSdyZSBhdCB0aGUgZW5kIG9mIHRoZSBjYWNoZSwg Y29tcGlsZSBpbnRvIHRoZSBsYXN0CisJIChsZWFzdCByZWNlbnRseSB1c2VkKSBub24tYnVzeSBj ZWxsIGluIHRoZSBjYWNoZS4gICovCiAgICAgICBpZiAoY3AtPm5leHQgPT0gMCkKIAl7Ci0gICAg ICAgICAgaWYgKGNwLT5idXN5KQorICAgICAgICAgIGlmICghbHJ1X25vbmJ1c3kpCiAgICAgICAg ICAgICBlcnJvciAoIlRvbyBtdWNoIG1hdGNoaW5nIHJlZW50cmFuY3kiKTsKKyAgICAgICAgICBj cHAgPSBscnVfbm9uYnVzeTsKKyAgICAgICAgICBjcCA9ICpjcHA7CiAJY29tcGlsZV9pdDoKICAg ICAgICAgICBlYXNzZXJ0ICghY3AtPmJ1c3kpOwogCSAgY29tcGlsZV9wYXR0ZXJuXzEgKGNwLCBw YXR0ZXJuLCB0cmFuc2xhdGUsIHBvc2l4KTsKLS0gCjIuMjAuMQoK --=-qiAkkP8zJ6Lx0ON0Xon0--