Skip to main content
Solved

Unexplained difference between left-side column timestamp (Nodes view) and tooltip timestamps

  • April 15, 2026
  • 7 replies
  • 89 views

BugHunter42
Forum|alt.badge.img+1

Hello.

I noticed there is a weird difference between the two timestamps shown in Rundeck 5.19 web interface.

I’m referring tot he HH.mm:ss timestamp shown in the left sidebar, which I assume to be the server’s timestamp in local timezone and the ISO8601 timestamp shown in tooltip/.rdlog file. The problem is they look inconsistent so I was wondering how each of these timestamps is determined

 

The timestamp form tooltip/.rdlog file has a Zulu suffix which suggest UTC but there is a huge inconsistency


The server is located in France (UTC + 2), locale timezone is set correctly in the OS, so is the UTC clock. NTP synchronization is active. Therefore on Rundeck server, both local timezone and UTC are set correctly.

Rundeck JVM is executed with the correct timezone parameter “-Duser.timezone=Europe/Paris”. But the problem is there is much more than 2 hours differences between the left sidebar timestamp and the ISO8601 tooltip timestamps.

I noticed the issue issue in job during it’s execution on the 8 of April, before it ends (but the incesistcy remained after the job ended). The left-hand timestamp showed 09.02:11AM (of the 8 of April since the job keps executing overnight until the 8) while tooltip showed 2026-04-07T19:02:11Z for the same step/line of execution logs. That’s +14 hours… and that’s the case for pretty much all lines of logs of that job I’ve checked. So definitely not just a local timezone versus UTC.
 

I’m wondering whether that timestamp comes from the server clock or the remote node clock or elsewhere that might explain this weird 14 hours difference. Any useful info that helps me understanding this inconsistency is welcome.

Best answer by MegaDrive68k

Hi ​@BugHunter42 that’s a regression, I’ve tested 5.20 and isn’t honoring the -Duser.timezone param. (it works on 3.x and 4.x. old branches). I’m opening an internal ticket to solve this. Thanks for your feedback!

7 replies

Forum|alt.badge.img
  • PagerDuty Team 📟
  • Answer
  • April 15, 2026

Hi ​@BugHunter42 that’s a regression, I’ve tested 5.20 and isn’t honoring the -Duser.timezone param. (it works on 3.x and 4.x. old branches). I’m opening an internal ticket to solve this. Thanks for your feedback!


BugHunter42
Forum|alt.badge.img+1
  • Author
  • New Member 👋
  • April 16, 2026

Hello,

Thanks for confirming the bug :D


BugHunter42
Forum|alt.badge.img+1
  • Author
  • New Member 👋
  • April 16, 2026

PS : I think this question can be tagged as resolved but I have no idea how to do that on this forum


xamici
Forum|alt.badge.img+1
  • Community Manager 💚
  • April 16, 2026

Hi ​@BugHunter42, there’s a “best answer” gray button below the text. I marked that off, so no worries.

See you around!


BugHunter42
Forum|alt.badge.img+1
  • Author
  • New Member 👋
  • April 16, 2026

@xamici Thanks


  • New Member 👋
  • April 19, 2026

This is a classic Rundeck synchronization puzzle. The 14-hour gap suggests that while your -Duser.timezone is set, there might be a conflict with how the database (where Rundeck stores job metadata) and the local log storage handle UTC offsets. Often, the sidebar reflects the UI/Browser interpretation of the server time, whereas the .rdlog reflects the raw timestamp from the execution node.

I’ve encountered similar synchronization hurdles while debugging automated scripts for this page, and it usually boils down to the database connection string missing the serverTimezone property or an offset mismatch on the remote node itself. Have you checked if the remote node's hardware clock is drifting, even if NTP is active? Understanding this inconsistency is key to maintaining reliable execution logs.


BugHunter42
Forum|alt.badge.img+1
  • Author
  • New Member 👋
  • April 20, 2026

Hello,

Thanks for the info. However, database timezone is set correctly as well.

In rundeck-config.properties file, the dataSource.url= URI does contain serverTimezone=Europe/Paris.

 

Obviously, there isn’t 14 hours offset on the hardware clock either, I would ahve noticed it.

Here’s the tests from this afternoon, on both the Rundeck server and Rundeck database at the same time (almost, minor network latency) with multissh.

Rundeck server :

[root@rundeck_server]# timedatectl                      
Local time: lun. 2026-04-20 14:32:55 CEST
Universal time: lun. 2026-04-20 12:32:55 UTC
RTC time: lun. 2026-04-20 12:32:55
Time zone: Europe/Paris (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
[root@rundeck_server]# hwclock --show; date +"%Y-%m-%dT%H:%M:%S %Z"
2026-04-20 14:33:11.997876+02:00
2026-04-20T14:33:13 CEST


Rundeck database server:

[root@rundeck_server]# timedatectl                          
Local time: Mon 2026-04-20 14:32:55 CEST
Universal time: Mon 2026-04-20 12:32:55 UTC
RTC time: Mon 2026-04-20 12:32:55
Time zone: Europe/Paris (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
[root@rundeck_server]# sudo hwclock --show; date +"%Y-%m-%dT%H:%M:%S %Z"
2026-04-20 14:33:12.997588+02:00
2026-04-20T14:33:14 CEST

 

Remote note from rundeck adhoc commands:

Command Execute a remote command
Command: timedatectl
#4719999
Local time: Mon 2026-04-20 14:44:25 CEST
Universal time: Mon 2026-04-20 12:44:25 UTC
RTC time: Mon 2026-04-20 12:44:26
Time zone: Europe/Paris (CEST, +0200)
System clock synchronized: no
NTP service: active
RTC in local TZ: no

Since the remote node is not one of my servers (I don’t have a direct SSH access to it, outside of Rundeck) and the Runckuser is not a sudoer, I can only use timedatectl, not hwclock --show. So unless proven otherwise, I’m assuming hardware clock as seen by systemd’s timedatectl (RTC Time) is as good as hwclock --show on the remote node, just like is it on both Rundeck server and Rundeck’s database server.

 

PS : From hwclock --help, the --show option displays the hardware clock as-is, uncorrected, while --get option displays the hardware clock with drift corrected.

Functions:
-r, --show display the RTC time
--get display drift corrected RTC time