#1001224 amavisd-new: Amavis database corrupted infrequently - Suicide in child_init_hook: BDB can't connect db env

#1001224#5
Date:
2021-12-06 15:56:58 UTC
From:
To:
Dear Maintainer,

after upgrading to bullseye, I see a database corruption every few days, rendering amavis unusable until the database is built up again. To recover from the error, something like this is needed:

	service amavis stop
	mv /var/lib/amavis/db /var/lib/amavis/db~
	mkdir /var/lib/amavis/db
	chown amavis:amavis /var/lib/amavis/db
	chmod o-rx /var/lib/amavis/db
	service amavis start

Unfortunatelly, I'm not able to tell the exact trigger for the database corruption. Maybe it is related to the system being somewhat memory limited, which sometimes leads to swapping and slow processing times.

In one thread, switching to a redis database is recommended:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214218

The logs look for examlple like this:
Dec  6 13:35:53 emailserver amavis[1559665]: (1559665-02-7) (!!)TROUBLE in check_mail, but must continue (1): update_snmp FAILED: update_snmp_variables: BDB S db_cursor: BDB0061 PANIC: Das Argument ist ungültig, . at (eval 91) l
ine 107.
Dec  6 13:35:53 emailserver amavis[1559664]: (1559664-03-2) (!!)TROUBLE in check_mail, but must continue (1): update_snmp FAILED: update_snmp_variables: BDB S c_get: BDB0060 PANIC: fatal region error detected; run recovery, . at
 (eval 91) line 140.
Dec  6 13:35:53 emailserver amavis[1559665]: (1559665-02-7) (!!)TROUBLE in process_request: register_proc: BDB N db_cursor: BDB0060 PANIC: fatal region error detected; run recovery, . at (eval 91) line 220.
Dec  6 13:35:53 emailserver amavis[1559665]: (1559665-02-7) (!)Requesting process rundown after fatal error
Dec  6 13:35:53 emailserver amavis[1559664]: (1559664-03-2) (!!)TROUBLE in process_request: register_proc: BDB N db_cursor: BDB0060 PANIC: fatal region error detected; run recovery, . at (eval 91) line 220.
Dec  6 13:35:53 emailserver amavis[1559664]: (1559664-03-2) (!)Requesting process rundown after fatal error
Dec  6 13:35:54 emailserver amavis[1559665]: (1559665-02-7) (!)TempDir removal: tempdir is to be PRESERVED: /var/lib/amavis/tmp/amavis-20211206T132604-1559665-foq2xpsA
Dec  6 13:35:56 emailserver amavisd-new[1559665]: register_proc: BDB N db_cursor: BDB0060 PANIC: fatal region error detected; run recovery, . at (eval 91) line 220.
Dec  6 13:35:56 emailserver amavis[1559665]: (1559665-02-7) (!)_DIE: register_proc: BDB N db_cursor: BDB0060 PANIC: fatal region error detected; run recovery, . at (eval 91) line 220.
Dec  6 13:35:56 emailserver amavisd-new[1559664]: register_proc: BDB N db_cursor: BDB0060 PANIC: fatal region error detected; run recovery, . at (eval 91) line 220.
Dec  6 13:35:56 emailserver amavis[1559665]: (1559665-02-7) (!)Amavis::END: DB unregistering failed:
Dec  6 13:35:56 emailserver amavis[1559664]: (1559664-03-2) (!)TempDir removal: tempdir is to be PRESERVED: /var/lib/amavis/tmp/amavis-20211206T132604-1559664-xiTb_xfl
Dec  6 13:35:56 emailserver amavis[1559664]: (1559664-03-2) (!)_DIE: register_proc: BDB N db_cursor: BDB0060 PANIC: fatal region error detected; run recovery, . at (eval 91) line 220.
Dec  6 13:35:57 emailserver amavis[1559664]: (1559664-03-2) (!)Amavis::END: DB unregistering failed:
Dec  6 13:36:47 emailserver amavis[1559785]: (!!)TROUBLE in child_init_hook: BDB can't connect db env. at /var/lib/amavis/db: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery, No such file or directory. at (eval 91) line 338.
Dec  6 13:36:47 emailserver amavisd-new[1559785]: Suicide in child_init_hook: BDB can't connect db env. at /var/lib/amavis/db: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery, No such file or directory. at (eval 91) line 338.
Dec  6 13:36:48 emailserver amavisd-new[1559786]: Suicide in child_init_hook: BDB can't connect db env. at /var/lib/amavis/db: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery, No such file or directory. at (eval 91) line 338.
Dec  6 13:36:48 emailserver amavis[1559786]: (!!)TROUBLE in child_init_hook: BDB can't connect db env. at /var/lib/amavis/db: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery, No such file or directory. at (eval 91) line 338.
Dec  6 13:36:48 emailserver amavis[1559785]: (!)_DIE: Suicide in child_init_hook: BDB can't connect db env. at /var/lib/amavis/db: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery, No such file or directory. at (eval 91) line 338.
Dec  6 13:36:48 emailserver amavis[1559786]: (!)_DIE: Suicide in child_init_hook: BDB can't connect db env. at /var/lib/amavis/db: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery, No such file or directory. at (eval 91) line 338.
Dec  6 13:42:40 emailserver amavis[1559809]: (!!)TROUBLE in child_init_hook: BDB can't connect db env. at /var/lib/amavis/db: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery, No such file or directory. at (eval 91) line 338.


These TROUBLE / _DIE  messages continue until the database is built up again.