From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.bugs Subject: bug#21380: 25.0.50; GTK-induced segfault when scheduling timer from window-configuration-change-hook Date: Tue, 1 Sep 2015 20:48:18 +0000 Message-ID: References: <83mvx8252m.fsf@gnu.org> <83k2sc20k6.fsf@gnu.org> <83h9ng1ryx.fsf@gnu.org> <83a8t71qct.fsf@gnu.org> <837foaceid.fsf@gnu.org> <83vbbuawgy.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a11c31f74834d6b051eb5abd4 X-Trace: ger.gmane.org 1441140559 32525 80.91.229.3 (1 Sep 2015 20:49:19 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 1 Sep 2015 20:49:19 +0000 (UTC) Cc: 21380@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Sep 01 22:49:11 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZWsUQ-0003vO-M6 for geb-bug-gnu-emacs@m.gmane.org; Tue, 01 Sep 2015 22:49:10 +0200 Original-Received: from localhost ([::1]:58456 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZWsUQ-0003fu-G7 for geb-bug-gnu-emacs@m.gmane.org; Tue, 01 Sep 2015 16:49:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41407) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZWsUL-0003fN-RN for bug-gnu-emacs@gnu.org; Tue, 01 Sep 2015 16:49:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZWsUI-0003MM-LP for bug-gnu-emacs@gnu.org; Tue, 01 Sep 2015 16:49:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:53242) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZWsUI-0003M5-Ix for bug-gnu-emacs@gnu.org; Tue, 01 Sep 2015 16:49:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZWsUI-0006wp-8L for bug-gnu-emacs@gnu.org; Tue, 01 Sep 2015 16:49:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 01 Sep 2015 20:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21380 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 21380-submit@debbugs.gnu.org id=B21380.144114050326653 (code B ref 21380); Tue, 01 Sep 2015 20:49:02 +0000 Original-Received: (at 21380) by debbugs.gnu.org; 1 Sep 2015 20:48:23 +0000 Original-Received: from localhost ([127.0.0.1]:45452 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZWsTe-0006vp-Jj for submit@debbugs.gnu.org; Tue, 01 Sep 2015 16:48:22 -0400 Original-Received: from mail-ig0-f181.google.com ([209.85.213.181]:38119) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZWsTc-0006vh-M7 for 21380@debbugs.gnu.org; Tue, 01 Sep 2015 16:48:21 -0400 Original-Received: by igbut12 with SMTP id ut12so10829050igb.1 for <21380@debbugs.gnu.org>; Tue, 01 Sep 2015 13:48:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=+PS0IoLVGdfGQbl3ua74NXK3mrsBD/VwKbcdVZ9HA6A=; b=Tp/4LKLvsbPym4+abzDCrjl5MeFI9cFEIVLSv0W3UumgtAkHXXOHpZrYnqy6SPMv6B viyJUeaPvxv4nUVh1SZOZxU19VUGG8WrmAXHkLFWRSvKF1BkBSz1d8wzPZB1Oej2p16n ZbnrX+avByy3pk9R/WJE7gl0R7/0b5h6Auj/2SECddFrQ5xZ5drrC9dBhJOw0z2JR+Nv wbTnAKVdmD5iVPYBq7ehLtcJi+Nyz8T4cqS8wDCjqDDheOMJrKo+r+dcjjJjFfa55lOI pGhZEpj/dJ8upADwaWGWenITgn5k3cJxO1IC1sbIpg/ApTWK2+/ZT/S/x4VknYAshOTr NEKw== X-Received: by 10.50.137.100 with SMTP id qh4mr148979igb.1.1441140498965; Tue, 01 Sep 2015 13:48:18 -0700 (PDT) Original-Received: by 10.79.78.66 with HTTP; Tue, 1 Sep 2015 13:48:18 -0700 (PDT) In-Reply-To: <83vbbuawgy.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 208.118.235.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:106073 Archived-At: --001a11c31f74834d6b051eb5abd4 Content-Type: multipart/alternative; boundary=001a11c31f74834d66051eb5abd2 --001a11c31f74834d66051eb5abd2 Content-Type: text/plain; charset=UTF-8 On Tue, Sep 1, 2015 at 5:19 PM, Eli Zaretskii wrote: > > The only code path that I see that's potentially dangerous is that > atimers > > appear to be executed even if input is blocked. > > Yes, that's exactly what bothered me. Not calling QUIT prevents that. > > Alternatively, we could turn off atimers (by calling turn_on_atimers) > while Fcopy_sequence runs. > I think that would be a better solution. I've done a quick grep for the current atimers and at first glance they appear to be okay, but obviously that's no guarantee for the future. It might be worth thinking about block_input_and_atimers (). I think it's safe to assume that Lisp timers are only checked if atimers are enabled. If it isn't, I think the best way forward is to write block_input_and_atimers () and lock atimers with a counter just like input is. --001a11c31f74834d66051eb5abd2 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On Tue, Sep 1, 2015 at 5:19 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> The only code path that I see that's potentially dangerous is that= atimers
> appear to be executed even if input is blocked.

Yes, that's exactly what bothered me.=C2=A0 Not calling QUIT pre= vents that.

