Re: postscreen ps_cache fatal
Len Conrad: The only thing postscreen does after postfix reload (or stop) is to fork a child process and terminate immediately in the parent process; the child continues in the background, closes the Berkeley DB table, erases the Berkeley DB handle, accepts no new connections, and completes the client tests that are already in progress, without saving the result. Perhaps you can see if postfix reload reproduces the error message. mx6# date Tue Dec 8 21:08:14 EST 2009 mx6# postfix reload postfix/postfix-script: refreshing the Postfix mail system Dec 8 21:08:18 mx6 postfix/postscreen[12148]: fatal: close database /var/db/postfix/ps_cache.db: No such file or directory Maybe you can try this patch. It moves the close() before the fork(), and that would make a difference if Berkeley DB objects to process ID changes. If that does not help, then I recommend using use an older Berkeley DB version (like, the default FreeBSD one). Wietse *** ./postscreen.c- Sat Dec 5 19:52:45 2009 --- ./postscreen.c Wed Dec 9 06:43:47 2009 *** *** 987,992 --- 987,996 * but we don't need perfection. The host system is severely overloaded * and service levels are already way down. */ + if (cache_map != 0) { + dict_close(cache_map); + cache_map = 0; + } for (count = 0; /* see below */ ; count++) { if (count = 5) { msg_fatal(fork: %m); *** *** 995,1004 sleep(1); continue; } else { - if (cache_map != 0) { - dict_close(cache_map); - cache_map = 0; - } return; } } --- 999,1004
Re: postscreen ps_cache fatal
Len Conrad: mail_version = 2.7-20091008 fbsd 7.2 we're seeing one of these each time we stop postfix Dec 8 00:09:06 mx6 postfix/postscreen[49918]: fatal: close database /var/db/postfix/ps_cache.db: No such file or directory The Berkeley DB close() function returns an ENOENT error code. but mx6# ll /var/db/postfix/ps_cache.db -rw--- 1 postfix wheel - 93761536 Dec 8 14:31 /var/db/postfix/ps_cache.db Berkeley DB returns ENOENT for some other reason. Perhaps you have a corrupted database. Are you using a hash or btree file? I use btree for tables that change frequently. Wietse No functional impact afaics. Len
Re: postscreen ps_cache fatal
Len Conrad: mail_version = 2.7-20091008 fbsd 7.2 we're seeing one of these each time we stop postfix Dec 8 00:09:06 mx6 postfix/postscreen[49918]: fatal: close database /var/db/postfix/ps_cache.db: No such file or directory The Berkeley DB close() function returns an ENOENT error code. but mx6# ll /var/db/postfix/ps_cache.db -rw--- 1 postfix wheel - 93761536 Dec 8 14:31 /var/db/postfix/ps_cache.db Berkeley DB returns ENOENT for some other reason. Perhaps you have a corrupted database. Are you using a hash or btree file? I use btree for tables that change frequently. Wietse we're running postscreen on 5 high-volume relay-only MXs. postscreen_cache_map = btree:$data_directory/ps_cache every MX has the error every time our script stops postfix to update some .map files. Len
Re: postscreen ps_cache fatal
Len Conrad: Len Conrad: mail_version = 2.7-20091008 fbsd 7.2 we're seeing one of these each time we stop postfix Dec 8 00:09:06 mx6 postfix/postscreen[49918]: fatal: close database /var/db/postfix/ps_cache.db: No such file or directory The Berkeley DB close() function returns an ENOENT error code. but mx6# ll /var/db/postfix/ps_cache.db -rw--- 1 postfix wheel - 93761536 Dec 8 14:31 /var/db/postfix/ps_cache.db Berkeley DB returns ENOENT for some other reason. Perhaps you have a corrupted database. Are you using a hash or btree file? I use btree for tables that change frequently. Wietse we're running postscreen on 5 high-volume relay-only MXs. postscreen_cache_map = btree:$data_directory/ps_cache every MX has the error every time our script stops postfix to update some .map files. This is the same btree interface that has been forever in Postfix. It was last changed Jan 2007 to fix some case folding support. The previous change was Jun 2005. The only thing postscreen does after postfix reload (or stop) is to fork a child process and terminate immediately in the parent process; the child continues in the background, closes the Berkeley DB table, erases the Berkeley DB handle, accepts no new connections, and completes the client tests that are already in progress, without saving the result. Perhaps you can see if postfix reload reproduces the error message. Wietse
Re: postscreen ps_cache fatal
Len Conrad: mail_version = 2.7-20091008 fbsd 7.2 we're seeing one of these each time we stop postfix Dec 8 00:09:06 mx6 postfix/postscreen[49918]: fatal: close database /var/db/postfix/ps_cache.db: No such file or directory The Berkeley DB close() function returns an ENOENT error code. but mx6# ll /var/db/postfix/ps_cache.db -rw--- 1 postfix wheel - 93761536 Dec 8 14:31 /var/db/postfix/ps_cache.db Berkeley DB returns ENOENT for some other reason. Perhaps you have a corrupted database. Are you using a hash or btree file? I use btree for tables that change frequently. Wietse we're running postscreen on 5 high-volume relay-only MXs. postscreen_cache_map = btree:$data_directory/ps_cache every MX has the error every time our script stops postfix to update some .map files. This is the same btree interface that has been forever in Postfix. It was last changed Jan 2007 to fix some case folding support. The previous change was Jun 2005. The only thing postscreen does after postfix reload (or stop) is to fork a child process and terminate immediately in the parent process; the child continues in the background, closes the Berkeley DB table, erases the Berkeley DB handle, accepts no new connections, and completes the client tests that are already in progress, without saving the result. Perhaps you can see if postfix reload reproduces the error message. mx6# date Tue Dec 8 21:08:14 EST 2009 mx6# postfix reload postfix/postfix-script: refreshing the Postfix mail system Dec 8 21:08:18 mx6 postfix/postscreen[12148]: fatal: close database /var/db/postfix/ps_cache.db: No such file or directory Len