From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Noam Postavsky Newsgroups: gmane.emacs.bugs Subject: bug#15695: 24.3; multiple async shell commands at once run randomly Date: Mon, 29 Jan 2018 08:52:50 -0500 Message-ID: <87wp00ixfx.fsf@users.sourceforge.net> References: <877gd3ofhy.fsf@yahoo.fr> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1517233905 25569 195.159.176.226 (29 Jan 2018 13:51:45 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 29 Jan 2018 13:51:45 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.90 (gnu/linux) Cc: 15695@debbugs.gnu.org To: Nicolas Richard Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jan 29 14:51:41 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eg9qH-000531-Tv for geb-bug-gnu-emacs@m.gmane.org; Mon, 29 Jan 2018 14:51:26 +0100 Original-Received: from localhost ([::1]:39397 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eg9sA-0001Gr-Bu for geb-bug-gnu-emacs@m.gmane.org; Mon, 29 Jan 2018 08:53:22 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36862) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eg9rw-0001D6-SJ for bug-gnu-emacs@gnu.org; Mon, 29 Jan 2018 08:53:14 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eg9rq-0001G7-SN for bug-gnu-emacs@gnu.org; Mon, 29 Jan 2018 08:53:08 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:39304) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eg9rq-0001G1-NH for bug-gnu-emacs@gnu.org; Mon, 29 Jan 2018 08:53:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eg9rq-0007ui-Fv for bug-gnu-emacs@gnu.org; Mon, 29 Jan 2018 08:53:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 29 Jan 2018 13:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 15695 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: confirmed Original-Received: via spool by 15695-submit@debbugs.gnu.org id=B15695.151723398130413 (code B ref 15695); Mon, 29 Jan 2018 13:53:02 +0000 Original-Received: (at 15695) by debbugs.gnu.org; 29 Jan 2018 13:53:01 +0000 Original-Received: from localhost ([127.0.0.1]:47201 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eg9rp-0007uP-I5 for submit@debbugs.gnu.org; Mon, 29 Jan 2018 08:53:01 -0500 Original-Received: from mail-it0-f44.google.com ([209.85.214.44]:54931) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eg9rm-0007u4-VE; Mon, 29 Jan 2018 08:52:59 -0500 Original-Received: by mail-it0-f44.google.com with SMTP id k131so8377112ith.4; Mon, 29 Jan 2018 05:52:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=PZAP28HeHbJuJGL++lFpDnS17mQpFULb20JxaWgkWTA=; b=R1Rby5W8pBIPwYUq4kpBIQR3sLl+eODynhsDldLS7/6Gr2eaXdswRj7CYhZQTJH9Y3 atpR8v//6m9o4JHiOAzflUkiq6QuJBsjmjV45BNTTTPGsQLBTplZaf2iBjEv3jU91Tjv 3ARPASyzx9E63vZboVexnjKTYO0pDfRT2Q9Bp5RiRvv7Ji6ho9yQn+sS0F9hDyl93WkY IwRKGCp6qJ/b+GBPOhxK8YL6JS97fgWdpCQooqOvx5qmQm7n3pXfL/CJSpB91b5HcxBB 39k0UJoe0cMLmo2tFXrk07YGmNPT4JvTLJC7hnlw7mSlNtlOyob/2Bn9TdErkvFR3w7D pIbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=PZAP28HeHbJuJGL++lFpDnS17mQpFULb20JxaWgkWTA=; b=i0JuUm0L/A166vzA3fxoFZ8lixI0Rv+tmhsPqqBSbRzWnTqSwuLowrUNEfik00V1/1 4Ifu9s1WXPh/l6l2/4r1s9Th+6thuhIPxUGMJID0ofyt/uwS8YF//2fOlAKY+fg4Nazj C73hUtztB84WMG94V/4lY1XiLTD7AYnBXOINiPvXfl0emYW/X7rqKMd8pB7ACNREXOJX 8xxq3m4f3h7duSGB7KaZAw7/CDvsAZSWva3Qmoy9llzYipIq4/KlA2aFGR28ksCcPI+G PGO/U7ftoaNbjD1z6CK867HJ9Lk9DzJ5gGyjpJcpVVzVnTtQ+HcPYCY6Bx/LnSaCTiNa e+Wg== X-Gm-Message-State: AKwxytcWbkLk8EY/X2odKt8Je1kFaQB9DWb9rFkbM4nueDZHxDf7tUYX 8fQ83g7dS7Q2zWjUKo7SG/bbOK3u X-Google-Smtp-Source: AH8x225vddQ5opb30GZWIPId2UauEdSadoV7RS+v4Kr6nweQXJ5Zcl7GwqbaGxslQAt2pmd002w7Lg== X-Received: by 10.36.178.26 with SMTP id u26mr8385289ite.4.1517233972971; Mon, 29 Jan 2018 05:52:52 -0800 (PST) Original-Received: from zebian ([45.2.119.34]) by smtp.googlemail.com with ESMTPSA id r13sm4243257ioa.4.2018.01.29.05.52.51 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 29 Jan 2018 05:52:51 -0800 (PST) In-Reply-To: <877gd3ofhy.fsf@yahoo.fr> (Nicolas Richard's message of "Wed, 23 Oct 2013 23:15:53 +0200") 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: 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" Xref: news.gmane.org gmane.emacs.bugs:142649 Archived-At: retitle 15695 Incomplete data from subprocesses with pty connections quit Nicolas Richard writes: > (defvar statistics nil "Hash table for keeping statistics") > (defun yf/keep-stats (process change) "Used as sentinel" > (with-current-buffer (process-buffer process) > (if (equal change "finished\n") > (puthash (buffer-string) (1+ (or (gethash (buffer-string) statistics) 0)) statistics) > (error "Unknown change for process %s: %s" process change)))) > (defun yf/pp-hash-table (hashtable) "Pretty print hash table" > (let ((res)) > (maphash (lambda (k v) (setq res (concat res (yf/pp-hash--line k v)))) hashtable) > (or res ""))) > (defun yf/pp-hash--line (key value) "Pretty print one hash line" > (format "%s: %s\n" (pp key) (pp value))) > (progn > (let ((n 820)) > (setq statistics (make-hash-table :test 'equal)) > (dotimes (i n) > (let* ((buffername (concat "Shell-test" (number-to-string i))) > (buffer (get-buffer-create buffername))) > (with-current-buffer buffer > (erase-buffer)) > (set-process-sentinel > (start-process buffername > buffer > shell-file-name > shell-command-switch "echo foo&echo bar&echo baz") > #'yf/keep-stats))) > t) > (sit-for 2) > (insert (yf/pp-hash-table statistics))) If I set process-connection-type to nil, then I get expected results (though I had to reduce n in order to avoid bumping into the file descriptor limit): "baz\nfoo\nbar\n": 58 "baz\nbar\nfoo\n": 41 "foo\nbaz\nbar\n": 1 Without setting process-connection-type (all tests with 26.0.91): "baz\n": 86 "baz\nbar\n": 5 "baz\nfoo\n": 6 "foo\nbaz\n": 1 "baz\nfoo\nbar\n": 2 This problem is also talked about in [1] and [2]. [1]: http://nullprogram.com/blog/2018/01/17/ [2]: http://nullprogram.com/blog/2014/02/06/#pseudo-terminals