GNU bug report logs - #75622
shepherd docs: Do timers work on DST/TZ changes?

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix; Reported by: Paweł Zmarzły <pawo2500@HIDDEN>; Done: Ludovic Courtès <ludo@HIDDEN>; Maintainer for guix is bug-guix@HIDDEN.
bug closed, send any further explanations to 75622 <at> debbugs.gnu.org and Paweł Zmarzły <pawo2500@HIDDEN> Request was from Ludovic Courtès <ludo@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 75622 <at> debbugs.gnu.org:


Received: (at 75622) by debbugs.gnu.org; 20 Jan 2025 16:48:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 20 11:48:35 2025
Received: from localhost ([127.0.0.1]:52122 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tZux1-0004EB-2Z
	for submit <at> debbugs.gnu.org; Mon, 20 Jan 2025 11:48:35 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:56956)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tZuwx-0004Do-S9
 for 75622 <at> debbugs.gnu.org; Mon, 20 Jan 2025 11:48:32 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1tZuwq-0001J5-D9; Mon, 20 Jan 2025 11:48:26 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:References:Date:In-Reply-To:Subject:To:
 From; bh=NMzv5lRiNZcWLdh43HhD3+xO4+ObKje9eu+NQrt8jN8=; b=ZkZ7Xmc56j8h6btxy9bi
 n0N/ytyl/5+JicT7H6NTauq6B55v8krCEVb91P8S0p/fvx5TRVE42dMCShr0JaxoCsLgjEaUBV5mZ
 uwG540a90wiENM2XnC17P6m3eZVzCiLzCfSSBfsXeJqGYaU7ekNfLx5d9PqBW1wI3XX/USBzOtr3d
 YBpBFV10MUZf/rLEiQ9bmaJI/HsB+66Fku7igWF1HSx6FjJ2iRUJzc47wLeHue0nI8CZOxxi5z71O
 BNdVCWSg8bQzQGa3mmGZTs802QwMr7wMdkogTLNR9PfC0arfQxXZfDV8xvTnEFywhrhszRmWLB70C
 xRyDmbQKu3aCrw==;
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: =?utf-8?Q?Pawe=C5=82_Zmarz=C5=82y?= <pawo2500@HIDDEN>
Subject: Re: bug#75622: shepherd docs: Do timers work on DST/TZ changes?
In-Reply-To: <87ikqaps6o.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?=
 =?utf-8?Q?s?= message of "Sun, 19 Jan 2025 19:35:59 +0100")
Date: Mon, 20 Jan 2025 17:47:46 +0100
Message-ID: <87tt9tmnyl.fsf@HIDDEN>
References: <CAMBwNBa6BAX10SNuRZDsgzVyB7hUJ5aUVg6VyjDG3UmgCDGk4w@HIDDEN>
 <87ikqaps6o.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 75622
Cc: 75622 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Ludovic Court=C3=A8s <ludo@HIDDEN> skribis:

> It would be possible for =E2=80=98seconds-to-wait=E2=80=99 to account for=
 forthcoming
> DST changes; that should be fixed (mcron seems to get that right).

I believe this is fixed by Shepherd commit
63075c995da26379719cb9a96785a89a3b4e6943.

Please feel free to take a look and report about anything that looks
fishy (there are several test cases specifically about handling DST
changes.)

Ludo=E2=80=99.




Information forwarded to bug-guix@HIDDEN:
bug#75622; Package guix. Full text available.

Message received at 75622 <at> debbugs.gnu.org:


Received: (at 75622) by debbugs.gnu.org; 19 Jan 2025 18:36:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 19 13:36:33 2025
Received: from localhost ([127.0.0.1]:47439 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tZa9w-0002Nl-Vh
	for submit <at> debbugs.gnu.org; Sun, 19 Jan 2025 13:36:33 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:37626)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tZa9u-0002NX-SF
 for 75622 <at> debbugs.gnu.org; Sun, 19 Jan 2025 13:36:31 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1tZa9p-0003EA-GB; Sun, 19 Jan 2025 13:36:25 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=kUhDFoA830ZzDLEm3cEgV+5ChCUyF/oWRuSslpTk3jI=; b=QtqtF1TAnoPFYbVKy4QR
 sAiWFdd9L/mdHWseX8WCC6ZPPfqfnEmIPfgdt7Vo7ak86eWdmz2VG9JVeQmBbXfW+JDj1iB40zFQm
 100ELvk45uMmAmtAW98uMuQB5YLcX0wmSmPqNaiuBzKUKGx+EMHEEjNJZLoxVZCB7d7Lhz1RmnXUl
 qeA2yK6m98XJ9CqhXYmhvJyMXjAWSJFyE8+n/pA1mCDftidmiohQY//nnCvBaNKK0XtB7pF3Bfb+J
 5+nl5miBzOCGTM56XnyyaxfApUPqcw4tIgmHFVu5WGRXCj0e1NDAbLDK2dj84VABLTTgFvis/5kPJ
 DPsMLCwxhBNgyg==;
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: =?utf-8?Q?Pawe=C5=82_Zmarz=C5=82y?= <pawo2500@HIDDEN>
Subject: Re: bug#75622: shepherd docs: Do timers work on DST/TZ changes?
In-Reply-To: <CAMBwNBa6BAX10SNuRZDsgzVyB7hUJ5aUVg6VyjDG3UmgCDGk4w@HIDDEN>
 (=?utf-8?Q?=22Pawe=C5=82_Zmarz=C5=82y=22's?= message of "Thu, 16 Jan 2025
 20:00:11 +0000")
References: <CAMBwNBa6BAX10SNuRZDsgzVyB7hUJ5aUVg6VyjDG3UmgCDGk4w@HIDDEN>
Date: Sun, 19 Jan 2025 19:35:59 +0100
Message-ID: <87ikqaps6o.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 75622
Cc: 75622 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi,

Pawe=C5=82 Zmarz=C5=82y <pawo2500@HIDDEN> skribis:

> I am considering using shepherd timers as crontab replacement. But I
> want to first make sure they work correctly on time, timezone and
> daylight-saving changes. In my experience with systemd, it can truly
> be a minefield, e.g.

[...]

> Can someone confirm that shepherd timers do not have the same bugs?

Unfortunately those bugs exist as of Shepherd 1.0.1.

The main issue is that the timer waits like this (from (shepherd service
timer)):

            (get-message* channel (seconds-to-wait event)
                          'timeout 'overslept)

where =E2=80=98seconds-to-wait=E2=80=99 naively assumes there won=E2=80=99t=
 be DST or timezone
changes in the interim:

  (define (seconds-to-wait event)
    "Return the number of seconds to wait before the next occurrence of
  @var{event} (the result is an inexact number, always greater than zero)."
    (let* ((now (current-time time-utc))
           (then (next-calendar-event event (time-utc->date now)))
           (diff (time-difference (date->time-utc then) now)))
      (+ (time-second diff)
         (/ (time-nanosecond diff) 1e9))))

It would be possible for =E2=80=98seconds-to-wait=E2=80=99 to account for f=
orthcoming
DST changes; that should be fixed (mcron seems to get that right).

As for timezone updates (other than DST, meaning: when traveling),
shepherd would need to be notified somehow, and I=E2=80=99m not sure whether
there exists a standard (non-Freedesktop) way to get that info.

Suggestions welcome!

Ludo=E2=80=99.




Information forwarded to bug-guix@HIDDEN:
bug#75622; Package guix. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 17 Jan 2025 05:19:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 17 00:19:24 2025
Received: from localhost ([127.0.0.1]:35681 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tYelP-00031U-Rl
	for submit <at> debbugs.gnu.org; Fri, 17 Jan 2025 00:19:24 -0500
Received: from lists.gnu.org ([2001:470:142::17]:55400)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pawo2500@HIDDEN>)
 id 1tYW2m-00070g-Kp
 for submit <at> debbugs.gnu.org; Thu, 16 Jan 2025 15:00:45 -0500
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 <pawo2500@HIDDEN>)
 id 1tYW2U-0007aT-Up
 for bug-guix@HIDDEN; Thu, 16 Jan 2025 15:00:26 -0500
Received: from mail-yb1-xb30.google.com ([2607:f8b0:4864:20::b30])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <pawo2500@HIDDEN>)
 id 1tYW2T-0006rA-A6
 for bug-guix@HIDDEN; Thu, 16 Jan 2025 15:00:26 -0500
Received: by mail-yb1-xb30.google.com with SMTP id
 3f1490d57ef6-e46ebe19368so2182718276.0
 for <bug-guix@HIDDEN>; Thu, 16 Jan 2025 12:00:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1737057622; x=1737662422; darn=gnu.org;
 h=to:subject:message-id:date:from:mime-version:from:to:cc:subject
 :date:message-id:reply-to;
 bh=6WJDz49/4D2CEOECzhH7G0PY52KCmx67HCvoIR+cCY0=;
 b=UvC8uXH340DBDe06qFLujBPwNoLXjRWR9q/IXF7V/RY9X1n1Sbd6wmvunuPa9AFYLF
 dpZp7JkMW6T2CVjgZp502xL5s/Dx2hFInL1ccegfmre86Y0d+mlKELujcFytKOvJ8UdW
 UjLYCrjGtAZ90xIl+uu1P/Y3BIaGKImZ0Q28e9AVc814VG43jJrNOkSrBC4JbKNio2fQ
 7eClKPyvMVvQNxSHeQnGqgiwg+F6QJnCqV55hzlx/SZkeTpmAISGyLDhczbkE2s4ebAZ
 6cJMsNKPuYBlsi4GpF04QMALPsmh1mSaJ9pMFRMGi3d7TXhErTgMrIAeh7rgkCBGvinr
 xktQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1737057623; x=1737662423;
 h=to:subject:message-id:date:from:mime-version:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=6WJDz49/4D2CEOECzhH7G0PY52KCmx67HCvoIR+cCY0=;
 b=mC7SO3ELVlAhvyDLh9tpvEOoOo2Y9/Ehz8JbN0y6YD1JzMvI5TdSiEyGiye0L52im/
 X69OCbpuP+2IvlRJtkQJ4QY3wJCiwD32k8oaiCv3GJHL+1Pq/0iQXY7l1rbzYp8JpWnL
 m1vvb11o/UQseAB+ImXac3ZU12Ud8qqaJRjQCVAFwvTbDej4evF7/TyQ1AEQhY5PzqeS
 +ghdbbZw2cg4HYmENA2KN3Ma+7Sq/EAGUSUIPFSKckhA0ZtbOuBbZuIcWjSDTgJucLqE
 Vvqbj0KIkb6J9mgvKqMF9FdKpUc6MdaTFftXwKAlVjlzo1IUI8we4X9XFOK+Qx8M1lth
 EFVg==
