[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Reproducer for failing shepherd startup
From: |
Felix Lechner |
Subject: |
Re: Reproducer for failing shepherd startup |
Date: |
Mon, 12 Aug 2024 15:43:05 -0700 |
Hi Attila,
On Tue, Jul 02 2024, Attila Lendvai wrote:
> i forgot to add that it's fixed
Okay, then there is still another problem. I am unable to reconfigure
my systems via 'guix deploy' when a timer is enabled already. I am
trying to add a second timer.
The command stalls with messages like this:
The following derivations will be built:
/gnu/store/11nlp3k2lq25ijb4m9x0mj7phprjx9f6-remote-exp.scm.drv
/gnu/store/b52aidm138l6nwk5wd7lr7ghk8x9n8bx-upgrade-shepherd-services.scm.drv
building
/gnu/store/b52aidm138l6nwk5wd7lr7ghk8x9n8bx-upgrade-shepherd-services.scm.drv...
building /gnu/store/11nlp3k2lq25ijb4m9x0mj7phprjx9f6-remote-exp.scm.drv...
guix deploy: sending 2 store items (0 MiB) to
'wallace-server.us-core.com'...
The issue occurred for the two timers below, but I believe the issue is
unrelated to the type of timer or their order.
Attached is a low-res image of the console output. I was unable to
capture the error in any other way. Sorry to spam the list with 7kB.
Kind regards
Felix
* * *
(define (garbage-collector-shepherd-service config)
(shepherd-service
(provision '(garbage-collector))
(requirement '(guix-daemon))
(modules '((shepherd service timer)))
(start #~(make-timer-constructor
;; Five minutes after midnight every day.
(calendar-event #:hours '(0) #:minutes '(5))
(command (list #$(file-append guix "/bin/guix")
"gc"
"--free-space=1G"))))
(stop #~(make-timer-destructor))
(actions
(list (shepherd-action
(name 'trigger)
(documentation "Trigger the action associated with this timer.")
(procedure #~(identity trigger-timer)))))
(documentation "Maintain minimum free space by cleaning up Guix garbage")))
(define garbage-collector-service-type
(service-type
(name 'garbage-collector)
(description
"Maintain minimum free space by cleaning up Guix garbage")
(extensions
(list
(service-extension shepherd-root-service-type
(compose list garbage-collector-shepherd-service))))
(default-value #f)))
(define (mdadm-resync-shepherd-service config)
(shepherd-service
(provision '(mdadm-resync))
(requirement '(file-systems user-processes))
(modules '((ice-9 ftw)
(ice-9 regex)
(shepherd service timer)))
(start #~(make-timer-constructor
;; Every first Sunday of the month at 1 AM.
(calendar-event #:days-of-month '(1 2 3 4 5 6 7)
#:days-of-week '(sunday)
#:hours '(1))
(lambda _
;; some helpers and error handling
(define (info message)
(let ((timestamp (strftime "%Y-%m-%dT%H:%M:%S%zZ" (localtime
(current-time)))))
(format (current-error-port) "~a ~a~%" timestamp message)))
(define (resync array)
(let ((port (open-output-file (string-append "/sys/block/"
array "/md/sync_action"))))
(display "check" port)
(close-port port))
(info (string-append "Started MD resync for " array ".")))
(let* ((is-mdadm-device? (lambda (file)
(string-match "^md.+" file)))
(arrays (scandir "/dev" is-mdadm-device?)))
(map resync arrays)))))
(stop #~(make-timer-destructor))
(actions
(list (shepherd-action
(name 'trigger)
(documentation "Trigger the action associated with this timer.")
(procedure #~(identity trigger-timer)))))
(documentation "MD array resync")))
(define mdadm-resync-service-type
(service-type
(name 'mdadm-resync)
(description "MD array resync")
(extensions
(list
(service-extension shepherd-root-service-type
(compose list mdadm-resync-shepherd-service))))
(default-value #f)))
Shepherd Timers Reload Error Message.jpg
Description: Shepherd Timers Reload Error Message
- Re: Reproducer for failing shepherd startup,
Felix Lechner <=