On 2020-06-16 22:47 +0200, Alexander Strasser wrote: > On 2020-06-16 20:32 +0200, Alexander Strasser wrote: > > On 2020-06-16 12:37 -0000, Stuart Henderson wrote: > > > On 2020-06-15, Alexander Strasser <eclip...@gmx.net> wrote: > > > > I had some imap crashes (sig11) starting at the end of 2019 after > > > > an upgrade of dovecot. > > > > [...] > > > > > > > > So I suspect there were ABI incompatible changes and it was > > > > forgotten to bump the minimum Plugin-ABI version supported. > > > > > > dovecot-2.3.8/configure > > > #define DOVECOT_ABI_VERSION "2.3.ABIv8($PACKAGE_VERSION)" > > > > > > dovecot-2.3.9/configure > > > #define DOVECOT_ABI_VERSION "2.3.ABIv9($PACKAGE_VERSION)" > > > > > > Did you disable version checking? (version_ignore = yes) > > > > Thanks for the hint. > > > > I couldn't find version_ignore anywhere in the configs. > > I also don't remember having changed it. > > > > It's interesting that the ABI check didn't snap. > > If I'm on the right track and the code src/lib/module-dir.c is > responsible for loading plugins and doing the ABI check, then > I think it does only check ABI compat for modules that define > a symbol named <module-name>_version . > > At first this looks a bit unsafe to me. > > Though it explains why in my case there was no ABI check failing, > as I found out the plugin does not define a version symbol. > > The implementation should be really trivial, so I guess I will > add it to the plugin.
I played around with the version in the plugin. This seems to work. If the plugin ABI version is different from the dovecot ABI version, the plugin is not loaded and a warning is printed: imap(beastd-mail): Error: Couldn't load required plugin /usr/lib/dovecot/modules/lib_fetchmail_wakeup_plugin.so: Module is for different ABI version 1.2.3 (we have 2.3.ABIv10(2.3.10.1)) > I find the behaviour a bit surprising, but as I understand now, > it's the plugin's fault and not a missed ABI bump in dovecot as > I initially suspected. I'm still not sure why the behaviour is to assume a compatible ABI if no version is found. I would be curious, so if someone knows... [...] Alexander