mcron leaves zombies around

  • Done
  • quality assurance status badge
Details
3 participants
  • Leo Prikler
  • Maxim Cournoyer
  • Robert Vollmert
Owner
unassigned
Submitted by
Robert Vollmert
Severity
normal
R
R
Robert Vollmert wrote on 29 Jul 2019 17:39
(address . bug-guix@gnu.org)
70F6F2EB-3619-4175-885F-C970448355D7@vllmrt.net
It seems that mcron doesn’t clean up after itself. I regularly see
some zombie processes around, presumably left over by each of my
two 15-minute cron jobs:

root 21285 0.0 0.3 24124 3248 ? Ss 11:05 0:00 /gnu/store/mamwayq00mqs85kgs6ibww7xw6dy776s-mcron-1.1.1/bin/mcron /gnu/store/rdi71izz4d16v77hb8h2jks0s3q9zini-mcron-job /gnu/store/k7dn1v7qpi4kz183glmbgsf1c7pj19xx-mcron-job /gnu/store/lfyj23bzhc14y5rqi91g493jql9dphxk-mcron-job /gnu/store/mx9k5n92kmhryn3vh4607hrmnkjb8dl6-mcron-job /gnu/store/l4nxmajr0i5g07fxvrgnaw29zd1jq0qw-mcron-job
root 26611 0.0 0.0 0 0 ? Z 17:29 0:00 [mcron] <defunct>
root 26612 0.0 0.0 0 0 ? Z 17:29 0:00 [mcron] <defunct>

In case that matters, they’re defined using the following:

