I’m getting this error on my storage node despite the system clock being in sync with ntp.org. Any suggestions from the group on what I can do to try and resolve this issue?
2020-04-07T04:19:50.276Z ERROR preflight:localtime unable to get satellite system time {"Satellite ID": "118UWpMCHzs6CvSgWd9BfFVjw5K9pZbJjkfZJexMtSkmKxvvAW", "error": "rpccompat: context deadline exceeded", "errorVerbose": "rpccompat: context deadline exceeded\n\tstorj.io/common/rpc.Dialer.dialTransport:256\n\tstorj.io/common/rpc.Dialer.dial:233\n\tstorj.io/common/rpc.Dialer.DialAddressID:152\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).getSatelliteTime:110\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).Check.func1:67\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}
Considering that the system is sync’d using NTP (as mentioned in the first post) and is *nix based (Synology) I don’t think I need that tool but thanks for the suggestion.
I am not familiar with synology but is it possible that the time is syncing rather than synced? I would suggest “ntpq -p” or “timedatectl” on a linux box, is there anything like that available to you?
Time on the *nix host is in sync as many other things that rely on time (ssl certs, backup timing, user auth, and more) would break. I’m wondering if the docker instance is losing its time.
The node is in a continuous reboot due to the time issue.
In testing I tried to swap to NIST but it appears to be broken, (to be clear, I made the change to NIST a few minutes before testing that.) My system clock on the NAS has been in sync. I swapped back to ntp.org pool and here is the result. The system clock on the box shows it is close enough to not be causing this error.
remote refid st t when poll reach delay offset jitter
==============================================================================
pool.ntp.org .POOL. 16 p - 64 0 0.000 0.000 0.000
srcf-ntp.stanfo 171.64.7.73 2 u 1 64 1 62.082 2.898 1.371
static-72-87-88 129.6.15.29 2 u 2 64 1 34.768 -1.937 0.011
linode227395.st 45.15.168.198 3 u 1 64 1 28.516 1.145 1.385
I had to run the test using a different container as the storagenode container won’t stop restarting. Using the ubuntu_bash container and running uptime shows that the time is accurate and that container is using the host time, not container time.
|2020-04-07 06:12:29|stderr|2020-04-07T06:12:29.442Z e[31mFATALe[0m failed preflight check {"error": "system clock is out of sync: system clock is out of sync with all trusted satellites", "errorVerbose": "system clock is out of sync: system clock is out of sync with all trusted satellites\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).Check:96\n\tstorj.io/storj/storagenode.(*Peer).Run:648\n\tmain.cmdRun:208\n\tstorj.io/storj/pkg/process.cleanup.func1.2:312\n\tstorj.io/storj/pkg/process.cleanup.func1:330\n\tgithub.com/spf13/cobra.(*Command).execute:826\n\tgithub.com/spf13/cobra.(*Command).ExecuteC:914\n\tgithub.com/spf13/cobra.(*Command).Execute:864\n\tstorj.io/storj/pkg/process.ExecWithCustomConfig:84\n\tstorj.io/storj/pkg/process.ExecCustomDebug:66\n\tmain.main:328\n\truntime.main:203"}|
| --- | --- | --- |
|2020-04-07 06:12:29|stderr|2020-04-07T06:12:29.442Z e[31mERRORe[0m preflight:localtime unable to get satellite system time {"Satellite ID": "12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S", "error": "rpccompat: context deadline exceeded", "errorVerbose": "rpccompat: context deadline exceeded\n\tstorj.io/common/rpc.Dialer.dialTransport:256\n\tstorj.io/common/rpc.Dialer.dial:233\n\tstorj.io/common/rpc.Dialer.DialAddressID:152\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).getSatelliteTime:110\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).Check.func1:67\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}|
|2020-04-07 06:12:29|stderr|2020-04-07T06:12:29.418Z e[31mERRORe[0m preflight:localtime unable to get satellite system time {"Satellite ID": "118UWpMCHzs6CvSgWd9BfFVjw5K9pZbJjkfZJexMtSkmKxvvAW", "error": "rpccompat: context deadline exceeded", "errorVerbose": "rpccompat: context deadline exceeded\n\tstorj.io/common/rpc.Dialer.dialTransport:256\n\tstorj.io/common/rpc.Dialer.dial:233\n\tstorj.io/common/rpc.Dialer.DialAddressID:152\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).getSatelliteTime:110\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).Check.func1:67\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}|
|2020-04-07 06:12:29|stderr|2020-04-07T06:12:29.418Z e[31mERRORe[0m preflight:localtime unable to get satellite system time {"Satellite ID": "12L9ZFwhzVpuEKMUNUqkaTLGzwY9G24tbiigLiXpmZWKwmcNDDs", "error": "rpccompat: context deadline exceeded", "errorVerbose": "rpccompat: context deadline exceeded\n\tstorj.io/common/rpc.Dialer.dialTransport:256\n\tstorj.io/common/rpc.Dialer.dial:233\n\tstorj.io/common/rpc.Dialer.DialAddressID:152\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).getSatelliteTime:110\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).Check.func1:67\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}|
|2020-04-07 06:12:29|stderr|2020-04-07T06:12:29.419Z e[31mERRORe[0m preflight:localtime unable to get satellite system time {"Satellite ID": "1wFTAgs9DP5RSnCqKV1eLf6N9wtk4EAtmN5DpSxcs8EjT69tGE", "error": "rpccompat: context deadline exceeded", "errorVerbose": "rpccompat: context deadline exceeded\n\tstorj.io/common/rpc.Dialer.dialTransport:256\n\tstorj.io/common/rpc.Dialer.dial:233\n\tstorj.io/common/rpc.Dialer.DialAddressID:152\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).getSatelliteTime:110\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).Check.func1:67\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}|
|2020-04-07 06:12:29|stderr|2020-04-07T06:12:29.419Z e[31mERRORe[0m preflight:localtime unable to get satellite system time {"Satellite ID": "121RTSDpyNZVcEU84Ticf2L1ntiuUimbWgfATz21tuvgk3vzoA6", "error": "rpccompat: dial tcp 34.80.94.151:7777: i/o timeout", "errorVerbose": "rpccompat: dial tcp 34.80.94.151:7777: i/o timeout\n\tstorj.io/common/rpc.Dialer.dialTransport:256\n\tstorj.io/common/rpc.Dialer.dial:233\n\tstorj.io/common/rpc.Dialer.DialAddressID:152\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).getSatelliteTime:110\n\tstorj.io/storj/storagenode/preflight.(*LocalTime).Check.func1:67\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}|
|2020-04-07 06:12:09|stderr|2020-04-07T06:12:09.395Z e[34mINFOe[0m preflight:localtime start checking local system clock with trusted satellites' system clock.|
|2020-04-07 06:12:06|stderr|2020-04-07T06:12:06.271Z e[34mINFOe[0m db.migration Database Version {"version": 33}|
|2020-04-07 06:12:02|stderr|2020-04-07T06:12:02.955Z e[34mINFOe[0m version running on version v1.0.1|
|2020-04-07 06:12:02|stderr|2020-04-07T06:12:02.265Z e[34mINFOe[0m operator wallet: |
|2020-04-07 06:12:02|stderr|2020-04-07T06:12:02.265Z e[34mINFOe[0m Operator email: mail@domain.com|
|2020-04-07 06:12:02|stderr|2020-04-07T06:12:02.255Z e[34mINFOe[0m Configuration loaded from: /app/config/config.yaml|
Here is an idea: does the time that storagenode is logging match the time when it is happening? i.e. in docker logs -f storagenode is the time correct in those logs?
It looks like it logs in UTC or Zulu so mine is logging 2020-04-07T10:35:48.148Z at 11:35 (UTC+1)
That indicates you have a problem with your network and not with your system clock. If your system clock would be wrong you would see the offset here. Instead you get an error message that you couldn’t reach the satellite.