diff --git a/management/univention-directory-listener/src/cache.c b/management/univention-directory-listener/src/cache.c index 2edd8df733..e4585d9fed 100644 --- a/management/univention-directory-listener/src/cache.c +++ b/management/univention-directory-listener/src/cache.c @@ -443,6 +448,8 @@ static inline int cache_update_entry_in_transaction(NotifierID id, char *dn, Cac MDB_txn *write_txn; MDB_val key, data; u_int32_t tmp_size = 0; + MDB_env *env; + size_t mapsize; memset(&data, 0, sizeof(MDB_val)); rv = unparse_entry(&data.mv_data, &tmp_size, entry); @@ -466,6 +473,12 @@ static inline int cache_update_entry_in_transaction(NotifierID id, char *dn, Cac rv = mdb_put(write_txn, id2entry, &key, &data, 0); if (rv != MDB_SUCCESS) { univention_debug(UV_DEBUG_LISTENER, UV_DEBUG_ERROR, "cache_update_entry: storing entry in database failed: %s", dn); + if (rv == MDB_MAP_FULL) { + univention_debug(UV_DEBUG_LISTENER, UV_DEBUG_ERROR, "cache_update_entry: Please increase the value of the UCR variable listener/cache/mdb/maxsize"); + env = mdb_txn_env(write_txn); + mapsize = mdb_env_get_mapsize(env); + univention_debug(UV_DEBUG_LISTENER, UV_DEBUG_ERROR, "cache_update_entry: The current limit of %zu is too small", mapsize); + } ERROR_MDB_ABORT(rv, "mdb_put"); goto out; }