Github user davisp commented on the issue:
https://github.com/apache/couchdb-couch/pull/236
@eiri The subtlety here is that anything marked as a sys_db is outside the
LRU and never gets closed (ie, they exist outside the max_dbs_open setting).
The change here is to close anything that's idle even when under max_dbs_open.
The subtletier subtlety is that our max_dbs_open setting is the determining
number on when make_room works. The contents of the LRU don't always line up
with what's actually in ets (e.g., delete's wipe things from ets but don't
modify the LRU). This relies on the LRU just ignoring anything it finds missing
from ets.
The bug was just that we weren't decrementing dbs_open in couch_server's
state record, not that we weren't removing entries from the LRU.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---