Closed paulgevers closed 11 months ago
This was actually one of the things expected with the switch to libsoup3 (discussion see #1225).
From a code perspective we cannot know whether a plugin will load libsoup2. So there is no safe solution from the plugin loading perspective.
To allow users to revocer
dconf reset /org/gnome/liferea/plugins/active-plugins
can be used.
I'm open for all good ideas on how to workaround the effect.
I don't know how these plugins integrate with liferea, so usefulness of suggestions here depend on how it works.
1) Put loading of plugins into something like Python's try/except mechanism (don't know if you can do that in c). However, seeing the failure mode it seems plugins are really changing the core, so this probably doesn't work.
1) If plugins go too deep into liferea, make the main call a try/except and if it fails, restart in a fallback mode with all plugins disabled and pop-up message of what just happened.
1) Make /usr/bin/liferea
a wrapper around the real binary and let that that handle the previous idea if this can't be done in c. As I'm not skilled in C, I might consider this for Debian if this can't be fixed in liferea proper.
1) I also like to note that it feels to me that if plugins can determine themselves which versions of libraries to use, this problem has always been lurking. I suspect this is only a real problem for libraries that have multiple versions around though? If I understand correctly plugins must ensure they are using the same version as liferea, but with plugins downloaded, I guess plugins need a versioning scheme such that liferea knows which one to download and can refuse to load them if the scheme says they are incompatible.
After thinking a bit about it I think the most maintainable solution is to always auto-disable any plugin names webkit-settings upon startup.
Any plugin named webkit-settings
is now auto-disabled on startup
@lwindolf can you please reopen this bug? The original reporter of the Debian bug came back and said that 1.15.3 still crashes at startup with the webkit-settings plugin installed and enabled. I can confirm.
@paulgevers Found the problem. While the GSettings key was edited correctly, the plugins were loaded before doing this. I've changed the code order. Now it should not crash anymore.
1.15.4 still crashes for me when I enable webkit-settings.
paul@mulciber ~ $ liferea --version
Liferea 1.15.4
paul@mulciber ~ $ liferea
(liferea:259214): libsoup-ERROR **: 22:07:07.970: libsoup3 symbols detected. Using libsoup2 and libsoup3 in the same process is not supported.
Trace/breakpoint trap (core dumped)
paul@mulciber ~ $
@paulgevers Strange. But the plugin is disabled after the crash?
No, it keeps crashing until I run dconf
.
Ah I didn't expect this. This means libpeas is loading all Python scripts in all cases (probably to know all of them) even before the "Python3" loader is being registered. The following commit will run the deactivation even before this.
Even that patch doesn't seem to help.
1.15.4 did not fix that problem under fedora https://bugzilla.redhat.com/show_bug.cgi?id=2244813 any chance to get 1.15.5 released?
@cheese1 I didn't find a solution yet.
Debian bug 1050590 was just reported against the liferea package in
testing
which was updated to 1.15.1 only yesterday. The reported had webkit-settings enabled which crashed liferea on startup.I could reproduce the issue.
With webkit-settings enabled:
I'm not sure if this is something that I as a maintainer of Debian should have prevented, apparently the ecosystem isn't ready yet if I read the problem correctly, or if there's something you can do on the liferea side.
Anyways, here is a backtrace with debugging information enabled, please let me know if I can provide more info: