O3R::Ports() exits with a segfault when a port is not running #412
Replies: 3 comments 7 replies
-
Hej Daniel, What firmware version are you running? Things are getting even a bit trickier when you switch the heads. So what would be your expected behaviour in this case? |
Beta Was this translation helpful? Give feedback.
-
@paradoxon82, can you please provide the code example to reproduce the issue and it will be very helpful if you can provide dump of the device before and after the disconnect of the port. you can get the dump of the device by ifm3d tool as
|
Beta Was this translation helpful? Give feedback.
-
Hi @paradoxon82, My guess is that, as @graugans mentioned, this issue comes from a configuration that was persistently saved on the device (save_init() function). This unfortunately happens under the hood when using the ifm3d CLI and some functions of the Vision Assistant. This persistent configuration ensures that the system boots up in the expected state, which means that an error is triggered when the configuration is different from expected, for instance if a camera is unplugged or switched for a different one. The problem is that we currently do not have an easy way to get rid of this persistent configuration, except for performing a factory reset, which also deletes all files and docker containers. What I recommend: check the persistent configuration on your device with the get_init() function. If you have a configuration saved there that is different from your current configuration, delete it with a factory_reset(). We are working on a feature to only erase the persistent configuration and not have to use the factory reset, but until this is released you will have to use the process I just described. Let us know if the issue persists. |
Beta Was this translation helpful? Give feedback.
-
Hi ifm community,
I have a setup of 4 cameras connected to the VPU runnig and did some tests with configuration or hardware errors.
Specifically I tried this:
O3R::Ports()
which will causes a core dump with this message:terminate called after throwing an instance of 'ifm3d::json_abi_v3_11_2::detail::type_error'
When looking at the configuration via
O3R::Get()
I found this part about the disconnected port empty:{ … „ports“: { …. "port3": { "info": { "partNumber": null } },…. } }
So the port information is empty apart from partNumber being null.
I can live with that but I would assume
O3R::Ports()
should still work and probably return a smaller list of ports, or the full list and report an error somehow.The software version is v1.3.3
Best Regards,
Daniel
Beta Was this translation helpful? Give feedback.
All reactions