Ludovic Courtès <ludo@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at 72092) by debbugs.gnu.org; 13 Jul 2024 18:23:03 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jul 13 14:23:03 2024 Received: from localhost ([127.0.0.1]:56779 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sShOh-0000Uc-46 for submit <at> debbugs.gnu.org; Sat, 13 Jul 2024 14:23:03 -0400 Received: from mail.nborghese.com ([207.148.28.48]:42354) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <nathan_mail@HIDDEN>) id 1sShOe-0000UA-Gr for 72092 <at> debbugs.gnu.org; Sat, 13 Jul 2024 14:23:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=062122; bh=I7gj/uVTTiU1z SegR/Py49e01qvqMuBO/X9kRQQnqMY=; h=to:subject:from:date; d=nborghese.com; b=oZ+PHaXkzzyq4WEAerMr619eRj2VDQHj1Q73uNqBchtF5lpjwZq SssqmZ0qrnnLKZ3lvgaJLmi28wglYAEsglhVFUmqIy4BV9XdboKyr5Fyvt98GinGcKeYo3 MiTOMn3aIjDDHgxxzXmEP0hvED22Qobge0zdvNQlgf5va6ofYw= Received: by nborghese.com (OpenSMTPD) with ESMTPSA id 29cad47b (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sat, 13 Jul 2024 18:22:51 +0000 (UTC) Content-Type: multipart/mixed; boundary="------------Jb0SC31Q05tuixOe1BZ7vzWj" Message-ID: <0ea0f005-32be-2fa1-b96a-e67d3e4ec3f6@HIDDEN> Date: Sat, 13 Jul 2024 18:22:58 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 From: nathan <nathan_mail@HIDDEN> Subject: [PATCH] fix file descriptor leak in piped_process/system*/popen/etc To: 72092 <at> debbugs.gnu.org, jakub-w@HIDDEN Content-Language: en-US X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 72092 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------Jb0SC31Q05tuixOe1BZ7vzWj Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit fix is attached test code: (use-modules (ice-9 ftw)) (use-modules (ice-9 popen)) (define (print-open) (format #t "~a\n" (length (scandir "/proc/self/fd")))) (let ((p (%make-void-port "rw"))) (print-open) (parameterize ((current-output-port p) (current-input-port p) (current-error-port p)) (system* "ls")) (close-port p) (print-open)) (parameterize ((current-error-port (%make-void-port OPEN_BOTH))) (while #t (close-pipe (open-pipe* OPEN_READ "free")) (print-open) (sleep 1))) there's still a one-time increase in the file descriptors, but it seems unrelated. or at least much harder to find. (by the way, ignoring current-output-port and using /dev/null is bad. it would be nice to open a pipe in that case and forward whatever the child writes to the scheme port. but that would require a separate thread, and it may be impossible to do something like that for current-input-port) --------------Jb0SC31Q05tuixOe1BZ7vzWj Content-Type: text/x-patch; charset=UTF-8; name="0001-fix-file-descriptor-leak-in-piped_process-system-pop.patch" Content-Disposition: attachment; filename*0="0001-fix-file-descriptor-leak-in-piped_process-system-pop.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0NjZlNGFiMmMyY2IxZjkzYWY0ODEyOTBjMWQzNmRiMDA5NzZiOGNlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBuYXRoYW4gPG5hdGhhbl9tYWlsQG5ib3JnaGVzZS5j b20+CkRhdGU6IFNhdCwgMTMgSnVsIDIwMjQgMTM6MjU6MDggLTA0MDAKU3ViamVjdDogW1BB VENIXSBmaXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgaW4gcGlwZWRfcHJvY2Vzcy9zeXN0ZW0q L3BvcGVuL2V0YwoKKiBsaWJndWlsZS9wb3NpeC5jIChwaXBlZF9wcm9jZXNzKTogY2xvc2Ug YXV0b21hdGljYWxseSBvcGVuZWQgL2Rldi9udWxsCiAgRml4IGJ1ZyAjNzIwOTIKLS0tCiBs aWJndWlsZS9wb3NpeC5jIHwgMzMgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbGliZ3VpbGUvcG9zaXguYyBiL2xpYmd1aWxlL3Bvc2l4LmMKaW5kZXgg OWE4NzNiNWExLi44MDI4YjQ5M2YgMTAwNjQ0Ci0tLSBhL2xpYmd1aWxlL3Bvc2l4LmMKKysr IGIvbGliZ3VpbGUvcG9zaXguYwpAQCAtMTUzNSwzMiArMTUzNSwzMiBAQCBzdGF0aWMgaW50 CiBwaXBlZF9wcm9jZXNzIChwaWRfdCAqcGlkLCBTQ00gcHJvZywgU0NNIGFyZ3MsIFNDTSBm cm9tLCBTQ00gdG8pCiAjZGVmaW5lIEZVTkNfTkFNRSAicGlwZWQtcHJvY2VzcyIKIHsKLSAg aW50IHJlYWRpbmcsIHdyaXRpbmc7CiAgIGludCBjMnBbMl07IC8qIENoaWxkIHRvIHBhcmVu dC4gICovCiAgIGludCBwMmNbMl07IC8qIFBhcmVudCB0byBjaGlsZC4gICovCiAgIGludCBp biA9IC0xLCBvdXQgPSAtMSwgZXJyID0gLTE7CiAgIGNoYXIgKmV4ZWNfZmlsZTsKICAgY2hh ciAqKmV4ZWNfYXJndjsKICAgY2hhciAqKmV4ZWNfZW52ID0gZW52aXJvbjsKKyAgaW50IHRv X2Nsb3NlWzNdOworICBpbnQgbnVtX3RvX2Nsb3NlPTA7CiAKICAgZXhlY19maWxlID0gc2Nt X3RvX2xvY2FsZV9zdHJpbmcgKHByb2cpOwogICBleGVjX2FyZ3YgPSBzY21faV9hbGxvY2F0 ZV9zdHJpbmdfcG9pbnRlcnMgKHNjbV9jb25zIChwcm9nLCBhcmdzKSk7CiAKLSAgcmVhZGlu ZyA9IHNjbV9pc19wYWlyIChmcm9tKTsKLSAgd3JpdGluZyA9IHNjbV9pc19wYWlyICh0byk7 Ci0KLSAgaWYgKHJlYWRpbmcpCisgIGlmIChzY21faXNfcGFpciAoZnJvbSkpCiAgICAgewog ICAgICAgYzJwWzBdID0gc2NtX3RvX2ludCAoc2NtX2NhciAoZnJvbSkpOwogICAgICAgYzJw WzFdID0gc2NtX3RvX2ludCAoc2NtX2NkciAoZnJvbSkpOwogICAgICAgb3V0ID0gYzJwWzFd OworICAgICAgdG9fY2xvc2VbbnVtX3RvX2Nsb3NlKytdID0gb3V0OwogICAgIH0KIAotICBp ZiAod3JpdGluZykKKyAgaWYgKHNjbV9pc19wYWlyICh0bykpCiAgICAgewogICAgICAgcDJj WzBdID0gc2NtX3RvX2ludCAoc2NtX2NhciAodG8pKTsKICAgICAgIHAyY1sxXSA9IHNjbV90 b19pbnQgKHNjbV9jZHIgKHRvKSk7CiAgICAgICBpbiA9IHAyY1swXTsKKyAgICAgIHRvX2Ns b3NlW251bV90b19jbG9zZSsrXSA9IGluOwogICAgIH0KIAogICB7CkBAIC0xNTY5LDMwICsx NTY5LDM3IEBAIHBpcGVkX3Byb2Nlc3MgKHBpZF90ICpwaWQsIFNDTSBwcm9nLCBTQ00gYXJn cywgU0NNIGZyb20sIFNDTSB0bykKICAgICBpZiAoU0NNX09QT1VURlBPUlRQICgocG9ydCA9 IHNjbV9jdXJyZW50X2Vycm9yX3BvcnQgKCkpKSkKICAgICAgIGVyciA9IFNDTV9GUE9SVF9G REVTIChwb3J0KTsKICAgICBlbHNlCi0gICAgICBlcnIgPSBvcGVuICgiL2Rldi9udWxsIiwg T19XUk9OTFkgfCBPX0NMT0VYRUMpOworICAgICAgeworICAgICAgICBlcnIgPSBvcGVuICgi L2Rldi9udWxsIiwgT19XUk9OTFkgfCBPX0NMT0VYRUMpOworICAgICAgICB0b19jbG9zZVtu dW1fdG9fY2xvc2UrK10gPSBlcnI7CisgICAgICB9CiAgICAgaWYgKG91dCA9PSAtMSkKICAg ICAgIHsKICAgICAgICAgaWYgKFNDTV9PUE9VVEZQT1JUUCAoKHBvcnQgPSBzY21fY3VycmVu dF9vdXRwdXRfcG9ydCAoKSkpKQogICAgICAgICAgIG91dCA9IFNDTV9GUE9SVF9GREVTIChw b3J0KTsKICAgICAgICAgZWxzZQotICAgICAgICAgIG91dCA9IG9wZW4gKCIvZGV2L251bGwi LCBPX1dST05MWSB8IE9fQ0xPRVhFQyk7CisgICAgICAgICAgeworICAgICAgICAgICAgb3V0 ID0gb3BlbiAoIi9kZXYvbnVsbCIsIE9fV1JPTkxZIHwgT19DTE9FWEVDKTsKKyAgICAgICAg ICAgIHRvX2Nsb3NlW251bV90b19jbG9zZSsrXSA9IG91dDsKKyAgICAgICAgICB9CiAgICAg ICB9CiAgICAgaWYgKGluID09IC0xKQogICAgICAgewogICAgICAgICBpZiAoU0NNX09QSU5G UE9SVFAgKChwb3J0ID0gc2NtX2N1cnJlbnRfaW5wdXRfcG9ydCAoKSkpKQogICAgICAgICAg IGluID0gU0NNX0ZQT1JUX0ZERVMgKHBvcnQpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg aW4gPSBvcGVuICgiL2Rldi9udWxsIiwgT19SRE9OTFkgfCBPX0NMT0VYRUMpOworICAgICAg ICAgIHsKKyAgICAgICAgICAgIGluID0gb3BlbiAoIi9kZXYvbnVsbCIsIE9fUkRPTkxZIHwg T19DTE9FWEVDKTsKKyAgICAgICAgICAgIHRvX2Nsb3NlW251bV90b19jbG9zZSsrXSA9IGlu OworICAgICAgICAgIH0KICAgICAgIH0KICAgfQogCiAgICpwaWQgPSBkb19zcGF3biAoZXhl Y19maWxlLCBleGVjX2FyZ3YsIGV4ZWNfZW52LCBpbiwgb3V0LCBlcnIsIDEpOwogICBpbnQg ZXJybm9fc2F2ZSA9ICgqcGlkIDwgMCkgPyBlcnJubyA6IDA7CiAKLSAgaWYgKHJlYWRpbmcp Ci0gICAgY2xvc2UgKGMycFsxXSk7Ci0gIGlmICh3cml0aW5nKQotICAgIGNsb3NlIChwMmNb MF0pOworICB3aGlsZSAobnVtX3RvX2Nsb3NlPjApCisgICAgY2xvc2UgKHRvX2Nsb3NlWy0t bnVtX3RvX2Nsb3NlXSk7CiAKICAgaWYgKCpwaWQgPT0gLTEpCiAgICAgc3dpdGNoIChlcnJu b19zYXZlKQotLSAKMi40NS4yCgo= --------------Jb0SC31Q05tuixOe1BZ7vzWj--
bug-guile@HIDDEN
:bug#72092
; Package guile
.
Full text available.Received: (at submit) by debbugs.gnu.org; 13 Jul 2024 12:08:20 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jul 13 08:08:20 2024 Received: from localhost ([127.0.0.1]:55248 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sSbY3-0007MG-Ra for submit <at> debbugs.gnu.org; Sat, 13 Jul 2024 08:08:20 -0400 Received: from lists.gnu.org ([209.51.188.17]:40084) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <jakub-w@HIDDEN>) id 1sSbXz-0007M6-Rg for submit <at> debbugs.gnu.org; Sat, 13 Jul 2024 08:08:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <jakub-w@HIDDEN>) id 1sSbXu-0007ro-JW for bug-guile@HIDDEN; Sat, 13 Jul 2024 08:08:12 -0400 Received: from mx1.riseup.net ([198.252.153.129]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <jakub-w@HIDDEN>) id 1sSbXs-0001W9-Gj for bug-guile@HIDDEN; Sat, 13 Jul 2024 08:08:10 -0400 Received: from fews01-sea.riseup.net (fews01-sea-pn.riseup.net [10.0.1.109]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx1.riseup.net (Postfix) with ESMTPS id 4WLnKb6gYdzDqD5 for <bug-guile@HIDDEN>; Sat, 13 Jul 2024 12:08:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1720872484; bh=GH08K7Xw+aOR2BkuyOoOllXHMbQtis+fETezh03NbbU=; h=Date:From:To:Subject:From; b=au2Aki4CLYdDlVcC0P6hSftU9QRk960X8dz6Mw6q9FNi4N/6e2YMkxez6uSTeFnku RND2ph3P8bk7VkNez7g5u8nOctHkYhH74AruTZNIBr8ekhPiYTjLL6yLGCiy+fRY5F ajm1A5EZJLusByGSTvK/pek3K0AgT55Ta26nS5dQ= X-Riseup-User-ID: 873CC536C9859A20B49C28E7A8CBB75C66BFCC661137890681FD895B15E39843 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews01-sea.riseup.net (Postfix) with ESMTPSA id 4WLnKN5RxWzJtLq for <bug-guile@HIDDEN>; Sat, 13 Jul 2024 12:07:52 +0000 (UTC) MIME-Version: 1.0 Date: Sat, 13 Jul 2024 12:07:52 +0000 From: jakub-w@HIDDEN To: bug-guile@HIDDEN Subject: popen creates "/dev/null" fds and never closes them Message-ID: <77cbc4b2a48a74957cc02fcc53238b29@HIDDEN> Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=198.252.153.129; envelope-from=jakub-w@HIDDEN; helo=mx1.riseup.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.3 (--) Consider the following example: (use-modules (ice-9 popen)) (parameterize ((current-error-port (%make-void-port OPEN_BOTH))) (while #t (close-pipe (open-pipe* OPEN_READ "free")) (sleep 1))) This opens a new "/dev/null" file descriptor every second and doesn't close it when close-pipe is called. If current ports are all fd ports, this doesn't happen. AFAICT the problem was introduced by the commit 36fd2b4920ae926c79b936c29e739e71a6dff2bc in Guile 3.0.10.
jakub-w@HIDDEN
:bug-guile@HIDDEN
.
Full text available.bug-guile@HIDDEN
:bug#72092
; Package guile
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.