fix(protoapp): always call loadConfig for streaming sources#29
Merged
pabloinigoblasco merged 2 commits intoApr 4, 2026
Merged
Conversation
Previously, loadConfig() was only called if there was a saved config. On first run (no saved config), plugins wouldn't receive loadConfig() before the dialog was shown, preventing them from initializing properly (e.g., populating encoding lists from runtime host).
paho-mqtt-cpp (built against Conan's OpenSSL) conflicted with the system's libcrypto.so.3 when the plugin was loaded via dlopen. Added RTLD_DEEPBIND to the dlopen call so each plugin resolves its own symbols instead of the global ones, preventing crashes in MQTT dialog when creating the discovery client.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR contains two important fixes for streaming data sources:
1. Always call
loadConfig()for streaming sourcesPreviously,
loadConfig()was only called if there was a saved config. On first run (no saved config), plugins wouldn't receiveloadConfig()before the dialog was shown, preventing them from initializing properly.This affected plugins that use
loadConfig()to populate dynamic UI elements (e.g., encoding lists fromruntimeHost().listAvailableEncodings()).2. Add
RTLD_DEEPBINDto prevent OpenSSL symbol conflictsPlugins using paho-mqtt-cpp (MQTT) were crashing with SIGSEGV in
libcrypto.so.3when clicking the Connect button. The root cause was OpenSSL symbol conflicts between Conan's OpenSSL (linked by paho-mqtt) and the system's libcrypto.Adding
RTLD_DEEPBINDtodlopen()makes each plugin resolve its own symbols first, preventing these conflicts.Changes
loadConfig()for streaming sources, even with empty configRTLD_DEEPBINDflag todlopen()inlibrary_loader.hppRelated