X-Gm-Message-State: AOJu0Ywuzv+4m14TS0FvjHqiMGCvHzhnbDW7i5+729NMbiIcJb+8OHa2
 ZHA77KR6Kn7OWuORgPZhtbmUR7L/UVU3TJW8QFro1x34V6lDP7iT97n+mXLpn2KCq9+lg/6cSK1
 4HYPUVwGr2qq9L4r7Uq7CXqTJe6KKrAqVXzA=
X-Gm-Gg: ASbGnctWQxUesRAu9qUrjQLrr+UAkf47xVng3ajSP+W/I9j5nGV1D+X0h51N1v+botP
 PLk1Iv8rDFOt/MAH8Vah8hHxSWAsutxtWOzF9Xg==
X-Google-Smtp-Source: AGHT+IEaCHCpkVcVkflcUSDp+3tUmOeTzFlszwVjAvE14rDJPhy/qUPDjnHy1fDvKSlgnIpbtq/sx1RVoPpG2WG6u0o=
X-Received: by 2002:a25:6a85:0:b0:e44:82ef:395b with SMTP id
 3f1490d57ef6-e54ee1eb428mr19700182276.32.1737057622461; Thu, 16 Jan 2025
 12:00:22 -0800 (PST)
MIME-Version: 1.0
From: =?UTF-8?B?UGF3ZcWCIFptYXJ6xYJ5?= <pawo2500@HIDDEN>
Date: Thu, 16 Jan 2025 20:00:11 +0000
X-Gm-Features: AbW1kvbwTy_0bCo7t5y6CphB4_I_8sytzpqxJE6wXkepUWVIEZ8DwenIaA8edTI
Message-ID: <CAMBwNBa6BAX10SNuRZDsgzVyB7hUJ5aUVg6VyjDG3UmgCDGk4w@HIDDEN>
Subject: shepherd docs: Do timers work on DST/TZ changes?
To: bug-guix@HIDDEN
Content-Type: text/plain; charset="UTF-8"
Received-SPF: pass client-ip=2607:f8b0:4864:20::b30;
 envelope-from=pawo2500@HIDDEN; helo=mail-yb1-xb30.google.com
X-Spam_score_int: -17
X-Spam_score: -1.8
X-Spam_bar: -
X-Spam_report: (-1.8 / 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,
 FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.2 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview: I am considering using shepherd timers as crontab
 replacement.
 But I want to first make sure they work correctly on time,
 timezone and daylight-saving
 changes. In my experience with systemd, it can tr [...] 
 Content analysis details:   (1.2 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/,
 no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org]
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (pawo2500[at]gmail.com)
 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends
 in digit (pawo2500[at]gmail.com)
X-Debbugs-Envelope-To: submit
X-Mailman-Approved-At: Fri, 17 Jan 2025 00:19:21 -0500
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.2 (/)

I am considering using shepherd timers as crontab replacement. But I
want to first make sure they work correctly on time, timezone and
daylight-saving changes. In my experience with systemd, it can truly
be a minefield, e.g.

https://github.com/systemd/systemd/issues/5595 - timers not running on
the day of DST change

https://github.com/systemd/systemd/issues/8647 - timers not running
for entire hour after DST change

https://github.com/systemd/systemd/issues/8233 - timers running in
wrong timezone

https://github.com/systemd/systemd/issues/16732 - editing a timer
leads to its spurious trigger

I also recall many bugs with RandomizedDelaySec, but shepherd and cron
have no equivalent feature, so ignoring that.

Can someone confirm that shepherd timers do not have the same bugs?
And if so, make a note about that in the user manual? Thanks.




Acknowledgement sent to Paweł Zmarzły <pawo2500@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-guix@HIDDEN. Full text available.
Report forwarded to bug-guix@HIDDEN:
bug#75622; Package guix. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 7 Feb 2025 11:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.