Skip to content

Comments

[REF] stop auto-installing flanker#694

Open
yajo wants to merge 1 commit intoTecnativa:masterfrom
moduon:no-flanker
Open

[REF] stop auto-installing flanker#694
yajo wants to merge 1 commit intoTecnativa:masterfrom
moduon:no-flanker

Conversation

@yajo
Copy link
Contributor

@yajo yajo commented Feb 20, 2026

Reasons for the change:

  1. Flanker project is dead (last commit in 2023).
  2. Installing with [validator] depends on redis.
  3. If you don't deploy a Redis server, validating an email takes ~20s.
  4. If you deploy the Redis server, password auth is not supported.
  5. Password auth support cannot be added upstream because of point 1.

Extra notes:

Speedscope profile that shows a website form that captures CRM leads and takes 20 seconds to validate the email: profile.speedscope.json (see WorkerHttp (38) thread).

@moduon MT-13982

Reasons for the change:
1. Flanker project is dead (last commit in 2023).
2. Installing with `[validator]` depends on redis.
3. If you don't deploy a Redis server, validating an email takes ~20s.
4. If you deploy the Redis server, password auth is not supported.
5. Password auth support cannot be added upstream because of point 1.

Extra notes:
- Upstream removed flanker for the same reasons in Odoo 19.1: odoo/odoo#232653
- Continuation of Tecnativa#579
- Whoever wants it can add it back with a simple line in their pip dependencies list.

@moduon MT-13982
@ap-wtioit
Copy link
Contributor

This sound's like an issue we had quite a while ago (flanker does work for us):

  • odoo in docker uses the dockers dns (127.0.0.11) by default and when used in a restricted network this does not answer MX queries (leading to a timeout if i remember correctly, that could be the 20s you see)

    docker run --rm debian bash -c 'apt update && apt install -y bind9-dnsutils && dig MX gmail.com'

    ...
    Processing triggers for libc-bin (2.41-12+deb13u1) ...
    
    ; <<>> DiG 9.20.18-1~deb13u1-Debian <<>> MX gmail.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54917
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ;; QUESTION SECTION:
    ;gmail.com.			IN	MX
    
    ;; ANSWER SECTION:
    gmail.com.		551	IN	MX	40 alt4.gmail-smtp-in.l.google.com.
    gmail.com.		551	IN	MX	10 alt1.gmail-smtp-in.l.google.com.
    gmail.com.		551	IN	MX	30 alt3.gmail-smtp-in.l.google.com.
    gmail.com.		551	IN	MX	5 gmail-smtp-in.l.google.com.
    gmail.com.		551	IN	MX	20 alt2.gmail-smtp-in.l.google.com.
    
    ;; Query time: 13 msec
    ;; SERVER: 192.168.40.210#53(192.168.40.210) (UDP)
    ;; WHEN: Mon Feb 23 09:11:54 UTC 2026
    ;; MSG SIZE  rcvd: 161
    

    docker compose run --rm --entrypoint="" odoo dig MX gmail.com

    [+]  5/5t 5/55
     ✔ Container doodba-next-docker_dns-1 Running                                                                                                                                                                                 0.0s
     ✔ Container doodba-next-wdb-1        Running                                                                                                                                                                                 0.0s
     ✔ Container doodba-next-smtp-1       Running                                                                                                                                                                                 0.0s
     ✔ Container doodba-next-db-1         Running                                                                                                                                                                                 0.0s
    redacted
    
    Container doodba-next-odoo-run-24334d493dd7 Creating 
    WARN[0000] mount of type `volume` should not define `bind` option 
    Container doodba-next-odoo-run-24334d493dd7 Created 
    
    ; <<>> DiG 9.18.44-1~deb12u1-Debian <<>> MX gmail.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 56914
    ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
    ;; WARNING: recursion requested but not available
    
    ;; QUESTION SECTION:
    ;gmail.com.                     IN      MX
    
    ;; Query time: 0 msec
    ;; SERVER: 127.0.0.11#53(127.0.0.11) (UDP)
    ;; WHEN: Mon Feb 23 09:15:31 UTC 2026
    ;; MSG SIZE  rcvd: 27
    
  • the fix for this was adding a dns capable of resolving container names (e.g. "db") and MX queries in doodba-...default (a bind9 with 127.0.0.11 as forwarder for non MX, and a real dns for MX to still have globalwhitelist functionality for A records) and configuring the dns from 127.0.0.11 to the dns containers ip for odoo in an entrypoint script)

@yajo
Copy link
Contributor Author

yajo commented Feb 23, 2026

Thanks for the insights!

However, keeping in mind that flanker is already removed in Odoo 19.1, IMHO modern deployments can already stop using it by default.

Even if you want to adopt one of the more complex solutions (the extra DNS resolver or the extra Redis server), still you can just add flanker with 1 line of code in your pip requirements file.

Copy link
Contributor

@ap-wtioit ap-wtioit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will need to be added to #67 after it is merged.

@ap-wtioit
Copy link
Contributor

..., still you can just add flanker with 1 line of code in your pip requirements file.

And a build script to fix the permission issue because of doodba's permissions. Yes.

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.

2 participants