On Tue, Aug 26, 2025 at 03:15:42PM +0200, Christian Kujau wrote: > Running xfs_scrub_all under Python 3.13.5 prints the following warning: > > ---------------------------------------------- > $ /usr/sbin/xfs_scrub_all --auto-media-scan-stamp \ > /var/lib/xfsprogs/xfs_scrub_all_media.stamp \ > --auto-media-scan-interval 1d > /usr/sbin/xfs_scrub_all:489: DeprecationWarning: > datetime.datetime.utcnow() is deprecated and scheduled for removal in a > future version. Use timezone-aware objects to represent datetimes in UTC: > datetime.datetime.now(datetime.UTC). > dt = datetime.utcnow() > Automatically enabling file data scrub. > ---------------------------------------------- > > Python documentation for context: > https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow > > Fix this by using datetime.now() instead. > > NB: Debian/13 ships Python 3.13.5 and has a xfs_scrub_all.timer active, > I'd assume that many systems will have that warning now in their logs :-) > > Signed-off-by: Christian Kujau <lists@xxxxxxxxxxxxxxx> Heh heh heh. That old code was for compatibility with RHEL6(?) back when I started writing online fsck. That's indeed no longer needed because even RHEL7 supports datetime.now, so thank you for the update! Reviewed-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --D > > diff --git a/scrub/xfs_scrub_all.py.in b/scrub/xfs_scrub_all.py.in > index 515cc144..a94b1b71 100644 > --- a/scrub/xfs_scrub_all.py.in > +++ b/scrub/xfs_scrub_all.py.in > @@ -496,8 +496,7 @@ def scan_interval(string): > def utcnow(): > '''Create a representation of the time right now, in UTC.''' > > - dt = datetime.utcnow() > - return dt.replace(tzinfo = timezone.utc) > + return datetime.now(timezone.utc) > > def enable_automatic_media_scan(args): > '''Decide if we enable media scanning automatically.''' > > > -- > BOFH excuse #360: > > Your parity check is overdrawn and you're out of cache. >