Hello Boris,
On 16.02.2018 12:50, Boris Mulder wrote:
[init -> init_system -> init_user -> init_wifi] child "nic_dump" announces service "Nic" Error: corrupted string ... Now when this happens the whole system hangs, nothing else is working anymore.
As soon as the wifi_drv is started, this problem occurs.
When I did not have init_wifi and the wifi_drv was running on top of init_user, everything worked fine. Of course, I adjusted all the routes and policies (of the platform_drv) accordingly.
Could the label be too long for core to handle perhaps, or is something else happening? What do these error messages mean and why do they pop up now and not with one init less?
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