From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 15 11:52:21 2025 Received: (at submit) by debbugs.gnu.org; 15 Jan 2025 16:52:21 +0000 Received: from localhost ([127.0.0.1]:58524 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tY6cu-0001vr-PI for submit@debbugs.gnu.org; Wed, 15 Jan 2025 11:52:21 -0500 Received: from lists.gnu.org ([2001:470:142::17]:42062) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tY6cs-0001vc-Ch for submit@debbugs.gnu.org; Wed, 15 Jan 2025 11:52:18 -0500 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 ) id 1tY6cl-000103-VR for guix-patches@gnu.org; Wed, 15 Jan 2025 11:52:12 -0500 Received: from mout-p-102.mailbox.org ([80.241.56.152]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from ) id 1tY6ci-0003e5-QA for guix-patches@gnu.org; Wed, 15 Jan 2025 11:52:11 -0500 Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4YYBqN5zMCz9vBZ; Wed, 15 Jan 2025 17:52:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fernseed.me; s=MBO0001; t=1736959920; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=S5ajfDQzw57w2uxUNHpf9S+KY6mlCUcg4OGnklp2h8g=; b=O33knj8sfGyrdY6TAQ1aeOSh3aNz8IvORk9VaRcq7I3fSEA9H+oCVkIOjR/R8zIqXWguGT sa3nZXctJ34lqMAux2mG6UCkIZTN1RCNlUE8Nb5bSLkzfT/od7PutB8O35/d0jynQu2IkG Ku81NnGXhVKv72NYSS6oDdnOaxwn5Zfm95H9L186prCOHxAFJ0xCMc3dv3Us+lQRFArVZ4 eAbRFjllHGtzgmD+UKCvPDF2v8IDfU5SGHFbAu6hDr4ROXyOQ/6Y3CmSX7p5xpWYQGXBiB AFsCnjlwNs5dxWCR6G2ygBfqscV8qxEt2GEPaL7/QLGVdGrTAG1dqqLJkHtK4w== From: Kierin Bell To: guix-patches@gnu.org Subject: [PATCH] guix: utils: Delete temporary output files. X-Debbugs-Cc: Andreas Enge , Janneke Nieuwenhuizen , Ludovic =?utf-8?Q?Court=C3=A8s?= Date: Wed, 15 Jan 2025 11:51:50 -0500 Message-ID: <87wmewdnq1.fsf@fernseed.me> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=80.241.56.152; envelope-from=fernseed@fernseed.me; helo=mout-p-102.mailbox.org 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_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.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: -0.0 (/) * guix/build/utils.scm (call-with-temporary-output-file): Delete and pass procedure the actual temporary file name, not the template name. Change-Id: Id8e5da55444195fcee91517cf63ec8ebd20942e5 --- This change will trigger *many* rebuilds, I think because 'call-with-temporary-output-file' is used by 'download-to-store'. This patch fixes a bug that causes: 1) the procedure passed to 'call-with-temporary-output-file' to always be called with the file name template string "/guix-file.XXXXXX" rather than the name of the created temporary file; and 2) the temporary file to persist rather than being deleted. Unless I'm missing something, Guix is creating temporary files without deleting them and nobody is noticing. Also, more importantly, it's a miracle that nothing has broken because of issue #1. Apparently, in most applications in the Guix code base, the procedures passed to this function discard their second argument (the port) and only use the first argument (what should be the file name). After a quick search, the only exceptions that I could find are some unit tests and 'call-with-luks-key-file' in (gnu installer parted). I'm not sure how this hasn't caused issues there. I haven't had time to test this yet, because it triggers so many rebuilds. guix/build/utils.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 94714bf397..dda8fb9d82 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -287,15 +287,16 @@ (define (call-with-temporary-output-file proc) call." (let* ((directory (or (getenv "TMPDIR") "/tmp")) (template (string-append directory "/guix-file.XXXXXX")) - (out (mkstemp! template))) + (out (mkstemp! template)) + (filename (port-filename out))) (dynamic-wind (lambda () #t) (lambda () - (proc template out)) + (proc filename out)) (lambda () (false-if-exception (close out)) - (false-if-exception (delete-file template)))))) + (false-if-exception (delete-file filename)))))) (define (call-with-ascii-input-file file proc) "Open FILE as an ASCII or binary file, and pass the resulting port to base-commit: b696658ee8e0655b17f5d26e024956b5148e36d6 -- 2.47.1 From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 15 14:41:06 2025 Received: (at 75588) by debbugs.gnu.org; 15 Jan 2025 19:41:06 +0000 Received: from localhost ([127.0.0.1]:58777 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tY9GD-00014x-EO for submit@debbugs.gnu.org; Wed, 15 Jan 2025 14:41:05 -0500 Received: from mout-p-103.mailbox.org ([80.241.56.161]:35396) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tY9G7-00014E-Vr for 75588@debbugs.gnu.org; Wed, 15 Jan 2025 14:41:03 -0500 Received: from smtp1.mailbox.org (smtp1.mailbox.org [10.196.197.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4YYGZC5M2sz9tCw for <75588@debbugs.gnu.org>; Wed, 15 Jan 2025 20:40:51 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fernseed.me; s=MBO0001; t=1736970051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=eLabITNrLa4arlD+j6UMjdpGU8Z8SQTBXQRAF95nffA=; b=lPR6kHEws1yzRR26BTlqgqLLCPiyo7KoRZsaljhBaxhJFJ2QsyA6ION8cHtaFwycj3M57G 0S91+OJW+J6XtKxNpK2RDQXqYbq1hcm3t/AcakHSUYtW6wcSfA/Q/TzA4/mtuNHrJXdAKg uxHkMvyCPEunvjNx7uNQi9V6Rcvnq025rzPLAkMe91vKn69Un1EGNTJHbTvJpf0oHkhwtM yfpQ1QS4x2EcDkaZE1Dau3GZHVRQniww6QR06TLn3Qx5uH0DmMzR5qyEjgFd0LhDhAUCp2 oZj5lgDdz7VcZPuk/+RWD2SF2/Sy/1emgOC5WQ/occmBvTqg6PAnRwIQPnw+5Q== From: Kierin Bell To: 75588@debbugs.gnu.org Subject: Re: bug#75588: Acknowledgement ([PATCH] guix: utils: Delete temporary output files.) In-Reply-To: (GNU bug Tracking System's message of "Wed, 15 Jan 2025 16:53:02 +0000") References: <87wmewdnq1.fsf@fernseed.me> Date: Wed, 15 Jan 2025 14:40:48 -0500 Message-ID: <87h65zeugv.fsf@fernseed.me> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.8 (-) X-Debbugs-Envelope-To: 75588 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: -3.5 (---) help-debbugs@gnu.org (GNU bug Tracking System) writes: So this bug should be canceled! It doesn't actually change the behavior of the function in any way (though it may making it easier to read for people not familiar with 'mkstemp!'). I did find a corner-case where temporary files created by 'call-with-temporary-output-file' are not deleted like I'd expect. It involves using 'execl' to call a process from within 'call-with-temporary-output-file', where the temporary file is not deleted, at least until after it the new process terminates. Though confusing, this is probably the right behavior. -- Kierin Bell From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 15 15:09:16 2025 Received: (at control) by debbugs.gnu.org; 15 Jan 2025 20:09:16 +0000 Received: from localhost ([127.0.0.1]:58810 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tY9hU-0002Fq-DC for submit@debbugs.gnu.org; Wed, 15 Jan 2025 15:09:16 -0500 Received: from mout-p-202.mailbox.org ([80.241.56.172]:60114) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tY9hR-0002FW-UP for control@debbugs.gnu.org; Wed, 15 Jan 2025 15:09:15 -0500 Received: from smtp202.mailbox.org (smtp202.mailbox.org [10.196.197.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4YYHBm0CJGz9t5x for ; Wed, 15 Jan 2025 21:09:04 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fernseed.me; s=MBO0001; t=1736971744; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc; bh=OkvpnfLBTZ5oII9gxfiIo5q0Lg5IO4TMRPADlZ454Ig=; b=Nk323h5SvyQVSqj4TACwyYyOlPy3tAYEJ4Efusl3PwTC0ckFwras6sIqCOxhfxX7iaTMZX kMw4yMFC4wYJQb/UrL789sBwN4rUbprYRgA/vhavBSMp7LsbRo5o2BQZK4Wdz+PzyxT424 ad9ITiUnWamBbhU+BQnoBTRIvdtBPRLfI2WTJ2hwAsBGYOyC6vKGmR9LyDTkY4TTkcgMO2 QwLhqDoVNioepfeUdwJW+qeEjANh0hV5hL+vrc7U9Al5xsqBWZOq/7f5DaUL8c14jwsi4I 154XDgl24BShxK6TPmnVYDm4hNyIwmo/MXf0n7hw9bm64YMnWE2QoYEe3xjE2Q== Date: Wed, 15 Jan 2025 15:09:00 -0500 Message-Id: <87frljet5v.fsf@fernseed.me> To: control@debbugs.gnu.org From: Kierin Bell Subject: control message for bug #75588 X-Spam-Score: -0.7 (/) 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: -1.7 (-) close 75588 quit From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 16 03:52:14 2025 Received: (at 75588) by debbugs.gnu.org; 16 Jan 2025 08:52:14 +0000 Received: from localhost ([127.0.0.1]:59962 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tYLbp-0005ga-Iy for submit@debbugs.gnu.org; Thu, 16 Jan 2025 03:52:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52972) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tYLbm-0005gH-PC for 75588@debbugs.gnu.org; Thu, 16 Jan 2025 03:52:11 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tYLbf-00084D-Vo; Thu, 16 Jan 2025 03:52:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=RkZvmgh+w7lc34eG0Qcp41ypMp7rF2cUURum4Cj28dQ=; b=ROn/MZ2O7L5bCqh4eu4I nuv9FVEE3nw9wRxtP/j72KnW6fLlHaZb3dNH30o+4d4PmWXdWWCT+YAOIJ/Mi2uRmEv/RecZ5dQyx D8n9nKnQ1t+2HfzvKYQNqkITvSWbYTQwh6kpRRT2N7nr5alAJoeASuEIwCJ4WH0gYWxel/14E24pM sqg0LJWgiAVdJNSOcBhHAu98LHfdGjk7JJwnKMeSPTqsMLZymqmHykYBfRZpeNq/xXkv4AkC7/PH1 2WUKrNYY/yC61vBV85CP3ErAGbwag5uxhNV0wngh84jRcZBihc1oESs6U7gTuu9ePKyx7mQ/z4UQD kHimbGs9AlST0w==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Kierin Bell Subject: Re: [bug#75588] [PATCH] guix: utils: Delete temporary output files. In-Reply-To: <87wmewdnq1.fsf@fernseed.me> (Kierin Bell's message of "Wed, 15 Jan 2025 11:51:50 -0500") References: <87wmewdnq1.fsf@fernseed.me> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Septidi 27 =?utf-8?Q?Niv=C3=B4se?= an 233 de la =?utf-8?Q?R=C3=A9volution=2C?= jour du Plomb X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Thu, 16 Jan 2025 09:52:01 +0100 Message-ID: <87o7075efi.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75588 Cc: 75588@debbugs.gnu.org, Andreas Enge , Janneke Nieuwenhuizen 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: -3.3 (---) Hello, Kierin Bell skribis: > This patch fixes a bug that causes: 1) the procedure passed to > 'call-with-temporary-output-file' to always be called with the file name > template string "/guix-file.XXXXXX" rather than the name of the created > temporary file; and 2) the temporary file to persist rather than being > deleted. > > Unless I'm missing something, Guix is creating temporary files without > deleting them and nobody is noticing. [=E2=80=A6] > --- a/guix/build/utils.scm > +++ b/guix/build/utils.scm > @@ -287,15 +287,16 @@ (define (call-with-temporary-output-file proc) > call." > (let* ((directory (or (getenv "TMPDIR") "/tmp")) > (template (string-append directory "/guix-file.XXXXXX")) > - (out (mkstemp! template))) > + (out (mkstemp! template)) > + (filename (port-filename out))) > (dynamic-wind > (lambda () > #t) > (lambda () > - (proc template out)) > + (proc filename out)) > (lambda () > (false-if-exception (close out)) > - (false-if-exception (delete-file template)))))) > + (false-if-exception (delete-file filename)))))) AFAICS the current code is fine because =E2=80=98template=E2=80=99 is modif= ied by =E2=80=98mkstemp!=E2=80=99: --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> (define template (string-copy "/tmp/guix-example-XXXXX= X")) scheme@(guile-user)> (mkstemp! template) $15 =3D # scheme@(guile-user)> template $16 =3D "/tmp/guix-example-uZ5z4s" --8<---------------cut here---------------end--------------->8--- All good? Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 16 10:02:35 2025 Received: (at 75588) by debbugs.gnu.org; 16 Jan 2025 15:02:35 +0000 Received: from localhost ([127.0.0.1]:34196 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tYROE-0001kB-R5 for submit@debbugs.gnu.org; Thu, 16 Jan 2025 10:02:35 -0500 Received: from mout-p-101.mailbox.org ([80.241.56.151]:47152) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tYROC-0001jt-EE for 75588@debbugs.gnu.org; Thu, 16 Jan 2025 10:02:33 -0500 Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4YYmLQ36LZz9smN; Thu, 16 Jan 2025 16:02:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fernseed.me; s=MBO0001; t=1737039742; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=oNvn/LAQFK5qvZTII9jnrLh0z6m3UfSz3UOgRO7PSO8=; b=dqvBLdo9wA6PaD4JUX5eD+0brAuiwrx+nZyN88dFO3+CU51CuZlZ0hIaAZwZLe6xL/0wr2 W2w2jwDHEGvI9/PGeFjMyq7e3i8+8pGk9krCZ416mXxw4Swe0MjDuGpUfYspB4WZJ3yAlI rX56vTBrCKdfde1XQ0SKs7JanLMnKEudfvFgO1SYujxhyAKvQROTMlsK782T7waasl4Do/ qkj88CzQfhWukDy29G6MrG6AJsy5/nDtMOObWvX1wyEusxe16tzofMN+Y56+cXJGA0XBNM wdS+YLcG+rdKyEB2/eMgSsSkUnl13GU8qYIYElg2ccm5FTGX0NysxOmkQ0j28A== From: Kierin Bell To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#75588] [PATCH] guix: utils: Delete temporary output files. In-Reply-To: <87o7075efi.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Thu, 16 Jan 2025 09:52:01 +0100") References: <87wmewdnq1.fsf@fernseed.me> <87o7075efi.fsf@gnu.org> Date: Thu, 16 Jan 2025 10:02:17 -0500 Message-ID: <87zfjqdcp2.fsf@fernseed.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75588 Cc: 75588@debbugs.gnu.org, Andreas Enge , Janneke Nieuwenhuizen 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.7 (-) Hi, Ludovic Court=C3=A8s writes: > AFAICS the current code is fine because =E2=80=98template=E2=80=99 is mod= ified by > =E2=80=98mkstemp!=E2=80=99: Yes, the code is fine --- this was a misunderstanding on my part. I was doing something unusual that was causing temporary files to persist, and blamed it on 'call-with-temporary-output-file': --8<---------------cut here---------------start------------->8--- (call-with-temporary-output-file (lambda (fn port) ... (execlp "swaymsg" "swaymsg" "exec" "--" "touch" "foo"))) --8<---------------cut here---------------end--------------->8--- Sorry for the noise! Thanks. --=20 Kierin Bell From unknown Tue Jun 17 21:53:20 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, 14 Feb 2025 12:24:21 +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