Bug report: Pigeonhole Sieve delivery plugin fail s to load in Dovecot 2.4 — undefined symbol mail_deliver_ctx_get_log_var_expand_tabl e

Developer Sub N Grill via dovecot <[email protected]>
Newsgroups gmane.mail.imap.dovecot
Message-ID <010f019fd959b5b7-d726e053-569f-4154-a3f2-884836d01cda-000000@us-east-2.amazonses.com>
Hello Dovecot Team,

I am reporting what appears to be a packaging/ABI issue affecting the 
Pigeonhole Sieve delivery plugin in Dovecot 2.4. I have performed 
extensive diagnostics and would appreciate any guidance.

Environment
Operating System: Debian 13 (Trixie), amd64
Repository: Official Dovecot CE repository 
(repo.dovecot.org/ce-2.4-latest/debian/trixie)
Installed package version:2:2.4.4-5+debian13
Installed packages:

dovecot-core
dovecot-sieve
dovecot-lmtpd
dovecot-imapd
dovecot-pop3d
dovecot-managesieved
dovecot-pgsql
All packages are installed at the exact same version.

Problem Description
When enabling the Sieve delivery plugin with:

mail_plugins {
   sieve = yes
}
Dovecot fails to load the plugin with the following error:

sievec: Fatal: Couldn't load required plugin /usr/lib/dovecot/modules/lib90_sieve_plugin.so:
dlopen() failed: /usr/lib/dovecot/modules/lib90_sieve_plugin.so:
undefined symbol: mail_deliver_ctx_get_log_var_expand_table
As a result, message delivery fails entirely whenever the Sieve delivery 
plugin is enabled. Disabling the plugin restores normal mail delivery.

Diagnostics Performed1. Package verification
All installed packages are version 2:2.4.4-5+debian13 from the official 
Dovecot CE repository. There are no mixed package versions.

2. Symbol verification
I searched for the symbol mail_deliver_ctx_get_log_var_expand_table 
throughout the Dovecot libraries.

Results:

nm -D on libdovecot-lda.so.0.0.0 → symbol not found

readelf -sW on libdovecot-lda.so.0.0.0 → symbol not found

Recursive search across all .so files under:

/usr/lib/dovecot/
/usr/lib/x86_64-linux-gnu/dovecot/
→ symbol not exported anywhere
The symbol string exists inside both:

lib90_sieve_plugin.so
libdovecot-lda.so.0.0.0
but only as plain text (visible via grep), never as an exported ELF 
symbol.

3. Dependency verification
ldd on lib90_sieve_plugin.so shows dependencies on:

libdovecot-sieve.so.0
libdovecot-storage.so.0
libdovecot.so.0
It does not directly link against libdovecot-lda.so.

4. Standalone sievec
Compiling a Sieve script works correctly:

sievec /tmp/test.sieve
Exit status is 0 as long as no configuration enables the Sieve delivery 
plugin.

The failure only occurs once:

mail_plugins {
   sieve = yes
}
is present in the configuration.

Reproduced on a Clean Debian 13 Installation
To rule out configuration or upgrade issues, I reproduced the exact same 
problem on a completely clean debian:13-slim container.

I installed only the Debian stable packages:

apt-get install dovecot-core dovecot-sieve dovecot-lmtpd
(version 1:2.4.1+dfsg1-6+deb13u6)

Using the same production configuration with:

mail_plugins {
   sieve = yes
}
produces the exact same error:

sievec: Fatal: Couldn't load required plugin ...
undefined symbol: mail_deliver_ctx_get_log_var_expand_table
This indicates the problem is not caused by:

mixed package versions
an upgrade issue
local modifications
custom configuration
The issue reproduces consistently on both:

Dovecot CE 2.4.4
Debian 13's packaged Dovecot 2.4.1
Questions
Is mail_deliver_ctx_get_log_var_expand_table a new internal function 
that should be exported in Dovecot 2.4? Was there an ABI change 
affecting the Pigeonhole plugin?

Is this a known issue in the Dovecot 2.4.x packages? If so, is a fix 
planned (for example, in 2.4.5)?

Is there any recommended workaround for using Sieve during message 
delivery (e.g. moving spam to the Junk folder) while this issue is 
unresolved?

I am trying to use the new Dovecot 2.4 configuration syntax 
(sieve_script_type, sieve_script_precedence, and sieve_script_path), 
since sieve_before and the plugin {} block were removed in 2.4.

Thank you for your time. I would be happy to provide additional logs, 
the complete doveconf -n output, or a core dump if that would be 
helpful.

Best regards,

Miguel A Morales

Server: Debian 13 (amd64)
Dovecot: 2.4.4-5+debian13

_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.