-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
camera/possibleSettingOptions segfaults using MAVSDK-Java 2.0.1 and MAVSDK-server-Android 2.0.0 #155
Comments
Maybe you could try to reproduce it in C++? That would make it easier to debug. |
@JonasVautherin Thanks for getting back to me, I'm not sure how one would do that on Android. I was able to get more detailed logs by removing log filters,
|
I was finally able to grab the Tombstone for the crash, |
No need to do it from Android: try to reproduce in C++ from your computer 😊 |
@JonasVautherin - Hmm...I'm unsure on how to do this on the computer - the camera module only emits with the real drone, as far as I'm aware, and it is connected via this Android-based controller. |
Oh, I see... What controller is that? |
Can you share the xml camera definition file that it parses? Using that we should be able to spot the problem or reproduce it? |
Sure, here is one,
and here is the other,
|
This doesn't look right:
Given that the xml looks correct, presumably the type set in param_get_ext or param_set_ext is not correctly set by the camera implementation. Can you check that part? |
Hi @julianoes , Unfortunately we don't have access to the source code for the drone. What we do know is, the same logic and drone works using the mavsdk-server-android 1.3.2 |
Right, so it could also be a mavsdk regression then... 🤔 I guess we need to add a bunch of debug output and then try that. Are you compiling mavsdk_server yourself? In which case you could add some debug things around where |
@julianoes - Nope, this was repro'd with the latest artifacts published on maven. |
Right, well, I need to put this on my todo list. If it's urgent to you, consider github sponsoring. |
@julianoes / @JonasVautherin - Found the root cause of this issue. The underlying logic for parsing and comparing ParamValues is expecting a string to be numeric, using functions like stoul to check equality. However, one code path was erroneously passing a string representation of ParamValue class instead of the numeric value. The fix can be done in
whereby,
needs to be changed to
Here specifically: https://github.com/mavlink/MAVSDK/blob/v2.12.12/src/mavsdk/plugins/camera/camera_impl.cpp#L1852 |
Would you mind opening a PR with this fix? |
Part of 2.1.4 release |
This did not occur with previous version 1.3.2
Repro code
system.camera.possibleSettingOptions.subscribe { it?.forEach { log.e("RAWR: ${it?.settingDescription}") } }
The text was updated successfully, but these errors were encountered: