Oops, I acidentally hit reply instead of reply list. Here it is again.
that is very likely the case.
All session arguments including the label are passed as a single 'Rpc_in_buffer<160>' argument to the `Parent::session` RPC function. Whenever the session request is forwarded to a parent, the parent prefixes the label with the originating child's name. Eventually, when the nesting level becomes very deep, the resulting label might not fit into the argument anymore.
The message "Error: corrupted string" is not directly printed by the session-creation code path but by the log service [1], but it is plausible that it is caused by a truncated label.
I wonder, have you tried to synthetically reproduce the problem outside your actual scenario? This would greatly ease the diagnosis.
[1] src/core/include/log_session_component.h
Cheers Norman
A bare run script with a wifi_drv on top of many inits gives the reattempted PD session too, as well as rom_session denied errors for boot modules. Which errors it gives seems to be dependant on the length of the label. This confirms it, since the session request with the longer labels seem to be rejected.
In that case I will try to perhaps move init_wifi down one or two levels, see if that works.
Thanks for your reply.
P.S. Perhaps it would be nice if the session arguments are actually checked for length and a warning is given if they do not fit into the rpc buffer? It took me some time to identify the problem in this case.