After update something is changing time to future

After updating today and rebooting, something is constantly changing time about 8 and half hours to future. If I restart systemd-timesyncd.service or set the time manualy, proper time is there for few seconds and than it’s changed back to future. This is quite big issue for me, because that machine is recording from TV.
There’s nothing in logs. Is there some way how to find out, what is changing time?

Could it be that your Time Zone is not longer correct?

No timezone was correct. But I found it. I’ve created auditd rule to check for system call adjusting time and it shown me the program that was doing it. Looks like that some order of start up changed and it’s started before time sync and then it wants to keep the time that was there when it started.

… and that program was … ???

It was oscam, program that handles cards for DVB-S decryption and it was not comming from opensuse repos, I’ve compiled that myself. Thanks god for auditd.

Please note that only ‘zypper dup’ is supported as update/upgrade method. Nothing else.

Is there any possibility to see the full command you used for auditd (I’m interested in possibly using it as well in the same manner you did)? I tried making sense of their man pages but to no avail.

In /etc/audit/rules.d/audit.rules I’ve commented out line

-a task,never

and added

-a always,exit -F arch=b64 -S clock_adjtime -S adjtimex -S time -S timer_settime -S settimeofday -S clock_settime -k time_change

and restarted auditd. After that I could grep in audit.log for time_change

I’m trying to force systemd to run oscam after time is synchronized, but I’m not succeeding. Time is shifted after each reboot. At the moment I have this:


[Unit]
Description=OSCam
After=network.target time-sync.target
Requires=network.target time-sync.target
Before=tvheadend.service
RequiredBy=tvheadend.service

[Service]
Type=simple
ExecStart=/usr/src/oscam-svn/Distribution/oscam-1.20-unstable_svn11277-x86_64-suse-linux
ExecStop=/usr/bin/kill -s INT $MAINPID

[Install]
WantedBy=multi-user.target
RequiredBy=tvheadend.service
Requires=network.target time-sync.target

Another question is why is time shifted at the beginning.