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 message dated Fri, 21 Jun 2019 17:13:08 +0200
with message-id <87k1dfgeez.fsf <at> gnu.org>
and subject line Re: bug#36282: shepherd appears to delete log-file instead of appending
has caused the debbugs.gnu.org bug report #36282,
regarding shepherd appears to delete log-file instead of appending
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> 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)]
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
[Message part 3 (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’.
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.