Re: postscreen ps_cache fatal

2009-12-09 Thread Wietse Venema
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

2009-12-08 Thread Wietse Venema
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

2009-12-08 Thread 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.

Len







Re: postscreen ps_cache fatal

2009-12-08 Thread Wietse Venema
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

2009-12-08 Thread 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.


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