From unknown Mon Jun 23 02:21:31 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#23808 <23808@debbugs.gnu.org> To: bug#23808 <23808@debbugs.gnu.org> Subject: Status: Emacs 25 open-network-stream, make-network-process Reply-To: bug#23808 <23808@debbugs.gnu.org> Date: Mon, 23 Jun 2025 09:21:31 +0000 retitle 23808 Emacs 25 open-network-stream, make-network-process reassign 23808 emacs submitter 23808 Paul Eggert severity 23808 normal tag 23808 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 20 06:08:57 2016 Received: (at submit) by debbugs.gnu.org; 20 Jun 2016 10:08:57 +0000 Received: from localhost ([127.0.0.1]:47107 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bEw8X-0006lq-DX for submit@debbugs.gnu.org; Mon, 20 Jun 2016 06:08:57 -0400 Received: from eggs.gnu.org ([208.118.235.92]:50330) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bEw8V-0006le-KY for submit@debbugs.gnu.org; Mon, 20 Jun 2016 06:08:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bEw8P-0007kg-Kx for submit@debbugs.gnu.org; Mon, 20 Jun 2016 06:08:50 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:48563) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bEw8P-0007kY-HR for submit@debbugs.gnu.org; Mon, 20 Jun 2016 06:08:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41294) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bEw8N-000721-D5 for bug-gnu-emacs@gnu.org; Mon, 20 Jun 2016 06:08:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bEw8H-0007i1-7O for bug-gnu-emacs@gnu.org; Mon, 20 Jun 2016 06:08:46 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:45873) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bEw8H-0007hw-1t for bug-gnu-emacs@gnu.org; Mon, 20 Jun 2016 06:08:41 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id C1D351613C3 for ; Mon, 20 Jun 2016 03:08:40 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id DizUZnRyRwGT for ; Mon, 20 Jun 2016 03:08:39 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id D469E1613DB for ; Mon, 20 Jun 2016 03:08:39 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id mHR0gyk_8Saq for ; Mon, 20 Jun 2016 03:08:39 -0700 (PDT) Received: from [192.168.1.2] (host81-220-dynamic.35-79-r.retail.telecomitalia.it [79.35.220.81]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 49F5C1613C3 for ; Mon, 20 Jun 2016 03:08:39 -0700 (PDT) To: bug-gnu-emacs@gnu.org From: Paul Eggert Subject: Emacs 25 open-network-stream, make-network-process Message-ID: <5767C0A3.9010902@cs.ucla.edu> Date: Mon, 20 Jun 2016 12:08:35 +0200 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) [I'm passing this along from a correspondent who wishes to remain anonymous.] Hello, the recent changes to make-network-process (between jan and the end of april) may have introduced some problems, (I think they may still be current, apologies otherwise) I. misreporting the status of a failed network connection: when open-network-stream is interrupted after `SYN_SENT': For example: 1. $ iptables -A OUTPUT -p tcp --dport 6697 -j DROP -d 127.0.0.1 2. $ nc -v localhost 6697 #;hangs 3. (open-network-stream "test-proc" "test-buffer" "127.0.0.1" 6697) ; ^G 4. (list-processes) 5. (process-status "test-proc") ; open 6. (process-send-string "test-proc" "foo") ; error fd closed 7. (delete-process "test-proc") For testing on linux, step 1 makes connections to localhost:6697 hang, step 2 verifies this using `netcat'. interrupt step 3 with a ^G, step 4 lists a spurious "test-proc" which should not exist, and step 5 reports its state as 'open, while step 6 confirms the fd is closed. II. spurious "server-client-test" processes with 1. emacs --daemon -Q 2. emacsclient -t 3. list-processes AFAICT from server.el these processes should not exist. Sometimes I've seen half a dozen of these "server-client-test" processes when the daemon was slow to start up with multiple clients connecting. From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 20 09:26:24 2016 Received: (at 23808) by debbugs.gnu.org; 20 Jun 2016 13:26:24 +0000 Received: from localhost ([127.0.0.1]:47235 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bEzDc-0004US-6n for submit@debbugs.gnu.org; Mon, 20 Jun 2016 09:26:24 -0400 Received: from bouvier.getmail.no ([84.210.184.8]:41285) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bEzDZ-0004UF-VU for 23808@debbugs.gnu.org; Mon, 20 Jun 2016 09:26:22 -0400 Received: from localhost (localhost [127.0.0.1]) by bouvier.getmail.no (Postfix) with ESMTP id 775DB48E4B; Mon, 20 Jun 2016 14:42:00 +0200 (CEST) Received: from bouvier.getmail.no ([127.0.0.1]) by localhost (bouvier.get.c.bitbit.net [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id mMd552ZE7aRt; Mon, 20 Jun 2016 14:42:00 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by bouvier.getmail.no (Postfix) with ESMTP id 0940C48E1D; Mon, 20 Jun 2016 14:42:00 +0200 (CEST) X-Virus-Scanned: amavisd-new at bouvier.get.c.bitbit.net Received: from bouvier.getmail.no ([127.0.0.1]) by localhost (bouvier.get.c.bitbit.net [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 6McAD1gKkc_1; Mon, 20 Jun 2016 14:41:59 +0200 (CEST) Received: from mouse (cm-84.215.1.64.getinternet.no [84.215.1.64]) by bouvier.getmail.no (Postfix) with ESMTPS id D658748E15; Mon, 20 Jun 2016 14:41:59 +0200 (CEST) From: Lars Ingebrigtsen To: Paul Eggert Subject: Re: bug#23808: Emacs 25 open-network-stream, make-network-process References: <5767C0A3.9010902@cs.ucla.edu> Date: Mon, 20 Jun 2016 14:41:59 +0200 In-Reply-To: <5767C0A3.9010902@cs.ucla.edu> (Paul Eggert's message of "Mon, 20 Jun 2016 12:08:35 +0200") Message-ID: <87r3bst4ko.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 23808 Cc: 23808@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) Paul Eggert writes: > [I'm passing this along from a correspondent who wishes to remain > anonymous.] > > Hello, the recent changes to make-network-process (between jan and the > end of april) may have introduced some problems, (I think they may > still be current, apologies otherwise) > > I. misreporting the status of a failed network connection: when > open-network-stream is interrupted after `SYN_SENT': For example: Is this with Emacs 25 or master? Master got a reworked make-network-process in that time period... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 20 18:03:52 2016 Received: (at 23808) by debbugs.gnu.org; 20 Jun 2016 22:03:52 +0000 Received: from localhost ([127.0.0.1]:48134 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bF7IO-0004i0-Kc for submit@debbugs.gnu.org; Mon, 20 Jun 2016 18:03:52 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:57607) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bF7IM-0004hl-FP for 23808@debbugs.gnu.org; Mon, 20 Jun 2016 18:03:51 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 9A7371612D0; Mon, 20 Jun 2016 15:03:43 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id cjA7tvIR3rvy; Mon, 20 Jun 2016 15:03:43 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E75E21613F9; Mon, 20 Jun 2016 15:03:42 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id v1w-snGTenXl; Mon, 20 Jun 2016 15:03:42 -0700 (PDT) Received: from [192.168.1.2] (host194-223-dynamic.32-79-r.retail.telecomitalia.it [79.32.223.194]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 2AAC71612D0; Mon, 20 Jun 2016 15:03:41 -0700 (PDT) Subject: Re: bug#23808: Emacs 25 open-network-stream, make-network-process To: Lars Ingebrigtsen References: <5767C0A3.9010902@cs.ucla.edu> <87r3bst4ko.fsf@gnus.org> From: Paul Eggert Message-ID: <5768683B.2040809@cs.ucla.edu> Date: Tue, 21 Jun 2016 00:03:39 +0200 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <87r3bst4ko.fsf@gnus.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 23808 Cc: 23808@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) On 06/20/2016 02:41 PM, Lars Ingebrigtsen wrote: > Paul Eggert writes: > >> [I'm passing this along from a correspondent who wishes to remain >> anonymous.] >> >> Hello, the recent changes to make-network-process (between jan and the >> end of april) may have introduced some problems, (I think they may >> still be current, apologies otherwise) >> >> I. misreporting the status of a failed network connection: when >> open-network-stream is interrupted after `SYN_SENT': For example: > Is this with Emacs 25 or master? Master got a reworked > make-network-process in that time period... > Sorry, I don't know offhand. I expect it was master. From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 11 05:14:28 2016 Received: (at 23808) by debbugs.gnu.org; 11 Aug 2016 09:14:28 +0000 Received: from localhost ([127.0.0.1]:52970 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXm4K-0004Ce-1v for submit@debbugs.gnu.org; Thu, 11 Aug 2016 05:14:28 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:44187) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXm4I-0004CQ-0S for 23808@debbugs.gnu.org; Thu, 11 Aug 2016 05:14:26 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 0BD3516112C; Thu, 11 Aug 2016 02:14:20 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id pZlqeeJi6YzU; Thu, 11 Aug 2016 02:14:18 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id C5C6B161135; Thu, 11 Aug 2016 02:14:18 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Ic6N_xeciyRI; Thu, 11 Aug 2016 02:14:18 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id A684E161117; Thu, 11 Aug 2016 02:14:18 -0700 (PDT) To: 23808@debbugs.gnu.org From: Paul Eggert Subject: Re: Emacs 25 open-network-stream, make-network-process Organization: UCLA Computer Science Department Message-ID: <4dc79eb4-e2b6-9f33-cf61-af1971e10275@cs.ucla.edu> Date: Thu, 11 Aug 2016 02:14:18 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------4868CA9D6499EF0D7516D1E0" X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: 23808 Cc: Lars Ingebrigtsen X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.4 (/) This is a multi-part message in MIME format. --------------4868CA9D6499EF0D7516D1E0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable [CC'ing this to Lars, since this bug seems to have been introduced by the= async=20 DNS changes in February.] Attached is a proposed patch for Bug#23808. The patch attempts to fix the= bug=20 reported by my anonymous correspondent, who writes "It appears that befor= e the=20 refactoring, make-network-process would not create a process object if th= e=20 socket connection failed, or if it had been interrupted by ^G. However af= ter the=20 new refactoring, the process object is created upfront with status 'run',= before=20 the connection is attempted. The refactoring failed to preserve the seman= tics." --------------4868CA9D6499EF0D7516D1E0 Content-Type: text/x-diff; name="0001-Fix-process-leak-with-make-network-process.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-Fix-process-leak-with-make-network-process.patch" =46rom a21dfe515552c7d7f486950e9231b8ca2668f6cc Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 11 Aug 2016 01:56:16 -0700 Subject: [PATCH] Fix process leak with make-network-process This problem was introduced by the recent async changes (Bug#23808). * src/process.c (Fmake_process): Move USE_SAFE_ALLOCA later, so that it follows the start_process_unwind unwind-protect. Set pid to -1 while the process is being created. (start_process_unwind): Omit unnecessary emacs_abort test. (connect_network_socket): Simplify use of counts. Unwind bind_polling_period a bit earlier, so that a remove_process unwind-protect can be added when needed; this is the heart of the fix. Undo the unwind-protect just before returning. --- src/process.c | 49 ++++++++++++++++++------------------------------- src/process.h | 9 +++++---- 2 files changed, 23 insertions(+), 35 deletions(-) diff --git a/src/process.c b/src/process.c index fb32698..69d1b2a 100644 --- a/src/process.c +++ b/src/process.c @@ -238,6 +238,7 @@ static int process_output_delay_count; =20 static bool process_output_skip; =20 +static void start_process_unwind (Lisp_Object); static void create_process (Lisp_Object, char **, Lisp_Object); #ifdef USABLE_SIGIO static bool keyboard_bit_set (fd_set *); @@ -245,11 +246,8 @@ static bool keyboard_bit_set (fd_set *); static void deactivate_process (Lisp_Object); static int status_notify (struct Lisp_Process *, struct Lisp_Process *);= static int read_process_output (Lisp_Object, int); -static void handle_child_signal (int); static void create_pty (Lisp_Object); - -static Lisp_Object get_process (register Lisp_Object name); -static void exec_sentinel (Lisp_Object proc, Lisp_Object reason); +static void exec_sentinel (Lisp_Object, Lisp_Object); =20 /* Mask of bits indicating the descriptors that we wait for input on. *= / =20 @@ -1407,8 +1405,6 @@ DEFUN ("process-list", Fprocess_list, Sprocess_list= , 0, 0, 0, =0C /* Starting asynchronous inferior processes. */ =20 -static void start_process_unwind (Lisp_Object proc); - DEFUN ("make-process", Fmake_process, Smake_process, 0, MANY, 0, doc: /* Start a program in a subprocess. Return the process obje= ct for it. =20 @@ -1459,7 +1455,6 @@ usage: (make-process &rest ARGS) */) Lisp_Object buffer, name, command, program, proc, contact, current_dir= , tem; Lisp_Object xstderr, stderrproc; ptrdiff_t count =3D SPECPDL_INDEX (); - USE_SAFE_ALLOCA; =20 if (nargs =3D=3D 0) return Qnil; @@ -1508,10 +1503,6 @@ usage: (make-process &rest ARGS) */) } =20 proc =3D make_process (name); - /* If an error occurs and we can't start the process, we want to - remove it from the process list. This means that each error - check in create_process doesn't need to call remove_process - itself; it's all taken care of here. */ record_unwind_protect (start_process_unwind, proc); =20 pset_childp (XPROCESS (proc), Qt); @@ -1561,6 +1552,8 @@ usage: (make-process &rest ARGS) */) BUF_ZV (XBUFFER (buffer)), BUF_ZV_BYTE (XBUFFER (buffer))); =20 + USE_SAFE_ALLOCA; + { /* Decide coding systems for communicating with the process. Here we don't setup the structure coding_system nor pay attention to @@ -1719,18 +1712,11 @@ usage: (make-process &rest ARGS) */) return unbind_to (count, proc); } =20 -/* This function is the unwind_protect form for Fstart_process. If - PROC doesn't have its pid set, then we know someone has signaled - an error and the process wasn't started successfully, so we should - remove it from the process list. */ +/* If PROC doesn't have its pid set, then an error was signaled and + the process wasn't started successfully, so remove it. */ static void start_process_unwind (Lisp_Object proc) { - if (!PROCESSP (proc)) - emacs_abort (); - - /* Was PROC started successfully? - -2 is used for a pty with no process, eg for gdb. */ if (XPROCESS (proc)->pid <=3D 0 && XPROCESS (proc)->pid !=3D -2) remove_process (proc); } @@ -3124,7 +3110,6 @@ connect_network_socket (Lisp_Object proc, Lisp_Obje= ct addrinfos, Lisp_Object use_external_socket_p) { ptrdiff_t count =3D SPECPDL_INDEX (); - ptrdiff_t count1; int s =3D -1, outch, inch; int xerrno =3D 0; int family; @@ -3145,7 +3130,6 @@ connect_network_socket (Lisp_Object proc, Lisp_Obje= ct addrinfos, } =20 /* Do this in case we never enter the while-loop below. */ - count1 =3D SPECPDL_INDEX (); s =3D -1; =20 while (!NILP (addrinfos)) @@ -3313,7 +3297,7 @@ connect_network_socket (Lisp_Object proc, Lisp_Obje= ct addrinfos, immediate_quit =3D 0; =20 /* Discard the unwind protect closing S. */ - specpdl_ptr =3D specpdl + count1; + specpdl_ptr =3D specpdl + count; emacs_close (s); s =3D -1; if (0 <=3D socket_to_use) @@ -3398,10 +3382,7 @@ connect_network_socket (Lisp_Object proc, Lisp_Obj= ect addrinfos, p->outfd =3D outch; =20 /* Discard the unwind protect for closing S, if any. */ - specpdl_ptr =3D specpdl + count1; - - /* Unwind bind_polling_period and request_sigio. */ - unbind_to (count, Qnil); + specpdl_ptr =3D specpdl + count; =20 if (p->is_server && p->socktype !=3D SOCK_DGRAM) pset_status (p, Qlisten); @@ -3925,7 +3906,12 @@ usage: (make-network-process &rest ARGS) */) =20 if (!NILP (buffer)) buffer =3D Fget_buffer_create (buffer); + + /* Unwind bind_polling_period. */ + unbind_to (count, Qnil); + proc =3D make_process (name); + record_unwind_protect (remove_process, proc); p =3D XPROCESS (proc); pset_childp (p, contact); pset_plist (p, Fcopy_sequence (Fplist_get (contact, QCplist))); @@ -3956,8 +3942,6 @@ usage: (make-network-process &rest ARGS) */) =20 set_network_socket_coding_system (proc, host, service, name); =20 - unbind_to (count, Qnil); - /* :server BOOL */ tem =3D Fplist_get (contact, QCserver); if (!NILP (tem)) @@ -3974,6 +3958,7 @@ usage: (make-network-process &rest ARGS) */) && !NILP (Fplist_get (contact, QCnowait))) p->is_non_blocking_client =3D true; =20 + bool postpone_connection =3D false; #ifdef HAVE_GETADDRINFO_A /* With async address resolution, the list of addresses is empty, so postpone connecting to the server. */ @@ -3981,11 +3966,13 @@ usage: (make-network-process &rest ARGS) */) { p->dns_request =3D dns_request; p->status =3D list1 (Qconnect); - return proc; + postpone_connection =3D true; } #endif + if (! postpone_connection) + connect_network_socket (proc, addrinfos, use_external_socket_p); =20 - connect_network_socket (proc, addrinfos, use_external_socket_p); + specpdl_ptr =3D specpdl + count; return proc; } =20 diff --git a/src/process.h b/src/process.h index 6c227bc..9926050 100644 --- a/src/process.h +++ b/src/process.h @@ -118,10 +118,11 @@ struct Lisp_Process /* After this point, there are no Lisp_Objects any more. */ /* alloc.c assumes that `pid' is the first such non-Lisp slot. */ =20 - /* Number of this process. - allocate_process assumes this is the first non-Lisp_Object field.= - A value 0 is used for pseudo-processes such as network or serial - connections. */ + /* Process ID. A positive value is a child process ID. + Zero is for pseudo-processes such as network or serial connection= s, + or for processes that have not been fully created yet. + -1 is for a process that was not created successfully. + -2 is for a pty with no process, e.g., for GDB. */ pid_t pid; /* Descriptor by which we read from this process. */ int infd; --=20 2.5.5 --------------4868CA9D6499EF0D7516D1E0-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 11 05:18:08 2016 Received: (at control) by debbugs.gnu.org; 11 Aug 2016 09:18:09 +0000 Received: from localhost ([127.0.0.1]:52974 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXm7s-0004IW-OO for submit@debbugs.gnu.org; Thu, 11 Aug 2016 05:18:08 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:44296) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXm7r-0004IJ-Bj for control@debbugs.gnu.org; Thu, 11 Aug 2016 05:18:07 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 15696161117 for ; Thu, 11 Aug 2016 02:18:02 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id U4JLhg564Vya for ; Thu, 11 Aug 2016 02:18:01 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 63213161125 for ; Thu, 11 Aug 2016 02:18:01 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id AQYwGMEOPxIy for ; Thu, 11 Aug 2016 02:18:01 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 494AA161117 for ; Thu, 11 Aug 2016 02:18:01 -0700 (PDT) To: control@debbugs.gnu.org From: Paul Eggert Subject: 23808 has a patch Organization: UCLA Computer Science Department Message-ID: <03c7ac30-0d93-0192-90e0-d26a5a4775a6@cs.ucla.edu> Date: Thu, 11 Aug 2016 02:18:01 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.4 (/) tags 23808 patch From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 11 06:42:16 2016 Received: (at 23808) by debbugs.gnu.org; 11 Aug 2016 10:42:16 +0000 Received: from localhost ([127.0.0.1]:53022 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXnRH-0007vt-Fv for submit@debbugs.gnu.org; Thu, 11 Aug 2016 06:42:15 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:35658) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXnRF-0007vi-2d for 23808@debbugs.gnu.org; Thu, 11 Aug 2016 06:42:13 -0400 Received: from cm-84.215.1.64.getinternet.no ([84.215.1.64] helo=stories) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1bXnR3-0007p6-O9; Thu, 11 Aug 2016 12:42:06 +0200 From: Lars Ingebrigtsen To: Paul Eggert Subject: Re: bug#23808: Emacs 25 open-network-stream, make-network-process References: <5767C0A3.9010902@cs.ucla.edu> <4dc79eb4-e2b6-9f33-cf61-af1971e10275@cs.ucla.edu> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEX9+cIFAgZOhagCAAH+ /+E4YIWqu6QYHi9B9JI1AAACLUlEQVQ4jW2TTY+jMAyGrVGbPUdolWtlkcw54g9wQD2PojVcESLp mV1l8vfXDtDOflhKad4Hv/mwAQBQ0dmAe1hLIY5wRErE0oECvoASgfCMLyA8rSSSO50wWKSa4VIK TqWqWuLAZTNUEG+cLYMBTaYQBasNZsS2VzTDNwFam1IovDNgs3VQYYaIDDqvtS6SkTAtAi5AAryA 3F7zONS44wCZB1uVTef1GnZ9UOOgKsguxZJTbE/g2E3ADaC35OJ6gPs4XAP2rMJluJKz/Pgb8IQc ppnV/jLcPxi4Xs7Oc3KO5fr/BcTCuvbQBUR8AnS3y7n4jxPIbHFuPkvwB3hzr2K0vQ0ODnB9AWzB 1sWr9xXDV4DuWJtdw1Fyi6t0AIN5BxPXJRMVbdqF34EIctu9xcnrxhuh6xIwqALEt6csWu0bQ1Ka dRnj+ChQOEUR2qYzAadSfq7x4zG+FzDh0r+RSNwrUw44x5lu0wY+3+5LBTojbZkSLjQXDZ0Zgfdq N+mWrdRWoiTAZ6CAllNqcOMRKQFdnjmBfnV7yHHCCaKlrYo8vC40CvCdmSNNVZIWk6OMe4ZxfBUN vy9L6IZP/xG3CnhFrZuaU3/9Z9QC/gn/+fg/0N8PoP/U+ZZ34Ddet7rveqf9dlj5UrJsoBPc+Ea2 XYEpXLxJEO+u2U9TgZYrTwsXtkZ3ZnjNZRikx9Skz9ityO39CfDYvgBfwvnZAEzlBZ4JQtQL8Be+ PkF/mv0G91Xqa8i3xrAAAAAASUVORK5CYII= Date: Thu, 11 Aug 2016 12:41:22 +0200 In-Reply-To: <4dc79eb4-e2b6-9f33-cf61-af1971e10275@cs.ucla.edu> (Paul Eggert's message of "Thu, 11 Aug 2016 02:14:18 -0700") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 23808 Cc: 23808@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) Paul Eggert writes: > [CC'ing this to Lars, since this bug seems to have been introduced by > the async DNS changes in February.] > > Attached is a proposed patch for Bug#23808. The patch attempts to fix > the bug reported by my anonymous correspondent, who writes "It appears > that before the refactoring, make-network-process would not create a > process object if the socket connection failed, or if it had been > interrupted by ^G. However after the new refactoring, the process > object is created upfront with status 'run', before the connection is > attempted. The refactoring failed to preserve the semantics." > > From a21dfe515552c7d7f486950e9231b8ca2668f6cc Mon Sep 17 00:00:00 2001 > From: Paul Eggert > Date: Thu, 11 Aug 2016 01:56:16 -0700 > Subject: [PATCH] Fix process leak with make-network-process > > This problem was introduced by the recent async changes (Bug#23808). > * src/process.c (Fmake_process): Move USE_SAFE_ALLOCA later, > so that it follows the start_process_unwind unwind-protect. > Set pid to -1 while the process is being created. > (start_process_unwind): Omit unnecessary emacs_abort test. > (connect_network_socket): Simplify use of counts. Unwind > bind_polling_period a bit earlier, so that a remove_process > unwind-protect can be added when needed; this is the heart of > the fix. Undo the unwind-protect just before returning. > --- > src/process.c | 49 ++++++++++++++++++------------------------------- > src/process.h | 9 +++++---- > 2 files changed, 23 insertions(+), 35 deletions(-) > > diff --git a/src/process.c b/src/process.c > index fb32698..69d1b2a 100644 > --- a/src/process.c > +++ b/src/process.c > @@ -238,6 +238,7 @@ static int process_output_delay_count; > > static bool process_output_skip; > > +static void start_process_unwind (Lisp_Object); > static void create_process (Lisp_Object, char **, Lisp_Object); > #ifdef USABLE_SIGIO > static bool keyboard_bit_set (fd_set *); > @@ -245,11 +246,8 @@ static bool keyboard_bit_set (fd_set *); > static void deactivate_process (Lisp_Object); > static int status_notify (struct Lisp_Process *, struct Lisp_Process *); > static int read_process_output (Lisp_Object, int); > -static void handle_child_signal (int); > static void create_pty (Lisp_Object); > - > -static Lisp_Object get_process (register Lisp_Object name); > -static void exec_sentinel (Lisp_Object proc, Lisp_Object reason); > +static void exec_sentinel (Lisp_Object, Lisp_Object); > > /* Mask of bits indicating the descriptors that we wait for input on. */ > > @@ -1407,8 +1405,6 @@ DEFUN ("process-list", Fprocess_list, Sprocess_list, 0, 0, 0, > > /* Starting asynchronous inferior processes. */ > > -static void start_process_unwind (Lisp_Object proc); > - > DEFUN ("make-process", Fmake_process, Smake_process, 0, MANY, 0, > doc: /* Start a program in a subprocess. Return the process object for it. > > @@ -1459,7 +1455,6 @@ usage: (make-process &rest ARGS) */) > Lisp_Object buffer, name, command, program, proc, contact, current_dir, tem; > Lisp_Object xstderr, stderrproc; > ptrdiff_t count = SPECPDL_INDEX (); > - USE_SAFE_ALLOCA; > > if (nargs == 0) > return Qnil; > @@ -1508,10 +1503,6 @@ usage: (make-process &rest ARGS) */) > } > > proc = make_process (name); > - /* If an error occurs and we can't start the process, we want to > - remove it from the process list. This means that each error > - check in create_process doesn't need to call remove_process > - itself; it's all taken care of here. */ > record_unwind_protect (start_process_unwind, proc); > > pset_childp (XPROCESS (proc), Qt); > @@ -1561,6 +1552,8 @@ usage: (make-process &rest ARGS) */) > BUF_ZV (XBUFFER (buffer)), > BUF_ZV_BYTE (XBUFFER (buffer))); > > + USE_SAFE_ALLOCA; > + > { > /* Decide coding systems for communicating with the process. Here > we don't setup the structure coding_system nor pay attention to > @@ -1719,18 +1712,11 @@ usage: (make-process &rest ARGS) */) > return unbind_to (count, proc); > } > > -/* This function is the unwind_protect form for Fstart_process. If > - PROC doesn't have its pid set, then we know someone has signaled > - an error and the process wasn't started successfully, so we should > - remove it from the process list. */ > +/* If PROC doesn't have its pid set, then an error was signaled and > + the process wasn't started successfully, so remove it. */ > static void > start_process_unwind (Lisp_Object proc) > { > - if (!PROCESSP (proc)) > - emacs_abort (); > - > - /* Was PROC started successfully? > - -2 is used for a pty with no process, eg for gdb. */ > if (XPROCESS (proc)->pid <= 0 && XPROCESS (proc)->pid != -2) > remove_process (proc); > } > @@ -3124,7 +3110,6 @@ connect_network_socket (Lisp_Object proc, Lisp_Object addrinfos, > Lisp_Object use_external_socket_p) > { > ptrdiff_t count = SPECPDL_INDEX (); > - ptrdiff_t count1; > int s = -1, outch, inch; > int xerrno = 0; > int family; > @@ -3145,7 +3130,6 @@ connect_network_socket (Lisp_Object proc, Lisp_Object addrinfos, > } > > /* Do this in case we never enter the while-loop below. */ > - count1 = SPECPDL_INDEX (); > s = -1; > > while (!NILP (addrinfos)) > @@ -3313,7 +3297,7 @@ connect_network_socket (Lisp_Object proc, Lisp_Object addrinfos, > immediate_quit = 0; > > /* Discard the unwind protect closing S. */ > - specpdl_ptr = specpdl + count1; > + specpdl_ptr = specpdl + count; > emacs_close (s); > s = -1; > if (0 <= socket_to_use) > @@ -3398,10 +3382,7 @@ connect_network_socket (Lisp_Object proc, Lisp_Object addrinfos, > p->outfd = outch; > > /* Discard the unwind protect for closing S, if any. */ > - specpdl_ptr = specpdl + count1; > - > - /* Unwind bind_polling_period and request_sigio. */ > - unbind_to (count, Qnil); > + specpdl_ptr = specpdl + count; > > if (p->is_server && p->socktype != SOCK_DGRAM) > pset_status (p, Qlisten); > @@ -3925,7 +3906,12 @@ usage: (make-network-process &rest ARGS) */) > > if (!NILP (buffer)) > buffer = Fget_buffer_create (buffer); > + > + /* Unwind bind_polling_period. */ > + unbind_to (count, Qnil); > + > proc = make_process (name); > + record_unwind_protect (remove_process, proc); > p = XPROCESS (proc); > pset_childp (p, contact); > pset_plist (p, Fcopy_sequence (Fplist_get (contact, QCplist))); > @@ -3956,8 +3942,6 @@ usage: (make-network-process &rest ARGS) */) > > set_network_socket_coding_system (proc, host, service, name); > > - unbind_to (count, Qnil); > - > /* :server BOOL */ > tem = Fplist_get (contact, QCserver); > if (!NILP (tem)) > @@ -3974,6 +3958,7 @@ usage: (make-network-process &rest ARGS) */) > && !NILP (Fplist_get (contact, QCnowait))) > p->is_non_blocking_client = true; > > + bool postpone_connection = false; > #ifdef HAVE_GETADDRINFO_A > /* With async address resolution, the list of addresses is empty, so > postpone connecting to the server. */ > @@ -3981,11 +3966,13 @@ usage: (make-network-process &rest ARGS) */) > { > p->dns_request = dns_request; > p->status = list1 (Qconnect); > - return proc; > + postpone_connection = true; > } > #endif > + if (! postpone_connection) > + connect_network_socket (proc, addrinfos, use_external_socket_p); > > - connect_network_socket (proc, addrinfos, use_external_socket_p); > + specpdl_ptr = specpdl + count; > return proc; > } > > diff --git a/src/process.h b/src/process.h > index 6c227bc..9926050 100644 > --- a/src/process.h > +++ b/src/process.h > @@ -118,10 +118,11 @@ struct Lisp_Process > /* After this point, there are no Lisp_Objects any more. */ > /* alloc.c assumes that `pid' is the first such non-Lisp slot. */ > > - /* Number of this process. > - allocate_process assumes this is the first non-Lisp_Object field. > - A value 0 is used for pseudo-processes such as network or serial > - connections. */ > + /* Process ID. A positive value is a child process ID. > + Zero is for pseudo-processes such as network or serial connections, > + or for processes that have not been fully created yet. > + -1 is for a process that was not created successfully. > + -2 is for a pty with no process, e.g., for GDB. */ > pid_t pid; > /* Descriptor by which we read from this process. */ > int infd; -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 11 06:42:50 2016 Received: (at 23808) by debbugs.gnu.org; 11 Aug 2016 10:42:50 +0000 Received: from localhost ([127.0.0.1]:53025 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXnRq-0007wd-2i for submit@debbugs.gnu.org; Thu, 11 Aug 2016 06:42:50 -0400 Received: from hermes.netfonds.no ([80.91.224.195]:35683) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXnRo-0007wW-Rn for 23808@debbugs.gnu.org; Thu, 11 Aug 2016 06:42:49 -0400 Received: from cm-84.215.1.64.getinternet.no ([84.215.1.64] helo=stories) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1bXnRm-0007qO-38; Thu, 11 Aug 2016 12:42:48 +0200 From: Lars Ingebrigtsen To: Paul Eggert Subject: Re: bug#23808: Emacs 25 open-network-stream, make-network-process References: <5767C0A3.9010902@cs.ucla.edu> <4dc79eb4-e2b6-9f33-cf61-af1971e10275@cs.ucla.edu> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEX9+cIFAgZOhagCAAH+ /+E4YIWqu6QYHi9B9JI1AAACLUlEQVQ4jW2TTY+jMAyGrVGbPUdolWtlkcw54g9wQD2PojVcESLp mV1l8vfXDtDOflhKad4Hv/mwAQBQ0dmAe1hLIY5wRErE0oECvoASgfCMLyA8rSSSO50wWKSa4VIK TqWqWuLAZTNUEG+cLYMBTaYQBasNZsS2VzTDNwFam1IovDNgs3VQYYaIDDqvtS6SkTAtAi5AAryA 3F7zONS44wCZB1uVTef1GnZ9UOOgKsguxZJTbE/g2E3ADaC35OJ6gPs4XAP2rMJluJKz/Pgb8IQc ppnV/jLcPxi4Xs7Oc3KO5fr/BcTCuvbQBUR8AnS3y7n4jxPIbHFuPkvwB3hzr2K0vQ0ODnB9AWzB 1sWr9xXDV4DuWJtdw1Fyi6t0AIN5BxPXJRMVbdqF34EIctu9xcnrxhuh6xIwqALEt6csWu0bQ1Ka dRnj+ChQOEUR2qYzAadSfq7x4zG+FzDh0r+RSNwrUw44x5lu0wY+3+5LBTojbZkSLjQXDZ0Zgfdq N+mWrdRWoiTAZ6CAllNqcOMRKQFdnjmBfnV7yHHCCaKlrYo8vC40CvCdmSNNVZIWk6OMe4ZxfBUN vy9L6IZP/xG3CnhFrZuaU3/9Z9QC/gn/+fg/0N8PoP/U+ZZ34Ddet7rveqf9dlj5UrJsoBPc+Ea2 XYEpXLxJEO+u2U9TgZYrTwsXtkZ3ZnjNZRikx9Skz9ityO39CfDYvgBfwvnZAEzlBZ4JQtQL8Be+ PkF/mv0G91Xqa8i3xrAAAAAASUVORK5CYII= Date: Thu, 11 Aug 2016 12:42:06 +0200 In-Reply-To: <4dc79eb4-e2b6-9f33-cf61-af1971e10275@cs.ucla.edu> (Paul Eggert's message of "Thu, 11 Aug 2016 02:14:18 -0700") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 23808 Cc: 23808@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) Paul Eggert writes: > This problem was introduced by the recent async changes (Bug#23808). > * src/process.c (Fmake_process): Move USE_SAFE_ALLOCA later, > so that it follows the start_process_unwind unwind-protect. > Set pid to -1 while the process is being created. > (start_process_unwind): Omit unnecessary emacs_abort test. > (connect_network_socket): Simplify use of counts. Unwind > bind_polling_period a bit earlier, so that a remove_process > unwind-protect can be added when needed; this is the heart of > the fix. Undo the unwind-protect just before returning. Seems like the right fix to me, I think? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 11 14:26:57 2016 Received: (at 23808-done) by debbugs.gnu.org; 11 Aug 2016 18:26:57 +0000 Received: from localhost ([127.0.0.1]:54312 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXugz-0000pU-5T for submit@debbugs.gnu.org; Thu, 11 Aug 2016 14:26:57 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:45585) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bXugx-0000pI-JG for 23808-done@debbugs.gnu.org; Thu, 11 Aug 2016 14:26:56 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id C05C016112C; Thu, 11 Aug 2016 11:26:49 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id bt6cShewt8TG; Thu, 11 Aug 2016 11:26:49 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 1651116116B; Thu, 11 Aug 2016 11:26:49 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id srVFH-9hqhMS; Thu, 11 Aug 2016 11:26:49 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id EF6F116112C; Thu, 11 Aug 2016 11:26:48 -0700 (PDT) Subject: Re: bug#23808: Emacs 25 open-network-stream, make-network-process To: Lars Ingebrigtsen References: <5767C0A3.9010902@cs.ucla.edu> <4dc79eb4-e2b6-9f33-cf61-af1971e10275@cs.ucla.edu> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <57e42f5f-1175-ffc6-a7a9-bff2cc7b799e@cs.ucla.edu> Date: Thu, 11 Aug 2016 11:26:44 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 23808-done Cc: 23808-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) Lars Ingebrigtsen wrote: > Seems like the right fix to me, I think? Thanks for looking at it. I installed it and am closing this bug report. From unknown Mon Jun 23 02:21:31 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 09 Sep 2016 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator