Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-128343

RHSM Logs Show Warning "Expected UTC timestamp" "drift check may be off" When Using GMT Timezone

Linking RHIVOS CVEs to...Migration: Automation ...RHELPRIO AssignedTeam ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Normal Normal
    • None
    • rhel-9.6, rhel-9.7
    • subscription-manager
    • None
    • Yes
    • Low
    • subs-client-tools-2
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • x86_64
    • None

      What were you trying to do that didn't work?

      Using the timezone GMT shows a WARNING message in the /var/log/rhsm/rhsm.log:

      2025-11-13 16:29:53,080 [WARNING] subscription-manager:3110:MainThread @connection.py:96 - Expected UTC timestamp, got '2025-11-13 16:29:52+00:00', drift check may be off.
      

      What is the impact of this issue to you?

      Seems to be just informational warning, and isn't causing any issues.

      Please provide the package NVR for which the bug is seen:

      The affected rpm is python3-subscription-manager-rhsm-1.29.47.1-1.el9_7.x86_64

      The logging comes from this file /usr/lib64/python3.9/site-packages/rhsm/connection.py

      How reproducible is this bug?:

      Always

      Steps to reproduce

      1. Set timezone to UTC timedatctl set-timezone GMT
      2. Refresh subscription-manager subscription-manager refresh
      3. Observe the /var/log/rhsm/rhsm.log

      Expected results

      No WARNING message.

      Actual results

      Seeing a WARNING about possible drift in clock.

      Additional notes

      I added some logging to observe the tzname, and only when I use GMT, does the tzname show GMT. If I use WET or UTC, both in the same timezone as GMT, I don't see this behavior.

      This is the log line I added to the get_time_drift method:

          log.info(f"REDHAT | Timestamp tzname: '{timestamp.tzinfo.tzname(timestamp)}'")
      

      And it shows GMT when the drift check may be off message:

      2025-11-13 16:28:33,029 [INFO] subscription-manager:3054:MainThread @connection.py:94 - REDHAT | Timestamp tzname: 'GMT'
      2025-11-13 16:28:33,029 [WARNING] subscription-manager:3054:MainThread @connection.py:96 - Expected UTC timestamp, got '2025-11-13 16:28:32+00:00', drift check may be off.
      

      If I use either WET* or UTC* which have the same time as GMT, I only see *tzname UTC (no drift check may be off warning):

      2025-11-13 16:28:58,281 [INFO] subscription-manager:3073:MainThread @connection.py:94 - REDHAT | Timestamp tzname: 'UTC'
      

              csi-client-tools-bugs CSI Client Tools Bugs Bot
              rhn-support-myoder Michael Yoder
              CSI Client Tools Bugs Bot CSI Client Tools Bugs Bot
              CSI Client Tools Bugs Bot CSI Client Tools Bugs Bot
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: