Hi,
I observe that in node_by_name hash we store a node with name
"unix-cli-local:0" and node index 720 (not sure the purpose of the node).
The node name is stored as key in the node_by_name hash.
But later at some time when I print the node_by_name hash's each entry I see
the key of node i.e the node name is printing some junk value (I figured it out
via checking it against the node index).
When I looked at code in unix_cli_file_add(), below we are first time adding
the node with name "unix-cli-local:0".
static vlib_node_registration_t r = {
.function = unix_cli_process,
.type = VLIB_NODE_TYPE_PROCESS,
.process_log2_n_stack_bytes = 18,
};
r.name = name;
vlib_worker_thread_barrier_sync (vm);
vlib_register_node (vm, &r); <<<<<<<<<<<<
vec_free (name);
n = vlib_get_node (vm, r.index);
vlib_worker_thread_node_runtime_update ();
vlib_worker_thread_barrier_release (vm);
Later it again calls unix_cli_file_add(), there we pass a different name
"unix-cli-local:1".
In this case we are overwriting the already existing node name from
"unix-cli-local:0" to "unix-cli-local:1".
for (i = 0; i < vec_len (vlib_mains); i++)
{
this_vlib_main = vlib_mains[i];
if (this_vlib_main == 0)
continue;
n = vlib_get_node (this_vlib_main,
cm->unused_cli_process_node_indices[l - 1]);
old_name = n->name; <<<<<<<<<<<
n->name = (u8 *) name; <<<<<<<<<<<
}
vec_free (old_name); <<<<<<<<<<
But the node name is already present in node_by_name hash as a key and there we
haven't updated it instead we have deleted the old name.
This is resulting in printing some corrupted node name for the above node in
node_by_name hash, which I think can sometimes results in VPP crash also as the
hash key points to some freed memory.
Regards,
Sontu
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#19560): https://lists.fd.io/g/vpp-dev/message/19560
Mute This Topic: https://lists.fd.io/mt/83471274/21656
Mute #vpp:https://lists.fd.io/g/vpp-dev/mutehashtag/vpp
Mute #vpp-dev:https://lists.fd.io/g/vpp-dev/mutehashtag/vpp-dev
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-