diff options
author | CoprDistGit <infra@openeuler.org> | 2024-12-12 02:54:13 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2024-12-12 02:54:13 +0000 |
commit | a35fcc8b3fc340a6b874440b2a87e155c807ece5 (patch) | |
tree | 02ca631dd69c05a4dfcbd98a0ed12e2b0d2cd035 /disable-initialize_clock.patch | |
parent | b7abaf7e217d7948f8101d25013189a9322dd6ef (diff) |
automatic import of systemdopeneuler24.03_LTS
Diffstat (limited to 'disable-initialize_clock.patch')
-rw-r--r-- | disable-initialize_clock.patch | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/disable-initialize_clock.patch b/disable-initialize_clock.patch new file mode 100644 index 0000000..6b1afce --- /dev/null +++ b/disable-initialize_clock.patch @@ -0,0 +1,65 @@ +From fbd28b3b40701f1fda29707dfa09d1e481c4162c Mon Sep 17 00:00:00 2001 +From: hexiaowen<hexiaowen@huawei.com> +Date: Tue, 9 Jul 2019 19:13:43 +0800 +Subject: [PATCH] delete clock_apply_epoch + +resolved: apply epoch to system time from PID 1 + +For use in timesyncd we already defined a compile-time "epoch" value, which is based on the mtime of the NEWS file, and +specifies a point in time we know lies in the past at runtime. timesyncd uses this to filter out nonsensical timestamp +file data, and bump the system clock to a time that is after the build time of systemd. This patch adds similar bumping +code to earliest PID 1 initialization, so that the system never continues operation with a clock that is in the 1970ies +or even 1930s. we think it is ok when current system time is before build time. + +And, don't restore time when systemd-timesyncd started. + +--- + src/core/main.c | 12 ------------ + src/timesync/timesyncd.c | 8 -------- + 2 files changed, 20 deletions(-) + +diff --git a/src/core/main.c b/src/core/main.c +index 4051a91..c6d16b2 100644 +--- a/src/core/main.c ++++ b/src/core/main.c +@@ -1627,18 +1627,6 @@ static void initialize_clock(void) { + */ + (void) clock_reset_timewarp(); + +- ClockChangeDirection change_dir; +- r = clock_apply_epoch(&change_dir); +- if (r > 0 && change_dir == CLOCK_CHANGE_FORWARD) +- log_info("System time before build time, advancing clock."); +- else if (r > 0 && change_dir == CLOCK_CHANGE_BACKWARD) +- log_info("System time is further ahead than %s after build time, resetting clock to build time.", +- FORMAT_TIMESPAN(CLOCK_VALID_RANGE_USEC_MAX, USEC_PER_DAY)); +- else if (r < 0 && change_dir == CLOCK_CHANGE_FORWARD) +- log_error_errno(r, "Current system time is before build time, but cannot correct: %m"); +- else if (r < 0 && change_dir == CLOCK_CHANGE_BACKWARD) +- log_error_errno(r, "Current system time is further ahead %s after build time, but cannot correct: %m", +- FORMAT_TIMESPAN(CLOCK_VALID_RANGE_USEC_MAX, USEC_PER_DAY)); + } + + static void apply_clock_update(void) { +diff --git a/src/timesync/timesyncd.c b/src/timesync/timesyncd.c +index e60742c..efe56fd 100644 +--- a/src/timesync/timesyncd.c ++++ b/src/timesync/timesyncd.c +@@ -121,14 +121,6 @@ static int load_clock_timestamp(uid_t uid, gid_t gid) { + if (ct > min) + return 0; + +- /* Not that it matters much, but we actually restore the clock to n+1 here rather than n, simply +- * because we read n as time previously already and we want to progress here, i.e. not report the +- * same time again. */ +- if (clock_settime(CLOCK_REALTIME, TIMESPEC_STORE(min+1)) < 0) { +- log_warning_errno(errno, "Failed to restore system clock, ignoring: %m"); +- return 0; +- } +- + log_struct(LOG_INFO, + "MESSAGE_ID=" SD_MESSAGE_TIME_BUMP_STR, + "REALTIME_USEC=" USEC_FMT, min+1, +-- +2.33.0 + |