Troubleshooting
Activate logging
Activating the Zenoh logging can provide useful information for any troubleshooting. The Zenoh router (zenohd
) and all the Zenoh APIs (except zenoh-pico) are developed with a Rust code base. Logging is controlled via the RUST_LOG
environment variable that can typically be defined with the desired logging level amongst:
error
- this is the default level ifRUST_LOG
is not definedwarn
info
debug
trace
off
- to disable all logging
More advanced logging directives can be defined via the RUST_LOG
. For more details see this page.
Note that the logs are written on stderr
.
Known troubles with the Zenoh router (zenohd
)
Segmentation fault at startup
The router is likely trying to load an incompatible plugin.
To check this look for such logs:
[2022-03-28T15:23:36Z INFO zenohd] Successfully started plugin rest from "/Users/test/.zenoh/lib/libzplugin_rest.dylib"
[2022-03-28T15:23:36Z INFO zenohd] Successfully started plugin storage_manager from "/Users/test/.zenoh/lib/libzplugin_storage_manager.dylib"
[2022-03-28T15:23:36Z INFO zenohd] Successfully started plugin webserver from "/Users/test/.zenoh/lib/libzplugin_webserver.dylib"
Here you can see all the plugins libraries that have been loaded by zenohd
at startup.
You must check if each of the plugins are using the same Zenoh version as dependency than zenohd
and Rust compiler version as the zenohd
instance.
To assess which one is causing troubles, you can also move or rename all the libraries but one and test if zenohd
is correctly loading this one. Then repeat the process for each library.
Known troubles with the APIs
“Error treating timestamp for received Data”
If you get such log:
[2021-08-23T08:44:47Z ERROR zenoh::net::routing::pubsub] Error treating timestamp for received Data (incoming timestamp from E74B6FF3D82D49BEA11B8F1BD0AC4C7A exceeding delta 100ms is rejected: 2021-08-23T08:44:47.299498897Z vs. now: 2021-08-23T08:44:47.069513846Z): drop it!
It means your Zenoh application on your local host received a publication from another remote host with a system time that is drifting in the future for more than 100ms with respect to the local system time. You should synchronize the time between your hosts using a tool such as PTP or NTP.