Subject: bug#36838: closed (Re: bug#36838: mcron leaves zombies around)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 20 Jul 2023 13:20:01 +0000

Your bug report

#36838: mcron leaves zombies around

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 [email-masked].

-- 
36838: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36838
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#36838: mcron leaves zombies around
From: Maxim Cournoyer <[email-masked]>
To: [email-masked]
Cc: Leo Prikler <[email-masked]>
Date: Thu, 20 Jul 2023 09:19:06 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Maxim Cournoyer <[email-masked]> writes:

> Hi Leo,
>
> Leo Prikler <[email-masked]> 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

Subject: mcron leaves zombies around
From: Robert Vollmert <[email-masked]>
To: [email-masked]
Date: Mon, 29 Jul 2019 17:39:33 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

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)))))