GNU bug report logs -
#36282
shepherd appears to delete log-file instead of appending
Previous Next
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
[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)]
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)]
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.