From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#18116: 24.3.92; url-http calls CALLBACK recursively with malformed CBARGS if the former calls `delete-process' Date: Tue, 09 Sep 2014 22:24:46 -0400 Message-ID: References: <86ppgr4hqe.fsf@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1410315933 25754 80.91.229.3 (10 Sep 2014 02:25:33 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 10 Sep 2014 02:25:33 +0000 (UTC) Cc: 18116@debbugs.gnu.org To: Dmitry Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Sep 10 04:25:27 2014 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 1XRXaw-0008Sb-1K for geb-bug-gnu-emacs@m.gmane.org; Wed, 10 Sep 2014 04:25:18 +0200 Original-Received: from localhost ([::1]:52849 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XRXav-0005TT-Jt for geb-bug-gnu-emacs@m.gmane.org; Tue, 09 Sep 2014 22:25:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44106) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XRXam-0005Kk-S5 for bug-gnu-emacs@gnu.org; Tue, 09 Sep 2014 22:25:14 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XRXag-000395-VK for bug-gnu-emacs@gnu.org; Tue, 09 Sep 2014 22:25:08 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:44268) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XRXag-00038n-So for bug-gnu-emacs@gnu.org; Tue, 09 Sep 2014 22:25:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1XRXag-0008DP-6K for bug-gnu-emacs@gnu.org; Tue, 09 Sep 2014 22:25:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 10 Sep 2014 02:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18116 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 18116-submit@debbugs.gnu.org id=B18116.141031589231554 (code B ref 18116); Wed, 10 Sep 2014 02:25:02 +0000 Original-Received: (at 18116) by debbugs.gnu.org; 10 Sep 2014 02:24:52 +0000 Original-Received: from localhost ([127.0.0.1]:35832 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XRXaV-0008Cr-2B for submit@debbugs.gnu.org; Tue, 09 Sep 2014 22:24:51 -0400 Original-Received: from chene.dit.umontreal.ca ([132.204.246.20]:54367) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XRXaS-0008Ci-HH for 18116@debbugs.gnu.org; Tue, 09 Sep 2014 22:24:49 -0400 Original-Received: from ceviche.home (lechon.iro.umontreal.ca [132.204.27.242]) by chene.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id s8A2Olj5012785; Tue, 9 Sep 2014 22:24:47 -0400 Original-Received: by ceviche.home (Postfix, from userid 20848) id 15DD2660D3; Tue, 9 Sep 2014 22:24:46 -0400 (EDT) In-Reply-To: <86ppgr4hqe.fsf@yandex.ru> (Dmitry's message of "Sun, 27 Jul 2014 06:12:57 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV5059=0 X-NAI-Spam-Version: 2.3.0.9378 : core <5059> : inlines <1273> : streams <1285918> : uri <1812227> 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: 140.186.70.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:93220 Archived-At: > (require 'url-http) > (defvar uht-counter 0) > (defun uht-callback (status) > (declare (special url-http-process)) > (message "%s %s" uht-counter status) > (delete-process url-http-process)) > (defun uht-test () > (setq uht-counter (1+ uht-counter)) > ;; The port must not be open. > (url-http (url-generic-parse-url "http://localhost:3333") #'uht-callbac= k (list 'foo))) [ Thanks a lot =D3scar for bisecting this one. ] Dmitry, could you explain a bit more of the context? The problem is that calling `delete-process' may run the sentinel (and since this is code run from the sentinel, it may end up calling the sentinel recursively). So if you don't want the sentinel to be called recursively, you'll want to (set-process-sentinel url-http-process nil) before calling delete-process (or refrain from calling delete-process). > If the callback expects STATUS to contain some specific data structure, > that can cause breakage, see https://github.com/marijnh/tern/issues/350 > for an example. The format looks normal: the STATUS is expected to be a plist holding the "history" of the connection. It can contain various ":error FOO" and ":redirect BAR" entries. I think the problem comes from a doc error, where url-http points to url-retrieve for the doc of CBARGS, whereas it uses the format of url-retrieve-internal instead. Stefan