From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id qAOuMimQumbG4gAAe85BDQ:P1 (envelope-from ) for ; Mon, 12 Aug 2024 22:43:54 +0000 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id qAOuMimQumbG4gAAe85BDQ (envelope-from ) for ; Tue, 13 Aug 2024 00:43:53 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=lease-up.com header.s=2017 header.b="j/zG39af"; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1723502633; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=4g8U7dxV9YPenfR9Yh7xKPutU5NNS1v71PYOtQ5ymiM=; b=ulLp8EacoNlaY52lBzRG/n+Clh713b+9emLxznemBK9M9m9kaJPSyT/ncRRtGgyknzwv0z PxTJxtNPmP2FrCziTnoWQRsuhrXE+dkYtRWypIt/Wn0sdGxcHRiNyaUI7qVvhjMsEHZ/st iz/2HA4lA+HxDzsTBmlbTgnYzzADzfqGg4lT/nCiaTBlsD5iBjROF7tV8HPbBKD0hc2AgJ JIVqmyBEu1eK+nL0zVOjeCmnvlYZJgb9CUgKT+fRIk/uYJtMKSuQqMSPDNPild16e0dLam 0rdGJKVBA+I2w98WC2280/HqxeXEU+mP+ICnPBdWsyWUbLv5GnFIn+k9GZkdaA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=lease-up.com header.s=2017 header.b="j/zG39af"; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Seal: i=1; s=key1; d=yhetil.org; t=1723502633; a=rsa-sha256; cv=none; b=snZFnmwN5wzWEFszSLJSNO5qB//jC9aaAe94KIWqRdSf+fKejTIWQY/Bfc3jZj12mkKoHZ NfIeaULrO0mWyLE8FOedfQtS0MhccHFDT4cKsaoyHrLJw/Cx/OEc9V92drZ7GKRzQqSsS3 VHUdDl4kYwboV+JtHUZYhTTk5PAXl9bM+GBMyjyP9dNUPInCrO6xD3wU8drD7HgmgTTisY M0gg1TFfVZnhm3LywXfKSmLMPCi1IIQjo403SFVIlrb5w+2IMp6ufYPpJYV45CZWxoD6JO HA+KVFoNgGgkDZRx4KOLOWYBlx2s0PKJ1+XJIZ2ZzJs9XSj+fdtWtZyD0Hb77A== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 4AEBB15408 for ; Tue, 13 Aug 2024 00:43:53 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sddky-0000ko-9T; Mon, 12 Aug 2024 18:43:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sddkw-0000kN-G4 for guix-devel@gnu.org; Mon, 12 Aug 2024 18:43:14 -0400 Received: from sail-ipv4.us-core.com ([208.82.101.137]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256) (Exim 4.90_1) (envelope-from ) id 1sddkt-0007Tl-H2; Mon, 12 Aug 2024 18:43:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=2017; bh=PBWYbNY0b2rwsKA gsSTw+8c/q6Nrg+aSpoy42VSSW5o=; h=date:references:in-reply-to:subject: cc:to:from; d=lease-up.com; b=j/zG39af0nirj1dwAQUH/1ItirnQi4zRReFVWvdd Yr9Fz7uK1wh+lHCzKEPz2//+MYu27pH25X+8GRyj0iPJVto3tSnerDke2B1rZKFcHCgeal DYxGAOZ0+BpPnuo9VWfp/nueIEGm1fz3LIOKDZYcUE6Syun+y0jD7FDwbunuo= Received: by sail-ipv4.us-core.com (OpenSMTPD) with ESMTPSA id b39c5d4b (TLSv1.3:TLS_CHACHA20_POLY1305_SHA256:256:NO); Mon, 12 Aug 2024 22:43:06 +0000 (UTC) To: Attila Lendvai Cc: Maya , Ludovic =?utf-8?Q?Court=C3=A8s?= , guix-devel@gnu.org Subject: Re: Reproducer for failing shepherd startup In-Reply-To: <7bBOkABsh2UGPl3R44IG9ReG-7b5Cgp6oh4l-exc7kU948GaaYpzXSI4GoDhYEBrCy3xNlwATA07IUagy5nnWzb2hd4wvN0ebe058AEwkkY=@lendvai.name> References: <87a5je77f8.fsf@zenmaya.xyz> <877cea7cvf.fsf@gnu.org> <874j9el2r1.fsf@zenmaya.xyz> <8734oxw0yy.fsf@lease-up.com> <7bBOkABsh2UGPl3R44IG9ReG-7b5Cgp6oh4l-exc7kU948GaaYpzXSI4GoDhYEBrCy3xNlwATA07IUagy5nnWzb2hd4wvN0ebe058AEwkkY=@lendvai.name> Date: Mon, 12 Aug 2024 15:43:05 -0700 Message-ID: <87v805bbwm.fsf@lease-up.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=208.82.101.137; envelope-from=felix.lechner@lease-up.com; helo=sail-ipv4.us-core.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Felix Lechner From: Felix Lechner via "Development of GNU Guix and the GNU System distribution." Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Queue-Id: 4AEBB15408 X-Migadu-Scanner: mx13.migadu.com X-Migadu-Spam-Score: -5.46 X-Spam-Score: -5.46 X-TUID: qFKwRrzKQpts --=-=-= Content-Type: text/plain 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))) --=-=-= Content-Type: image/jpeg Content-Disposition: attachment; filename="Shepherd Timers Reload Error Message.jpg" Content-Transfer-Encoding: base64 Content-Description: Shepherd Timers Reload Error Message /9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdC IFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAA AADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlk ZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAA ABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAA AAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAA AABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEA AAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAA ACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDADUlKC8oITUvKy88OTU/ UIVXUElJUKN1e2GFwarLyL6qurfV8P//1eL/5re6////////////zv//////////////2wBDATk8 PFBGUJ1XV53/3Lrc//////////////////////////////////////////////////////////// ////////wAARCACmAfQDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAEDAgQF/8QANBAA AgIBAwMDAgUDBAIDAAAAAQIAEQMSITETQVEEImEUcTJCgZGhI7HBUtHw8TPhNHKy/8QAFQEBAQAA AAAAAAAAAAAAAAAAAAH/xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAwDAQACEQMRAD8AyFal0mtR qIq4W6OmUxstLqatJv7xdQXd7aQJUZOPJsCDvxMsjLdgympA96ibvtxNNkRhROwrevvKJDE++1VG +FlOwsSxdWRjY3vfuJFsgOur3qoGciHG2kwTGzixVfJhkYM2oXvzc3iyhF0nUN7sSDHSfx2uPots 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 vmEJBiEIQP/Z --=-=-=--