Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to run against Ubuntu Focal packages #14

Closed
HeavyThumper opened this issue Nov 9, 2021 · 3 comments
Closed

Unable to run against Ubuntu Focal packages #14

HeavyThumper opened this issue Nov 9, 2021 · 3 comments

Comments

@HeavyThumper
Copy link

Having installed Dovecot from the repo.dovecot.org for Focal (version 2.3.17) and adding the dovecot-dev package I was able to successfully compile flatcurve. However, after adding flatcurve to mail_plugins, and then triggering a reindex, I receive the following:

Fatal: Couldn't load required plugin /usr/lib/dovecot/modules/lib21_fts_flatcurve_plugin.so: dlopen() failed: /usr/lib/dovecot/modules/lib21_fts_flatcurve_plugin.so: undefined symbol: _ZTIN6icu_668ByteSinkE

@slusarz
Copy link
Owner

slusarz commented Nov 9, 2021

CI is run on a stock debian buster image (see https://github.com/slusarz/dovecot-fts-flatcurve/blob/master/.github/actions/dovecot-fts-flatcurve-test/Dockerfile)

If I change the image used from "debian:buster-slim" to "ubuntu:20.04", all tests pass:

➜  dovecot-fts-flatcurve-test git:(master) ✗ podman run flatcurve-ubuntu

Testing RFC Compliant (substring) configuration
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/66 individual commands failed
extensions: 0/0 individual commands failed

Testing prefix-only configuration
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/66 individual commands failed
extensions: 0/0 individual commands failed

Testing GitHub Issue #9 (1st pass)
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/5 individual commands failed
extensions: 0/0 individual commands failed

Testing GitHub Issue #9 (2nd pass; crash)
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/5 individual commands failed
extensions: 0/0 individual commands failed

Testing GitHub Issue #10 (English)
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/5 individual commands failed
extensions: 0/0 individual commands failed

Testing GitHub Issue #10 (German; fails)
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/5 individual commands failed
extensions: 0/0 individual commands failed

Testing GitHub Issue #11 (DB Rotation/Deletion)
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/12 individual commands failed
extensions: 0/0 individual commands failed

Testing DB Rotation/Deletion (populating mailbox)
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/2 individual commands failed
extensions: 0/0 individual commands failed

Testing DB Rotation/Deletion (multiple current DBs)
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/5 individual commands failed
extensions: 0/0 individual commands failed

Testing DB Rotation/Deletion (after optimization)
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/4 individual commands failed
extensions: 0/0 individual commands failed

Testing optimize_limit
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/2 individual commands failed
extensions: 0/0 individual commands failed

Testing Concurrent Indexing
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/2 individual commands failed
extensions: 0/0 individual commands failed

Testing large mailbox
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/2 individual commands failed
extensions: 0/0 individual commands failed

Testing small mailbox (and large expunge from previous test)
1 test groups: 0 failed, 0 skipped due to missing capabilities
base protocol: 0/2 individual commands failed
extensions: 0/0 individual commands failed

Testing rescan
Success!

Testing optimize
Success!

Testing 'doveadm fts-flatcurve check'
Success!

Testing 'doveadm fts-flatcurve stats'
Success!

Testing 'doveadm fts-flatcurve remove'
Success!

➜  dovecot-fts-flatcurve-test git:(master) ✗ podman run --rm -it --entrypoint cat flatcurve-ubuntu /etc/issue.net
Ubuntu 20.04.3 LTS

Thus, this seems to be a local compiling/linking error on your system, as I cannot reproduce. Suggestion: build the code with the steps contained in the Dockerfile listed above on your local system.

Also, check to make sure you are loading all necessary plugins in doveadm mode (i.e. your mail_plugins setting is not different for doveadm service as it is for, e.g., imap). Working config for CI can be found at https://github.com/slusarz/dovecot-fts-flatcurve/blob/master/.github/actions/dovecot-fts-flatcurve-test/configs/dovecot.conf.

@slusarz
Copy link
Owner

slusarz commented Nov 30, 2021

Closing due to no feedback.

@sergiodj
Copy link

FWIW, I've encountered a similar problem while testing fts-flatcurve on a Debian testing. Everything was compiled successfully but the dlopen failed. In my case, the undefined symbol was a Xapian-related one. The problem was that ./configure succeeded even though I had forgotten to install libxapian-dev, but make failed because of it, so I ended up installing the library after ./configure was run which meant that $(XAPIAN_LIBS) was empty and the resulting solib didn't link against libxapian.

It seems to me that ./configure should fail if it can't find the required dependencies, Xapian included.

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

No branches or pull requests

3 participants