GNU bug report logs - #36282
shepherd appears to delete log-file instead of appending

Previous Next

Package: guix;

Reported by: Robert Vollmert <rob <at> vllmrt.net>

Date: Tue, 18 Jun 2019 15:51:02 UTC

Severity: normal

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Robert Vollmert <rob <at> vllmrt.net>
Subject: bug#36282: closed (Re: bug#36282: shepherd appears to delete
 log-file instead of appending)
Date: Fri, 21 Jun 2019 15:14:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#36282: shepherd appears to delete log-file instead of appending

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 36282 <at> debbugs.gnu.org.

-- 
36282: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36282
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org>
To: Robert Vollmert <rob <at> vllmrt.net>
Cc: 36282-done <at> debbugs.gnu.org
Subject: Re: bug#36282: shepherd appears to delete log-file instead of
 appending
Date: Fri, 21 Jun 2019 17:13:08 +0200
Hi,

Robert Vollmert <rob <at> vllmrt.net> skribis:

> This is from reading the shepherd code, not verified by test currently.
> Apologies if I’m missing something.
>
> The documentation claims that log-file is appended to:
>
> When @var{log-file} is true, it names the file to which the service's
> standard output and standard error are redirected.  @var{log-file} is
> created if it does not exist, otherwise it is appended to.
>
> However, in modules/shepherd/service.scm:
>
>    889  (define make-forkexec-constructor
> […]
>    923          (lambda args
>    924            (define (clean-up file)
>    925              (when file
>    926                (catch 'system-error
>    927                  (lambda ()
>    928                    (delete-file file))
>    929                  (lambda args
>    930                    (unless (= ENOENT (system-error-errno args))
>    931                      (apply throw args))))))
>    932  
>    933            (clean-up pid-file)
>    934            (clean-up log-file)

Ouch, indeed.  Commit 7b4c88bac70f0bad82ef70fd5b682a49bc227478 tried to
address that, but I think it pretty much failed at that…

I removed this ‘clean-up’ call in Shepherd commit
6892f638c78a14fedd075f664432757bc015c140.

Thanks,
Ludo’.

[Message part 3 (message/rfc822, inline)]
From: Robert Vollmert <rob <at> vllmrt.net>
To: bug-guix <at> gnu.org
Subject: shepherd appears to delete log-file instead of appending
Date: Tue, 18 Jun 2019 17:49:46 +0200
This is from reading the shepherd code, not verified by test currently.
Apologies if I’m missing something.

The documentation claims that log-file is appended to:

When @var{log-file} is true, it names the file to which the service's
standard output and standard error are redirected.  @var{log-file} is
created if it does not exist, otherwise it is appended to.

However, in modules/shepherd/service.scm:

   889  (define make-forkexec-constructor
[…]
   923          (lambda args
   924            (define (clean-up file)
   925              (when file
   926                (catch 'system-error
   927                  (lambda ()
   928                    (delete-file file))
   929                  (lambda args
   930                    (unless (= ENOENT (system-error-errno args))
   931                      (apply throw args))))))
   932  
   933            (clean-up pid-file)
   934            (clean-up log-file)
   935  
   936            (let ((pid (fork+exec-command command




This bug report was last modified 5 years and 339 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.