Alex: > Hi, > > > >> smtpd_tls_session_cache_database > > > > > > This is defined to the default for all instances: > > > smtpd_tls_session_cache_database = > > > btree:/var/lib/postfix/smtpd_tls_session_cache > > > > That's wrong. The session cache needs to be: > > > > smtpd_tls_session_cache_database = > > ${data_directory}/smtpd_tls_session_cache > > > > with (enforced by postmulti) distict values of `data_directory` > > for each instance. Only the default instance gets to scribble > > in "/var/lib/postfix". > > Ah yes, of course. Thank you.
The xxx_tls_session_cache_database implementation has code that uses DICT_FLAG_OPEN_LOCK and would have prevented sharing this database, but that code is not enabled. In src/tls/tls_scache.c: #ifdef SINGLE_UPDATER #define DICT_FLAGS (DICT_FLAG_DUP_REPLACE | DICT_FLAG_OPEN_LOCK \ | DICT_FLAG_UTF8_REQUEST) #else #define DICT_FLAGS \ (DICT_FLAG_DUP_REPLACE | DICT_FLAG_LOCK | DICT_FLAG_SYNC_UPDATE \ | DICT_FLAG_UTF8_REQUEST) #endif As SINGLE_UPDATER is never defined, the second variant is used. Postscreen uses DICT_FLAG_OPEN_LOCK unconditionally: #define PSC_DICT_OPEN_FLAGS (DICT_FLAG_DUP_REPLACE | DICT_FLAG_SYNC_UPDATE | \ DICT_FLAG_OPEN_LOCK) We have good results with postscreen, so I'm changing the xxx_tls_session_cache_database code to use DICT_FLAG_OPEN_LOCK as well, starting in Postfix 3.7. Wietse