From unknown Mon Jun 23 16:47:31 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14156: 24.3.50; Timer firing after being canceled Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: michael_heerdegen@web.de, bug-gnu-emacs@gnu.org Resent-Date: Mon, 08 Apr 2013 00:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 14156 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 14156@debbugs.gnu.org Cc: Michael Heerdegen X-Debbugs-Original-To: bug-gnu-emacs@gnu.org X-Debbugs-Original-Xcc: Michael Heerdegen Received: via spool by submit@debbugs.gnu.org id=B.136538247016921 (code B ref -1); Mon, 08 Apr 2013 00:55:01 +0000 Received: (at submit) by debbugs.gnu.org; 8 Apr 2013 00:54:30 +0000 Received: from localhost ([127.0.0.1]:39078 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UP0Lu-0004Or-2A for submit@debbugs.gnu.org; Sun, 07 Apr 2013 20:54:30 -0400 Received: from eggs.gnu.org ([208.118.235.92]:37419) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UP0Lq-0004Oh-Jw for submit@debbugs.gnu.org; Sun, 07 Apr 2013 20:54:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UP0IL-0002m4-5v for submit@debbugs.gnu.org; Sun, 07 Apr 2013 20:50:56 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-106.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD,USER_IN_WHITELIST autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:34797) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UP0IL-0002ly-0P for submit@debbugs.gnu.org; Sun, 07 Apr 2013 20:50:49 -0400 Received: from eggs.gnu.org ([208.118.235.92]:48757) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UP0IG-0001DI-MC for bug-gnu-emacs@gnu.org; Sun, 07 Apr 2013 20:50:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UP0IC-0002kt-L6 for bug-gnu-emacs@gnu.org; Sun, 07 Apr 2013 20:50:44 -0400 Received: from chene.dit.umontreal.ca ([132.204.246.20]:53719) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UP0IC-0002kl-Go for bug-gnu-emacs@gnu.org; Sun, 07 Apr 2013 20:50:40 -0400 Received: from pastel.home (lechon.iro.umontreal.ca [132.204.27.242]) by chene.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id r380oc1r018657; Sun, 7 Apr 2013 20:50:39 -0400 Received: by pastel.home (Postfix, from userid 20848) id 3B20467A13; Sun, 7 Apr 2013 20:50:38 -0400 (EDT) From: Stefan Monnier Message-ID: Date: Sun, 07 Apr 2013 20:50:37 -0400 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV4542=0 X-NAI-Spam-Version: 2.3.0.9362 : core <4542> : streams <936662> : uri <1387871> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 208.118.235.17 X-Spam-Score: -6.2 (------) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.2 (------) --=-=-= Content-Type: text/plain Submitting it as a bug-report Stefan --=-=-= Content-Type: message/rfc822 Content-Disposition: inline Return-Path: X-Original-To: monnier@iro.umontreal.ca Delivered-To: monnier@iro.umontreal.ca Received: from pinpin.iro.umontreal.ca (pinpin.iro.umontreal.ca [132.204.24.52]) by mercure.iro.umontreal.ca (Postfix) with ESMTP id 8035B84AF2 for ; Sun, 7 Apr 2013 15:53:56 -0400 (EDT) Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by pinpin.iro.umontreal.ca (Postfix) with ESMTP id BC4B43B8FAC for ; Sun, 7 Apr 2013 15:53:44 -0400 (EDT) Received: from localhost ([::1]:52309 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOveq-0003p2-M1 for monnier@iro.umontreal.ca; Sun, 07 Apr 2013 15:53:44 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44134) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOvee-0003ow-Mj for emacs-devel@gnu.org; Sun, 07 Apr 2013 15:53:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UOveb-0006mA-Am for emacs-devel@gnu.org; Sun, 07 Apr 2013 15:53:32 -0400 Received: from mout.web.de ([212.227.15.3]:52207) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UOveb-0006lg-0r for emacs-devel@gnu.org; Sun, 07 Apr 2013 15:53:29 -0400 Received: from drachen.dragon ([92.74.136.91]) by smtp.web.de (mrweb002) with ESMTPSA (Nemesis) id 0MEEMy-1UMlun3X7Q-00Flkr; Sun, 07 Apr 2013 21:53:27 +0200 From: Michael Heerdegen To: emacs-devel@gnu.org Subject: 24.3.50; Timer firing after being canceled Mail-Followup-To: emacs-devel@gnu.org, Tomohiro Matsuyama Date: Sun, 07 Apr 2013 21:53:24 +0200 Message-ID: <87ip3yw217.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-Provags-ID: V02:K0:OpVHC+9JZvlGHkCwRBXd/JkLI3EibW2GZZ+dBYrKIuf hf2L+27MGcI692p27NMQSKAtr6/P34HptC4QeDM5Tty0+8hmxr BWWmy85cdkgBa83yY55Jp7ykLefZqLZKxvyT0tlK9rTABhsLvg gjEJ+GR1ugqB4RrkxXXlNbUjSBNcA3TuFxTOPZ5lSPy4esEw1H IkzuqZGYAQeb/bQsBZKJCUASkQH4+VOOztgZ/W+QUE= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 212.227.15.3 Cc: Tomohiro Matsuyama X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+monnier=iro.umontreal.ca@gnu.org Sender: emacs-devel-bounces+monnier=iro.umontreal.ca@gnu.org X-DIRO-MailScanner-Information: Please contact the ISP for more information X-DIRO-MailScanner: Found to be clean X-DIRO-MailScanner-SpamCheck: n'est pas un polluriel, SpamAssassin (score=-1.94, requis 5, BAYES_00 -2.60, MC_TSTLAST 0.00, RECEIVED_FROM_NOUNK 0.66, SPF_HELO_PASS -0.00) X-DIRO-MailScanner-From: emacs-devel-bounces+monnier=iro.umontreal.ca@gnu.org X-Spam-Status: No MIME-Version: 1.0 Content-Type: text/plain Hi, This report is about the following problem (bug) raised in gnu.emacs.devel by Tomohiro Matsuyama: ,---------------------------------------------------------------------- | Hi, | | I have found a problem that cancel-timer will not work in a particular | situation where the timer takes more time to execute than a | rescheduling interval of the timer. Here is the reproducible code: | | (setq my-timer | (run-with-timer | nil 0.1 | (lambda () | (when my-timer | (cancel-timer my-timer) | (setq my-timer nil) | (sit-for 0.3))))) | | After evaluating this code several times, you may see "zombie" timers | in timer-list, though the code intends to keep at most one timer. `---------------------------------------------------------------------- I can reproduce this problem. And I have a test case that proves that timers that have been canceled (i.e., removed from `timer-list') are still called from C: --8<---------------cut here---------------start------------->8--- (defvar my-timer nil) (defun start-the-timer () (interactive) (setq my-timer (run-with-timer 0 0.1 (lambda () (cancel-timer my-timer) (sit-for 0.3))))) (advice-add 'timer-event-handler :before (lambda (timer) (when (and (eq timer my-timer) (not (memq my-timer timer-list))) (message "Why is this ever reached?")))) --8<---------------cut here---------------end--------------->8--- If you call `start-the-timer', you get the message "Why is this ever reached?" over and over. This obviously should not happen. Thanks, Michael. In GNU Emacs 24.3.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.4.2) of 2013-04-04 on dex, modified by Debian (emacs-snapshot package, version 2:20130403-1) Windowing system distributor `The X.Org Foundation', version 11.0.11204000 System Description: Debian GNU/Linux 7.0 (wheezy) Configured using: `configure --build x86_64-linux-gnu --host x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes --enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.3.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3.50/site-lisp:/usr/share/emacs/site-lisp --without-compress-info --with-crt-dir=/usr/lib/x86_64-linux-gnu/ --with-x=yes --with-x-toolkit=gtk3 --with-imagemagick=yes CFLAGS='-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' CPPFLAGS='-D_FORTIFY_SOURCE=2' LDFLAGS='-g -Wl,--as-needed -znocombreloc'' Important settings: value of $LC_ALL: de_DE.utf8 value of $LC_TIME: C value of $LANG: de_DE.utf8 locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: Dired by name --=-=-=-- From unknown Mon Jun 23 16:47:31 2025 X-Loop: help-debbugs@gnu.org Subject: bug#14156: 24.3.50; Timer firing after being canceled Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 08 Apr 2013 02:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 14156 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Michael Heerdegen Cc: 14156@debbugs.gnu.org Received: via spool by 14156-submit@debbugs.gnu.org id=B14156.136538715523909 (code B ref 14156); Mon, 08 Apr 2013 02:13:02 +0000 Received: (at 14156) by debbugs.gnu.org; 8 Apr 2013 02:12:35 +0000 Received: from localhost ([127.0.0.1]:39124 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UP1ZS-0006DZ-Kt for submit@debbugs.gnu.org; Sun, 07 Apr 2013 22:12:35 -0400 Received: from pruche.dit.umontreal.ca ([132.204.246.22]:37681) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UP1ZQ-0006DR-MJ for 14156@debbugs.gnu.org; Sun, 07 Apr 2013 22:12:33 -0400 Received: from pastel.home (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id r38291Xb009062; Sun, 7 Apr 2013 22:09:02 -0400 Received: by pastel.home (Postfix, from userid 20848) id A115667A13; Sun, 7 Apr 2013 22:09:01 -0400 (EDT) From: Stefan Monnier Message-ID: References: Date: Sun, 07 Apr 2013 22:09:01 -0400 In-Reply-To: (Stefan Monnier's message of "Sun, 07 Apr 2013 20:50:37 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV4542=0 X-NAI-Spam-Version: 2.3.0.9362 : core <4542> : streams <936693> : uri <1387909> X-Spam-Score: -5.9 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.9 (-----) > If you call `start-the-timer', you get the message "Why is this ever > reached?" over and over. This obviously should not happen. As mentioned elsewhere, this seems to be due to patch revno: 110138 fixes bugs: http://debbugs.gnu.org/12447 http://debbugs.gnu.org/12326 I installed the patch below which seems to fix it. Stefan === modified file 'lisp/emacs-lisp/timer.el' --- lisp/emacs-lisp/timer.el 2013-01-13 01:23:48 +0000 +++ lisp/emacs-lisp/timer.el 2013-04-08 01:53:53 +0000 @@ -314,7 +314,11 @@ (save-current-buffer (apply (timer--function timer) (timer--args timer))) (error (message "Error in timer: %S" err))) - (if retrigger + (when (and retrigger + ;; If the timer's been canceled, don't "retrigger" it + ;; since it might still be in the copy of timer-list kept + ;; by keyboard.c:timer_check (bug#14156). + (memq timer timer-list)) (setf (timer--triggered timer) nil))) (error "Bogus timer event")))) From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 26 20:29:02 2013 Received: (at control) by debbugs.gnu.org; 27 Apr 2013 00:29:02 +0000 Received: from localhost ([127.0.0.1]:45656 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UVt0f-00037m-Ks for submit@debbugs.gnu.org; Fri, 26 Apr 2013 20:29:02 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:43282) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UVt0d-00037X-Vz for control@debbugs.gnu.org; Fri, 26 Apr 2013 20:29:00 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1UVt0a-0000oW-E4 for control@debbugs.gnu.org; Fri, 26 Apr 2013 20:28:56 -0400 Date: Fri, 26 Apr 2013 20:28:56 -0400 Message-Id: Subject: control message for bug 14156 To: X-Mailer: mail (GNU Mailutils 2.1) From: Glenn Morris X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.0 (-----) close 14156