Stop flooding the kernel's message ring buffer with useless messages on dual_timestamp_is_set is failed. This is a backport from upstream code. --- src/libsystemd/sd-event/sd-event.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) --- systemd-210/src/libsystemd/sd-event/sd-event.c +++ systemd-210/src/libsystemd/sd-event/sd-event.c 2014-05-02 10:01:23.366235185 +0000 @@ -2191,9 +2191,12 @@ _public_ int sd_event_exit(sd_event *e, _public_ int sd_event_get_now_realtime(sd_event *e, uint64_t *usec) { assert_return(e, -EINVAL); assert_return(usec, -EINVAL); - assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA); assert_return(!event_pid_changed(e), -ECHILD); + /* If we haven't run yet, just get the actual time */ + if (!dual_timestamp_is_set(&e->timestamp)) + return -ENODATA; + *usec = e->timestamp.realtime; return 0; } @@ -2201,9 +2204,12 @@ _public_ int sd_event_get_now_realtime(s _public_ int sd_event_get_now_monotonic(sd_event *e, uint64_t *usec) { assert_return(e, -EINVAL); assert_return(usec, -EINVAL); - assert_return(dual_timestamp_is_set(&e->timestamp), -ENODATA); assert_return(!event_pid_changed(e), -ECHILD); + /* If we haven't run yet, just get the actual time */ + if (!dual_timestamp_is_set(&e->timestamp)) + return -ENODATA; + *usec = e->timestamp.monotonic; return 0; }