What to do if sdwdate fails during first boot?

Hi all! I’m new here! Nice to meet you, guys! :wave:

Once there was a day when sdwdate always failed to start properly (as I understand because of failed connections to more than 6 onion addresses, which it uses to synchronize time). It ended with cross sign on its widget, but nevertheless I ignored it and logged on to one site. I just didn’t have time to figure out what the problem was. Now I’m thinking about how bad I did back then. Was it wrong to ignore this problem, or was it not serious enough to prevent me from logging into the site where I needed to log in at the time? However it’s already done, but now I need to know what to do if it ever happens again in the future. I mean, do I have to drop everything and wait for everything to sync up/ until I solve this problem, or can I blow it off and do my thing?
Yes, I have read this official article about sdwdate. But there is said:

"The time of sdwdate issues matters. If sdwdate fails

  • A) during its first run after boot then that’s worse than,
  • B) sdwdate failing during any subsequent runs".

But the thing is, in my case it was exactly during its first boot and that’s why I write here. I need to know now how “worse” is it comparied to item “B”.
I think it is also worth noting that I use Whonix + Qubes, not just with some virtual machine. So this too may have some additional specificity of its own.

For any case I also provide the sdwdate log that was received at that time:

+ set -e
+ true 'INFO /usr/bin/sdwdate-log-viewer: START'
+ /bin/journalctl --boot --output cat -n 10000 -f _SYSTEMD_UNIT=qubes-sync-time.service + _SYSTEMD_UNIT=qubes-sync-time.timer + _SYSTEMD_UNIT=timesanitycheck.service + _SYSTEMD_UNIT=bootclockrandomization.service + _SYSTEMD_UNIT=sdwdate.service + _SYSTEMD_UNIT=whonix-firewall.service + SYSLOG_IDENTIFIER=suspend-pre + SYSLOG_IDENTIFIER=suspend-post + SYSLOG_IDENTIFIER=anondate + _AUDIT_TYPE_NAME=SECCOMP
2024-01-18 04:09:08 - /usr/bin/whonix-workstation-firewall - OK: Loading Whonix firewall...
2024-01-18 04:09:08 - /usr/bin/whonix-workstation-firewall - OK: Skipping firewall mode detection since already set to 'full'.
2024-01-18 04:09:08 - /usr/bin/whonix-workstation-firewall - OK: (Full torified network access allowed.)
2024-01-18 04:09:10 - /usr/bin/whonix-workstation-firewall - OK: Qubes DNS firewall rules ok.
2024-01-18 04:09:11 - /usr/bin/whonix-workstation-firewall - OK: Whonix firewall loaded.
Within minimum time 'Mon Jun 12 00:00:00 UTC 2023' and expiration timestamp 'Tue May 17 10:00:00 UTC 2033', ok.
Boot Clock Randomization
https://www.kicksecure.com/wiki/Boot_Clock_Randomization
+ 11 141000614
Changed time from Чт 18 янв 2024 04:09:14 UTC (1705550954.135973548)
               to Чт 18 янв 2024 04:09:25 UTC (1705550965.151984546).