(define puzzledb-tweets-pzv-job
(let* ((exp
(with-imported-modules '((helpers))
#~(begin
(use-modules (helpers))
(let ((backend (read-secret "tools.jwt"))
(twitter (read-secret "twitter.token")))
(runl (string-append #$puzzledb-tools "/bin/tweets")
"-backend_token" backend
"-token" twitter
"-deletes")))))
(script (program-file "puzzledb-tweets-pzv-job" exp)))
#~(job "*/15 * * * *" ; every fifteen minutes
#$script)))

where the module helpers contains:

(define-module (helpers)
#:use-module (ice-9 textual-ports)
#:export (runl read-secret))

(define* (runl prog . args)
(apply execl prog prog args))

(define* (read-secret file)
(string-trim-both
(get-string-all
(open-input-file
(string-append "/etc/puzzledb/secrets/" file)))))
M
M
Maxim Cournoyer wrote on 24 Aug 2021 05:55
(name . Robert Vollmert)(address . rob@vllmrt.net)(address . 36838@debbugs.gnu.org)
87fsuzts1t.fsf@gmail.com
Hello Robert,

Robert Vollmert <rob@vllmrt.net> writes:

Toggle quote (40 lines)
> It seems that mcron doesn’t clean up after itself. I regularly see
> some zombie processes around, presumably left over by each of my
> two 15-minute cron jobs:
>
> root 21285 0.0 0.3 24124 3248 ? Ss 11:05 0:00 /gnu/store/mamwayq00mqs85kgs6ibww7xw6dy776s-mcron-1.1.1/bin/mcron /gnu/store/rdi71izz4d16v77hb8h2jks0s3q9zini-mcron-job /gnu/store/k7dn1v7qpi4kz183glmbgsf1c7pj19xx-mcron-job /gnu/store/lfyj23bzhc14y5rqi91g493jql9dphxk-mcron-job /gnu/store/mx9k5n92kmhryn3vh4607hrmnkjb8dl6-mcron-job /gnu/store/l4nxmajr0i5g07fxvrgnaw29zd1jq0qw-mcron-job
> root 26611 0.0 0.0 0 0 ? Z 17:29 0:00 [mcron] <defunct>
> root 26612 0.0 0.0 0 0 ? Z 17:29 0:00 [mcron] <defunct>
>
> In case that matters, they’re defined using the following:
>
> (define puzzledb-tweets-pzv-job
> (let* ((exp
> (with-imported-modules '((helpers))
> #~(begin
> (use-modules (helpers))
> (let ((backend (read-secret "tools.jwt"))
> (twitter (read-secret "twitter.token")))
> (runl (string-append #$puzzledb-tools "/bin/tweets")
> "-backend_token" backend
> "-token" twitter
> "-deletes")))))
> (script (program-file "puzzledb-tweets-pzv-job" exp)))
> #~(job "*/15 * * * *" ; every fifteen minutes
> #$script)))
>
> where the module helpers contains:
>
> (define-module (helpers)
> #:use-module (ice-9 textual-ports)
> #:export (runl read-secret))
>
> (define* (runl prog . args)
> (apply execl prog prog args))
>
> (define* (read-secret file)
> (string-trim-both
> (get-string-all
> (open-input-file
> (string-append "/etc/puzzledb/secrets/" file)))))

Thank you for the report.

I don't seem to have any mcron zombies on my system and have one job
running every 5 minutes, another once per day, another every 3 days.

Does the problem still exist for you?

Thanks,

Maxim
L
L
Leo Prikler wrote on 24 Aug 2021 12:12
bug#36838: mcron leaves zombies around
ddd8a76f4ca562f04d997f31a4e95f61eb55b8df.camel@student.tugraz.at
Hi Maxim,

I still have a defunct mcron flying around with a fairly standard Guix
configuration. The only service running through mcron seems to be
rottlog-service-type.

Regards
M
M
Maxim Cournoyer wrote on 29 Aug 2021 23:35
(address . 36838@debbugs.gnu.org)(name . Leo Prikler)(address . leo.prikler@student.tugraz.at)
87k0k4szm0.fsf@gmail.com
Hi Leo,

Leo Prikler <leo.prikler@student.tugraz.at> writes:

Toggle quote (6 lines)
> Hi Maxim,
>
> I still have a defunct mcron flying around with a fairly standard Guix
> configuration. The only service running through mcron seems to be
> rottlog-service-type.

If you have the energy/bandwidth, would you mind trying this patch here:
may have positive side-effects in that regard, I believe.

I've modified the mcron package to use a local checkout in my system
config like so:

Toggle snippet (33 lines)
@@ -2,7 +2,14 @@
;;; RAID-1c3 storage bay.
(use-modules (gnu)
(guix modules)
- (srfi srfi-1))
+ (srfi srfi-1)
+ ;; for mcron experiment
+ (gnu packages autotools)
+ (gnu packages guile-xyz)
+ (gnu packages man)
+ (gnu packages texinfo)
+ (guix git)
+ (guix packages))
(use-service-modules admin desktop docker linux mail mcron networking nfs nix
spice ssh sysctl telephony virtualization vpn xorg)
@@ -196,6 +203,15 @@
(pam-limits-entry "@realtime" 'both 'memlock 'unlimited)))
(service mcron-service-type
(mcron-configuration
+ (mcron (package/inherit mcron
+ (source (git-checkout
+ (url "file:///home/maxim/src/mcron")))
+ (native-inputs (append
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("help2man" ,help2man)
+ ("texinfo" ,texinfo))
+ (package-native-inputs mcron)))))
(jobs (list duckdns-job
backup-home-job

The output is now annotated as:

Toggle snippet (11 lines)
2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: Cannot open mailer: No such file or directory
2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: cannot send message: No such file or directory
2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: Cannot open mailer: No such file or directory
2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: cannot send message: No such file or directory
2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: Cannot open mailer: No such file or directory
2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: cannot send message: No such file or directory
2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: completed in 93.625s
2021-08-25T00:05:00 duckdns-update: running...
2021-08-25T00:05:01 duckdns-update: completed in 0.519s

And I don't have any mcron zombie process lying around, unless I'm
reading the ps output wrong.

Thanks,

Maxim
M
M
Maxim Cournoyer wrote on 20 Jul 2023 15:19
(address . 36838-done@debbugs.gnu.org)(name . Leo Prikler)(address . leo.prikler@student.tugraz.at)
87zg3qlnzp.fsf@gmail.com
Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

Toggle quote (65 lines)
> Hi Leo,
>
> Leo Prikler <leo.prikler@student.tugraz.at> writes:
>
>> Hi Maxim,
>>
>> I still have a defunct mcron flying around with a fairly standard Guix
>> configuration. The only service running through mcron seems to be
>> rottlog-service-type.
>
> If you have the energy/bandwidth, would you mind trying this patch here:
> https://lists.gnu.org/archive/html/bug-mcron/2021-08/msg00008.html; it
> may have positive side-effects in that regard, I believe.
>
> I've modified the mcron package to use a local checkout in my system
> config like so:
>
> @@ -2,7 +2,14 @@
> ;;; RAID-1c3 storage bay.
> (use-modules (gnu)
> (guix modules)
> - (srfi srfi-1))
> + (srfi srfi-1)
> + ;; for mcron experiment
> + (gnu packages autotools)
> + (gnu packages guile-xyz)
> + (gnu packages man)
> + (gnu packages texinfo)
> + (guix git)
> + (guix packages))
>
> (use-service-modules admin desktop docker linux mail mcron networking nfs nix
> spice ssh sysctl telephony virtualization vpn xorg)
> @@ -196,6 +203,15 @@
> (pam-limits-entry "@realtime" 'both 'memlock 'unlimited)))
> (service mcron-service-type
> (mcron-configuration
> + (mcron (package/inherit mcron
> + (source (git-checkout
> + (url "file:///home/maxim/src/mcron")))
> + (native-inputs (append
> + `(("autoconf" ,autoconf)
> + ("automake" ,automake)
> + ("help2man" ,help2man)
> + ("texinfo" ,texinfo))
> + (package-native-inputs mcron)))))
> (jobs (list duckdns-job
> backup-home-job
>
>
> The output is now annotated as:
>
> 2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: Cannot open mailer: No such file or directory
> 2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: cannot send message: No such file or directory
> 2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: Cannot open mailer: No such file or directory
> 2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: cannot send message: No such file or directory
> 2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: Cannot open mailer: No such file or directory
> 2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: mail: cannot send message: No such file or directory
> 2021-08-25T00:01:34 /gnu/store/xcngj8vg5j8g54r3aqm71vbgsgrsjl31-rottlog-0.72.2/sbin/rottlog: completed in 93.625s
> 2021-08-25T00:05:00 duckdns-update: running...
> 2021-08-25T00:05:01 duckdns-update: completed in 0.519s
>
> And I don't have any mcron zombie process lying around, unless I'm
> reading the ps output wrong.

It's been a while and I haven't seen this problem myself in all this
time; closing. Do reopen if you encounter it or better yet, have a
reproducer for it.

--
Thanks,
Maxim
Closed
?