On Friday 19 December 2008 20.22.37 LÉVAI Dániel wrote:
Hi!
Using dovecot-1.1.17, and BDB-4.6.21. I'm having this error in every two weeks or so. I've running this in a crontab: /usr/local/sbin/dovecot --exec-mail
ext /usr/local/libexec/dovecot/expire-toolThe expire plugin and tool is working fine, the configuration is ok, and I'm using the BDB backend. What happens in every ~two weeks is dovecot starts to give me this error messages: Error: dict: db_env: Unable to allocate memory for transaction detail Error: dict: Failed to initialize dictionary 'expire'
Reading thru Oracle's Berkeley DB FAQ: http://www.oracle.com/technology/products/berkeley-db/faq/db_faq.html #28 "This error means the maximum number of active transactions configured for Berkeley DB has been reached [...] When all of the memory available in the database environment for transactions is in use, calls to being a transaction will fail until some active transactions complete. By default, the database environment is configured to support at least 20 active transactions." . What could be happening here? Why coudn't it finish its transactions? After a dovecot restart it works fine :
Sorry, I was in a hurry. It won't work even after a dovecot restart. I must delete expire's database directory, which I set with "expire = db:/var/dovecot/expire/expire.db" under the dict {} section. Then after a dovecot restart it works fine (at least for a couple of weeks).
-- LEVAI Daniel PGP key ID = 0x4AC0A4B1 Key fingerprint = D037 03B9 C12D D338 4412 2D83 1373 917A 4AC0 A4B1