summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSulabh Mahajan <sulabh.mahajan@mongodb.com>2023-04-17 11:09:03 +1000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-04-17 01:57:50 +0000
commite65b0cf4686f853c0d92ea9e255447b70f1e304a (patch)
treeec6ef1953d813f28a507aa8266b00614b151a626
parent933bc96f18f527eed32a57f4cbc70a0d8b94cc60 (diff)
downloadmongo-e65b0cf4686f853c0d92ea9e255447b70f1e304a.tar.gz
Import wiredtiger: ac320a657e7b39abc8fba594a8ede25cd1a41080 from branch mongodb-master
ref: 5850afdc2c..ac320a657e for: 7.0.0-rc0 WT-10912 Handle EINVAL and no backup existing.
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/test/csuite/timestamp_abort/main.c21
2 files changed, 14 insertions, 9 deletions
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index f481e1364ff..a47809dc28d 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -2,5 +2,5 @@
"vendor": "wiredtiger",
"github": "wiredtiger/wiredtiger.git",
"branch": "mongodb-master",
- "commit": "5850afdc2c9a473bd38f2507dff888600b9c3f95"
+ "commit": "ac320a657e7b39abc8fba594a8ede25cd1a41080"
}
diff --git a/src/third_party/wiredtiger/test/csuite/timestamp_abort/main.c b/src/third_party/wiredtiger/test/csuite/timestamp_abort/main.c
index f285e084685..0821349544c 100644
--- a/src/third_party/wiredtiger/test/csuite/timestamp_abort/main.c
+++ b/src/third_party/wiredtiger/test/csuite/timestamp_abort/main.c
@@ -735,9 +735,9 @@ thread_backup_run(void *arg)
struct stat sb;
THREAD_DATA *td;
WT_CURSOR *cursor;
+ WT_DECL_RET;
WT_SESSION *session;
uint32_t i, last_backup, last_full, sleep_time, u;
- int ret;
char *str;
char buf[1024];
@@ -750,7 +750,14 @@ thread_backup_run(void *arg)
* Find the last successful backup.
*/
if (td->workload_iteration > 1) {
- testutil_check(session->open_cursor(session, "backup:query_id", NULL, NULL, &cursor));
+ ret = session->open_cursor(session, "backup:query_id", NULL, NULL, &cursor);
+ /*
+ * If the query indicates no previous backup exists, then we only want to create a full
+ * backup this iteration.
+ */
+ if (ret == EINVAL)
+ goto create;
+ testutil_check(ret);
while ((ret = cursor->next(cursor)) == 0) {
testutil_check(cursor->get_key(cursor, &str));
testutil_assert(strncmp(str, "ID", 2) == 0);
@@ -780,6 +787,7 @@ thread_backup_run(void *arg)
testutil_check(cursor->close(cursor));
}
+create:
/*
* Create backups until we get killed.
*/
@@ -1236,12 +1244,9 @@ backup_exists(WT_CONNECTION *conn, uint32_t index)
*/
found = false;
ret = session->open_cursor(session, "backup:query_id", NULL, NULL, &cursor);
- if (ret != 0) {
- if (ret == EINVAL)
- goto done;
- else
- testutil_check(ret);
- }
+ if (ret == EINVAL)
+ goto done;
+ testutil_check(ret);
while (cursor->next(cursor) == 0) {
testutil_check(cursor->get_key(cursor, &idstr));
if (strcmp(idstr, backup_id) == 0) {