2024-01-18 04:09:45 - sdwdate - INFO - sdwdate (Secure Distributed Web Date) started. PID: 1131
2024-01-18 04:09:45 - sdwdate - INFO - sdwdate (Secure Distributed Web Date) started. PID: 1131
2024-01-18 04:09:45 - sdwdate - INFO - Tor socks host: 10.137.0.12 Tor socks port: 9108
2024-01-18 04:09:45 - sdwdate - INFO - Running sdwdate main loop. iteration: 1
2024-01-18 04:09:47 - sdwdate - INFO - PREPARATION:
2024-01-18 04:09:47 - sdwdate - INFO - __ ### START: ### /usr/libexec/helper-scripts/onion-time-pre-script
__ Status: First run after boot. (Creating file '/run/sdwdate/onion-time-script-after-boot'.)
__ Static Time Sanity Check: Within minimum time 'Mon Jun 12 00:00:00 UTC 2023' and expiration timestamp 'Tue May 17 10:00:00 UTC 2033', ok.
__ Tor circuit: established
__ Tor Consensus Time Sanity Check: The clock might be too fast. Clock is faster than consensus/valid-until 2024-01-18 04:00:00. extra guess: None.
__ anondate_use: Skipping 'anondate-set' since this is a workstation, ok.
__ Conclusion: Tor already reports circuit established.
__ ### END: ### Exiting with exit_code '0' indicating 'success'.
2024-01-18 04:09:47 - sdwdate - INFO - PREPARATION RESULT: SUCCESS.
2024-01-18 04:09:47 - sdwdate - INFO -
ERROR: No translation for language "ru", key "fetching".
2024-01-18 04:09:47 - sdwdate - INFO - Initial time fetching in progress...
2024-01-18 04:09:47 - sdwdate - INFO - Running sdwdate fetch loop. iteration: 1
2024-01-18 04:09:47 - sdwdate - INFO - pool 0: pool_size: 21 url_index: 2 already_picked_number: 1 already_picked_index: [2]
2024-01-18 04:09:47 - sdwdate - INFO - pool 1: pool_size: 12 url_index: 4 already_picked_number: 1 already_picked_index: [4]
2024-01-18 04:09:47 - sdwdate - INFO - pool 2: pool_size: 22 url_index: 5 already_picked_number: 1 already_picked_index: [5]
2024-01-18 04:09:47 - sdwdate - INFO - requested urls ['https://www.nytimesn7cgmftshazwhfgzm37qxb44r64ytbb2dj3x62d2lljsciiyd.onion', 'http://lldan5gahapx5k7iafb3s4ikijc4ni7gx5iywdflkba5y2ezyg6sjgyd.onion', 'http://jkta32w5gvk6pmqdfwj67psojot3l2iwoqbdvrvywi5bkudfeandq7id.onion']
remote_times.py: url_to_unixtime_command (s):
url_to_unixtime 10.137.0.12 9108 https://www.nytimesn7cgmftshazwhfgzm37qxb44r64ytbb2dj3x62d2lljsciiyd.onion 80 true
url_to_unixtime 10.137.0.12 9108 http://lldan5gahapx5k7iafb3s4ikijc4ni7gx5iywdflkba5y2ezyg6sjgyd.onion 80 true
url_to_unixtime 10.137.0.12 9108 http://jkta32w5gvk6pmqdfwj67psojot3l2iwoqbdvrvywi5bkudfeandq7id.onion 80 true
remote_times.py: i: 2 | done
remote_times.py: i: 0 | done
remote_times.py: i: 1 | done
remote 0: https://www.nytimesn7cgmftshazwhfgzm37qxb44r64ytbb2dj3x62d2lljsciiyd.onion
* comment: nytimes onion mirror https://archive.ph/750Dh
* took_time     : 29.22 second(s)
* half_took_time: 14.61 second(s)
* replay_protection_unixtime: 1686527900
* remote_unixtime           : 1705550996
* consensus/valid-after           : 2024-01-18 01:00:00
* replay_protection_time          : 2023-06-12 00:00:00
* remote_time                     : 2024-01-18 04:09:56
* consensus/valid-until           : 2024-01-18 04:00:00
* time_diff_raw        : -20 second(s)
* time_diff_lag_cleaned: -34.61 second(s)
* Time Replay Protection         : sane
* Tor Consensus Time Sanity Check: fast
* remote_status: False
remote 1: http://lldan5gahapx5k7iafb3s4ikijc4ni7gx5iywdflkba5y2ezyg6sjgyd.onion
* comment: https://web.archive.org/web/20210310145458/https://onionshare.org/onion.txt OnionShare onionshare.org
* took_time     : 60.68 second(s)
* half_took_time: 30.34 second(s)
* replay_protection_unixtime: 1686527900
* remote_unixtime           : 1705551036
* consensus/valid-after           : 2024-01-18 01:00:00
* replay_protection_time          : 2023-06-12 00:00:00
* remote_time                     : 2024-01-18 04:10:36
* consensus/valid-until           : 2024-01-18 04:00:00
* time_diff_raw        : -12 second(s)
* time_diff_lag_cleaned: -42.34 second(s)
* Time Replay Protection         : sane
* Tor Consensus Time Sanity Check: fast
* remote_status: False
remote 2: http://jkta32w5gvk6pmqdfwj67psojot3l2iwoqbdvrvywi5bkudfeandq7id.onion
* comment: https://web.archive.org/web/20221010170933/https://securedrop.org/directory/al-jazeera/
* took_time     : 24.16 second(s)
* half_took_time: 12.08 second(s)
* replay_protection_unixtime: 1686527900
* remote_unixtime           : 1705550989
* consensus/valid-after           : 2024-01-18 01:00:00
* replay_protection_time          : 2023-06-12 00:00:00
* remote_time                     : 2024-01-18 04:09:49
* consensus/valid-until           : 2024-01-18 04:00:00
* time_diff_raw        : -22 second(s)
* time_diff_lag_cleaned: -34.08 second(s)
* Time Replay Protection         : sane
* Tor Consensus Time Sanity Check: fast
* remote_status: False
remote_times.py: urls_list:
['https://www.nytimesn7cgmftshazwhfgzm37qxb44r64ytbb2dj3x62d2lljsciiyd.onion', 'http://lldan5gahapx5k7iafb3s4ikijc4ni7gx5iywdflkba5y2ezyg6sjgyd.onion', 'http://jkta32w5gvk6pmqdfwj67psojot3l2iwoqbdvrvywi5bkudfeandq7id.onion']
remote_times.py: status_list:
['done', 'done', 'done']
remote_times.py: took_time_list:
[29.22, 60.68, 24.16]
remote_times.py: half_took_time_list:
[14.61, 30.34, 12.08]
remote_times.py: remote_unixtime_list:
[0, 0, 0]
remote_times.py: time_diff_raw_int_list:
[0, 0, 0]
remote_times.py: time_diff_lag_cleaned_float_list:
[0.0, 0.0, 0.0]
2024-01-18 04:10:49 - sdwdate - INFO - returned urls "['https://www.nytimesn7cgmftshazwhfgzm37qxb44r64ytbb2dj3x62d2lljsciiyd.onion', 'http://lldan5gahapx5k7iafb3s4ikijc4ni7gx5iywdflkba5y2ezyg6sjgyd.onion', 'http://jkta32w5gvk6pmqdfwj67psojot3l2iwoqbdvrvywi5bkudfeandq7id.onion']"
2024-01-18 04:10:49 - sdwdate - INFO -
2024-01-18 04:10:49 - sdwdate - INFO - failed_urls: 3 allowed_failures: 6
2024-01-18 04:10:49 - sdwdate - INFO - Running sdwdate fetch loop. iteration: 2
2024-01-18 04:10:49 - sdwdate - INFO - pool 0: pool_size: 21 url_index: 7 already_picked_number: 2 already_picked_index: [2, 7]
2024-01-18 04:10:49 - sdwdate - INFO - pool 1: pool_size: 12 url_index: 6 already_picked_number: 2 already_picked_index: [4, 6]
2024-01-18 04:10:49 - sdwdate - INFO - pool 2: pool_size: 22 url_index: 19 already_picked_number: 2 already_picked_index: [5, 19]
2024-01-18 04:10:49 - sdwdate - INFO - requested urls ['https://ej3kv4ebuugcmuwxctx5ic7zxh73rnxt42soi3tdneu2c2em55thufqd.onion', 'http://fpfjxcrmw437h6z2xl3w4czl55kvkmxpapg37bbopsafdu7q454byxid.onion', 'http://udhauo3m3fh7v6yfiuornjzxn3fh6vlp4ooo3wogvghcnv5xik6mnayd.onion']
remote_times.py: url_to_unixtime_command (s):
url_to_unixtime 10.137.0.12 9108 https://ej3kv4ebuugcmuwxctx5ic7zxh73rnxt42soi3tdneu2c2em55thufqd.onion 80 true
url_to_unixtime 10.137.0.12 9108 http://fpfjxcrmw437h6z2xl3w4czl55kvkmxpapg37bbopsafdu7q454byxid.onion 80 true
url_to_unixtime 10.137.0.12 9108 http://udhauo3m3fh7v6yfiuornjzxn3fh6vlp4ooo3wogvghcnv5xik6mnayd.onion 80 true
remote_times.py: i: 1 | done
remote_times.py: i: 2 | done
remote_times.py: i: 0 | done
remote 0: https://ej3kv4ebuugcmuwxctx5ic7zxh73rnxt42soi3tdneu2c2em55thufqd.onion
* comment: https://web.archive.org/web/20210604165016/https://securedrop.org/directory/new-york-times/
* took_time     : 15.36 second(s)
* half_took_time: 7.68 second(s)
* replay_protection_unixtime: 1686527900
* remote_unixtime           : 1705551053
* consensus/valid-after           : 2024-01-18 01:00:00
* replay_protection_time          : 2023-06-12 00:00:00
* remote_time                     : 2024-01-18 04:10:53
* consensus/valid-until           : 2024-01-18 04:00:00
* time_diff_raw        : -11 second(s)
* time_diff_lag_cleaned: -18.68 second(s)
* Time Replay Protection         : sane
* Tor Consensus Time Sanity Check: fast
* remote_status: False
remote 1: http://fpfjxcrmw437h6z2xl3w4czl55kvkmxpapg37bbopsafdu7q454byxid.onion
* comment: https://web.archive.org/web/20210126151401/https://securityheaders.com/?q=freedom.press&followRedirects=on https://freedom.press
* took_time     : 8.01 second(s)
* half_took_time: 4.0 second(s)
* replay_protection_unixtime: 1686527900
* remote_unixtime           : 1705551045
* consensus/valid-after           : 2024-01-18 01:00:00
* replay_protection_time          : 2023-06-12 00:00:00
* remote_time                     : 2024-01-18 04:10:45
* consensus/valid-until           : 2024-01-18 04:00:00
* time_diff_raw        : -12 second(s)
* time_diff_lag_cleaned: -16.0 second(s)
* Time Replay Protection         : sane
* Tor Consensus Time Sanity Check: fast
* remote_status: False
remote 2: http://udhauo3m3fh7v6yfiuornjzxn3fh6vlp4ooo3wogvghcnv5xik6mnayd.onion
* comment: https://web.archive.org/web/20210604170717/https://securedrop.org/directory/s%C3%BCddeutsche-zeitung/
* took_time     : 10.88 second(s)
* half_took_time: 5.44 second(s)
* replay_protection_unixtime: 1686527900
* remote_unixtime           : 1705551048
* consensus/valid-after           : 2024-01-18 01:00:00
* replay_protection_time          : 2023-06-12 00:00:00
* remote_time                     : 2024-01-18 04:10:48
* consensus/valid-until           : 2024-01-18 04:00:00
* time_diff_raw        : -11 second(s)
* time_diff_lag_cleaned: -16.44 second(s)
* Time Replay Protection         : sane
* Tor Consensus Time Sanity Check: fast
* remote_status: False
remote_times.py: urls_list:
['https://ej3kv4ebuugcmuwxctx5ic7zxh73rnxt42soi3tdneu2c2em55thufqd.onion', 'http://fpfjxcrmw437h6z2xl3w4czl55kvkmxpapg37bbopsafdu7q454byxid.onion', 'http://udhauo3m3fh7v6yfiuornjzxn3fh6vlp4ooo3wogvghcnv5xik6mnayd.onion']
remote_times.py: status_list:
['done', 'done', 'done']
remote_times.py: took_time_list:
[15.36, 8.01, 10.88]
remote_times.py: half_took_time_list:
[7.68, 4.0, 5.44]
remote_times.py: remote_unixtime_list:
[0, 0, 0]
remote_times.py: time_diff_raw_int_list:
[0, 0, 0]
remote_times.py: time_diff_lag_cleaned_float_list:
[0.0, 0.0, 0.0]
2024-01-18 04:11:05 - sdwdate - INFO - returned urls "['https://ej3kv4ebuugcmuwxctx5ic7zxh73rnxt42soi3tdneu2c2em55thufqd.onion', 'http://fpfjxcrmw437h6z2xl3w4czl55kvkmxpapg37bbopsafdu7q454byxid.onion', 'http://udhauo3m3fh7v6yfiuornjzxn3fh6vlp4ooo3wogvghcnv5xik6mnayd.onion']"
2024-01-18 04:11:05 - sdwdate - INFO -
2024-01-18 04:11:05 - sdwdate - INFO - failed_urls: 6 allowed_failures: 6
2024-01-18 04:11:05 - sdwdate - INFO - Running sdwdate fetch loop. iteration: 3
2024-01-18 04:11:05 - sdwdate - INFO - pool 0: pool_size: 21 url_index: 12 already_picked_number: 3 already_picked_index: [2, 7, 12]
2024-01-18 04:11:05 - sdwdate - INFO - pool 1: pool_size: 12 url_index: 8 already_picked_number: 3 already_picked_index: [4, 6, 8]
2024-01-18 04:11:05 - sdwdate - INFO - pool 2: pool_size: 22 url_index: 18 already_picked_number: 3 already_picked_index: [5, 19, 18]
2024-01-18 04:11:05 - sdwdate - INFO - requested urls ['http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion', 'http://okd7utbak43lm7qaixr6yv7s62e32mhngjsfpjn26eklokqofg6776yd.onion', 'http://jxsb4ovmavjy3r64bak4ha63xwggf3nzf3vikvs23r2avm5rhzmaqtqd.onion']
remote_times.py: url_to_unixtime_command (s):
url_to_unixtime 10.137.0.12 9108 http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion 80 true
url_to_unixtime 10.137.0.12 9108 http://okd7utbak43lm7qaixr6yv7s62e32mhngjsfpjn26eklokqofg6776yd.onion 80 true
url_to_unixtime 10.137.0.12 9108 http://jxsb4ovmavjy3r64bak4ha63xwggf3nzf3vikvs23r2avm5rhzmaqtqd.onion 80 true
remote_times.py: i: 2 | done
remote_times.py: i: 0 | done
remote_times.py: i: 1 | timeout_network
remote 0: http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion
* comment: https://web.archive.org/web/20210604175753/https://wasabiwallet.io/
* took_time     : 8.86 second(s)
* half_took_time: 4.43 second(s)
* replay_protection_unixtime: 1686527900
* remote_unixtime           : 1705551063
* consensus/valid-after           : 2024-01-18 01:00:00
* replay_protection_time          : 2023-06-12 00:00:00
* remote_time                     : 2024-01-18 04:11:03
* consensus/valid-until           : 2024-01-18 04:00:00
* time_diff_raw        : -11 second(s)
* time_diff_lag_cleaned: -15.43 second(s)
* Time Replay Protection         : sane
* Tor Consensus Time Sanity Check: fast
* remote_status: False
remote 1: http://okd7utbak43lm7qaixr6yv7s62e32mhngjsfpjn26eklokqofg6776yd.onion
* comment: https://web.archive.org/web/20210417200650/https://www.apache.be/securedrop/
* took_time     : 120.03 second(s)
* half_took_time: 60.02 second(s)
* exit_code: -9
* stdout: empty
* stderr: empty
* remote_status: timeout
remote 2: http://jxsb4ovmavjy3r64bak4ha63xwggf3nzf3vikvs23r2avm5rhzmaqtqd.onion
* comment: https://web.archive.org/web/20210605193446/https://securedrop.org/directory/stefania-maurizi/
* took_time     : 6.03 second(s)
* half_took_time: 3.02 second(s)
* replay_protection_unixtime: 1686527900
* remote_unixtime           : 1705551060
* consensus/valid-after           : 2024-01-18 01:00:00
* replay_protection_time          : 2023-06-12 00:00:00
* remote_time                     : 2024-01-18 04:11:00
* consensus/valid-until           : 2024-01-18 04:00:00
* time_diff_raw        : -11 second(s)
* time_diff_lag_cleaned: -14.02 second(s)
* Time Replay Protection         : sane
* Tor Consensus Time Sanity Check: fast
* remote_status: False
remote_times.py: urls_list:
['http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion', 'http://okd7utbak43lm7qaixr6yv7s62e32mhngjsfpjn26eklokqofg6776yd.onion', 'http://jxsb4ovmavjy3r64bak4ha63xwggf3nzf3vikvs23r2avm5rhzmaqtqd.onion']
remote_times.py: status_list:
['done', 'timeout', 'done']
remote_times.py: took_time_list:
[8.86, 120.03, 6.03]
remote_times.py: half_took_time_list:
[4.43, 60.02, 3.02]
remote_times.py: remote_unixtime_list:
[0, 0, 0]
remote_times.py: time_diff_raw_int_list:
[0, 0, 0]
remote_times.py: time_diff_lag_cleaned_float_list:
[0.0, 0.0, 0.0]
2024-01-18 04:13:06 - sdwdate - INFO - returned urls "['http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion', 'http://okd7utbak43lm7qaixr6yv7s62e32mhngjsfpjn26eklokqofg6776yd.onion', 'http://jxsb4ovmavjy3r64bak4ha63xwggf3nzf3vikvs23r2avm5rhzmaqtqd.onion']"
2024-01-18 04:13:06 - sdwdate - INFO -
2024-01-18 04:13:06 - sdwdate - INFO - failed_urls: 9 allowed_failures: 6
2024-01-18 04:13:06 - sdwdate - ERROR - Maximum allowed number of failures. Giving up.
2024-01-18 04:13:06 - sdwdate - INFO - Sleeping for 174 minutes, ok.
2024-01-18 04:13:06 - sdwdate - INFO - running command: sleep 10467.832649284
1 Like

Cannot be quantified. The most that can be said is to be found in this wiki chapter:
Do sdwdate issues impact anonymity?

Manually Set Clock Time and Date

Wiki chapter Do sdwdate issues impact anonymity? has been updated just now to answer this question.

2 Likes

Why? Do I still need to do this even if my clock and date already are correct? My clock and date were definitely set correctly when this issue happened. As I said the reason most likely was the number of unsuccessful connections to the desired sites, exceeding the allowed number of six (as log said). Maybe those sites were just inaccessible at the time? Because my main Tor connection was established fine and there was no connection issues. Maybe it’s the bad entrance node’s fault?
P. S. Anyway, thanks for response.

1 Like

A post was split to a new topic: Tor connection down for a long time after running sudo service tor@default restart

Because that simulates what sdwdate would have done.

Probably.

The Tor network can have issues in many places, not only your entry guard. Also any Tor relay between you and the onion, general Tor network issues.

2 Likes