Skip to content

fix(protoapp): always call loadConfig for streaming sources#29

Merged
pabloinigoblasco merged 2 commits into
developmentfrom
fix/always-call-loadconfig-for-streams
Apr 4, 2026
Merged

fix(protoapp): always call loadConfig for streaming sources#29
pabloinigoblasco merged 2 commits into
developmentfrom
fix/always-call-loadconfig-for-streams

Conversation

@pabloinigoblasco
Copy link
Copy Markdown
Collaborator

@pabloinigoblasco pabloinigoblasco commented Apr 3, 2026

Summary

This PR contains two important fixes for streaming data sources:

1. Always call loadConfig() for streaming sources

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.

This affected plugins that use loadConfig() to populate dynamic UI elements (e.g., encoding lists from runtimeHost().listAvailableEncodings()).

2. Add RTLD_DEEPBIND to prevent OpenSSL symbol conflicts

Plugins using paho-mqtt-cpp (MQTT) were crashing with SIGSEGV in libcrypto.so.3 when 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_DEEPBIND to dlopen() makes each plugin resolve its own symbols first, preventing these conflicts.

Changes

  • Always call loadConfig() for streaming sources, even with empty config
  • Add RTLD_DEEPBIND flag to dlopen() in library_loader.hpp

Related

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.
@pabloinigoblasco pabloinigoblasco merged commit 74e3cae into development Apr 4, 2026
2 checks passed
@pabloinigoblasco pabloinigoblasco deleted the fix/always-call-loadconfig-for-streams branch April 4, 2026 06:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant