summaryrefslogtreecommitdiff
path: root/lib/tdb2
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tdb2')
-rw-r--r--lib/tdb2/tdb1_lock.c3
-rw-r--r--lib/tdb2/tdb1_transaction.c23
2 files changed, 17 insertions, 9 deletions
diff --git a/lib/tdb2/tdb1_lock.c b/lib/tdb2/tdb1_lock.c
index 2252e4791b..6498b71367 100644
--- a/lib/tdb2/tdb1_lock.c
+++ b/lib/tdb2/tdb1_lock.c
@@ -180,7 +180,8 @@ int tdb1_lock(struct tdb1_context *tdb, int list, int ltype)
int ret;
ret = tdb1_lock_list(tdb, list, ltype, TDB_LOCK_WAIT);
- if (ret) {
+ /* Don't log for EAGAIN and EINTR: they could have overridden lock fns */
+ if (ret && errno != EAGAIN && errno != EINTR) {
tdb_logerr(tdb, tdb->last_error, TDB_LOG_ERROR,
"tdb1_lock failed on list %d "
"ltype=%d (%s)", list, ltype, strerror(errno));
diff --git a/lib/tdb2/tdb1_transaction.c b/lib/tdb2/tdb1_transaction.c
index 8d25f96ab5..9c526fb41e 100644
--- a/lib/tdb2/tdb1_transaction.c
+++ b/lib/tdb2/tdb1_transaction.c
@@ -478,8 +478,11 @@ static int _tdb1_transaction_start(struct tdb1_context *tdb)
/* get a read lock from the freelist to the end of file. This
is upgraded to a write lock during the commit */
if (tdb1_allrecord_lock(tdb, F_RDLCK, TDB_LOCK_WAIT, true) == -1) {
- tdb_logerr(tdb, tdb->last_error, TDB_LOG_ERROR,
- "tdb1_transaction_start: failed to get hash locks");
+ if (errno != EAGAIN && errno != EINTR) {
+ tdb_logerr(tdb, tdb->last_error, TDB_LOG_ERROR,
+ "tdb1_transaction_start:"
+ " failed to get hash locks");
+ }
goto fail_allrecord_lock;
}
@@ -955,9 +958,11 @@ static int _tdb1_transaction_prepare_commit(struct tdb1_context *tdb)
/* upgrade the main transaction lock region to a write lock */
if (tdb1_allrecord_upgrade(tdb) == -1) {
- tdb_logerr(tdb, tdb->last_error, TDB_LOG_ERROR,
- "tdb1_transaction_prepare_commit:"
- " failed to upgrade hash locks");
+ if (errno != EAGAIN && errno != EINTR) {
+ tdb_logerr(tdb, tdb->last_error, TDB_LOG_ERROR,
+ "tdb1_transaction_prepare_commit:"
+ " failed to upgrade hash locks");
+ }
_tdb1_transaction_cancel(tdb);
return -1;
}
@@ -965,9 +970,11 @@ static int _tdb1_transaction_prepare_commit(struct tdb1_context *tdb)
/* get the open lock - this prevents new users attaching to the database
during the commit */
if (tdb1_nest_lock(tdb, TDB1_OPEN_LOCK, F_WRLCK, TDB_LOCK_WAIT) == -1) {
- tdb_logerr(tdb, tdb->last_error, TDB_LOG_ERROR,
- "tdb1_transaction_prepare_commit:"
- " failed to get open lock");
+ if (errno != EAGAIN && errno != EINTR) {
+ tdb_logerr(tdb, tdb->last_error, TDB_LOG_ERROR,
+ "tdb1_transaction_prepare_commit:"
+ " failed to get open lock");
+ }
_tdb1_transaction_cancel(tdb);
return -1;
}