Alternatively, we could turn off atimers (by calling turn_on_atimers)
while Fcopy_sequence runs.

I think that would = be a better solution. I've done a quick grep for the current atimers an= d at first glance they appear to be okay, but obviously that's no guara= ntee for the future. It might be worth thinking about block_input_and_atime= rs ().

I think it's safe to ass= ume that Lisp timers are only checked if atimers are enabled. If it isn'= ;t, I think the best way forward is to write block_input_and_atimers () and= lock atimers with a counter just like input is.

--001a11c31f74834d66051eb5abd2-- --001a11c31f74834d6b051eb5abd4 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Fix-potential-race-conditions-Bug-21380.patch" Content-Disposition: attachment; filename="0001-Fix-potential-race-conditions-Bug-21380.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ie1ttzd00 RnJvbSA2NzhiZGJhNTVlNGEwN2UzYmFlYmFkMjA0YzlmZTVjNTVjOTliM2QzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXAgPHBpcGNldEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwg MSBTZXAgMjAxNSAyMDo0Mjo0NCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeCBwb3RlbnRpYWwg cmFjZSBjb25kaXRpb25zIChCdWcjMjEzODApCgogICAgICAgICoga2V5Ym9hcmQuYyAodGltZXJf Y2hlY2spOiBDYWxsIGBibG9ja19pbnB1dCcgYW5kIHR1cm4gb2ZmCglhdGltZXJzIGFyb3VuZCB0 aGUgY3JlYXRpb24gb2YgdGhlIHRlbXBvcmFyeSB0aW1lciBsaXN0IGNvcHkuCgoJKiBmbnMuYyAo Y29uY2F0KTogRG9uJ3QgYXNzdW1lIGFyZ3VtZW50IHNpemUgcmVtYWlucyB1bmNoYW5nZWQKCWFm dGVyIGNhbGwgdG8gYEZtYWtlX2xpc3QnLiAgUmV0dXJuIGluY29ycmVjdCByZXN1bHRzIChidXQg ZG9uJ3QKCXNlZ2ZhdWx0KSBpbiB0aGF0IGNhc2UuCi0tLQogc3JjL2Zucy5jICAgICAgfCAzICsr Kwogc3JjL2tleWJvYXJkLmMgfCA0ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvc3JjL2Zucy5jIGIvc3JjL2Zucy5jCmluZGV4IDI2YTk4YWIuLjE1 ZDllNjQgMTAwNjQ0Ci0tLSBhL3NyYy9mbnMuYworKysgYi9zcmMvZm5zLmMKQEAgLTc0NCw2ICs3 NDQsOSBAQCBjb25jYXQgKHB0cmRpZmZfdCBuYXJncywgTGlzcF9PYmplY3QgKmFyZ3MsCiAJICAg IC8qIFN0b3JlIHRoaXMgZWxlbWVudCBpbnRvIHRoZSByZXN1bHQuICAqLwogCSAgICBpZiAodG9p bmRleCA8IDApCiAJICAgICAgeworICAgICAgICAgICAgICAgIGlmIChOSUxQICh0YWlsKSkKKyAg ICAgICAgICAgICAgICAgIGJyZWFrOworCiAJCVhTRVRDQVIgKHRhaWwsIGVsdCk7CiAJCXByZXYg PSB0YWlsOwogCQl0YWlsID0gWENEUiAodGFpbCk7CmRpZmYgLS1naXQgYS9zcmMva2V5Ym9hcmQu YyBiL3NyYy9rZXlib2FyZC5jCmluZGV4IGRhYjMyYjEuLjRjZTgzMGQgMTAwNjQ0Ci0tLSBhL3Ny Yy9rZXlib2FyZC5jCisrKyBiL3NyYy9rZXlib2FyZC5jCkBAIC00NTYwLDYgKzQ1NjAsOCBAQCB0 aW1lcl9jaGVjayAodm9pZCkKIAogICBMaXNwX09iamVjdCB0ZW0gPSBWaW5oaWJpdF9xdWl0Owog ICBWaW5oaWJpdF9xdWl0ID0gUXQ7CisgIGJsb2NrX2lucHV0ICgpOworICB0dXJuX29uX2F0aW1l cnMgKGZhbHNlKTsKIAogICAvKiBXZSB1c2UgY29waWVzIG9mIHRoZSB0aW1lcnMnIGxpc3RzIHRv IGFsbG93IGEgdGltZXIgdG8gYWRkIGl0c2VsZgogICAgICBhZ2Fpbiwgd2l0aG91dCBsb2NraW5n IHVwIEVtYWNzIGlmIHRoZSBuZXdseSBhZGRlZCB0aW1lciBpcwpAQCAtNDU3Myw2ICs0NTc1LDgg QEAgdGltZXJfY2hlY2sgKHZvaWQpCiAgIGVsc2UKICAgICBpZGxlX3RpbWVycyA9IFFuaWw7CiAK KyAgdHVybl9vbl9hdGltZXJzICh0cnVlKTsKKyAgdW5ibG9ja19pbnB1dCAoKTsKICAgVmluaGli aXRfcXVpdCA9IHRlbTsKIAogICBkbwotLSAKMi41LjAKCg== --001a11c31f74834d6b051eb5abd4--