Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
There are two code paths which can lookup a peer while the system is shutting down:
- net_shutdown_lndnet()>lnet_peer_tables_cleanup()>lnet_peer_table_del_rtrs_locked()->lnet_del_route()
- lnet_mt_event_handler()>lnet_handle_recovery_reply()>lnet_find_peer_ni_locked()
In both of these cases the_lnet.ln_state might be shutting down. Currently lnet_get_peer_ni_locked() asserts on ln_stat == LNET_STATE_RUNNING.
This should be handled gracefully. If the state isn't running, then it should return NULL. Callers of the function handle NULL return code.