You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-07-15 01:04:37 +02:00
Sort WAL segment names when reporting duplicates.
Make the output consistent even when files are listed in a different order. This is purely for testing purposes, but there is no harm in consistent output. Found on arm64.
This commit is contained in:
@ -123,7 +123,7 @@ archiveGetFind(
|
|||||||
const String *path = isSegment ? strSubN(archiveFileRequest, 0, 16) : NULL;
|
const String *path = isSegment ? strSubN(archiveFileRequest, 0, 16) : NULL;
|
||||||
|
|
||||||
// List to hold matches for the requested file
|
// List to hold matches for the requested file
|
||||||
List *matchList = lstNewP(sizeof(ArchiveGetFile));
|
List *matchList = lstNewP(sizeof(ArchiveGetFile), .comparator = lstComparatorStr);
|
||||||
|
|
||||||
// List of file level warnings
|
// List of file level warnings
|
||||||
StringList *fileWarnList = strLstDup(warnList);
|
StringList *fileWarnList = strLstDup(warnList);
|
||||||
@ -288,6 +288,9 @@ archiveGetFind(
|
|||||||
String *message = strNew();
|
String *message = strNew();
|
||||||
bool first = true;
|
bool first = true;
|
||||||
|
|
||||||
|
// Sort the matches so they are logged in a consistent order
|
||||||
|
lstSort(matchList, sortOrderAsc);
|
||||||
|
|
||||||
for (unsigned int matchIdx = 0; matchIdx < lstSize(matchList); matchIdx++)
|
for (unsigned int matchIdx = 0; matchIdx < lstSize(matchList); matchIdx++)
|
||||||
{
|
{
|
||||||
ArchiveGetFile *file = lstGet(matchList, matchIdx);
|
ArchiveGetFile *file = lstGet(matchList, matchIdx);
|
||||||
|
@ -399,8 +399,8 @@ testRun(void)
|
|||||||
"P01 DETAIL: found 0000000100000001000000FE in the repo1: 10-1 archive\n"
|
"P01 DETAIL: found 0000000100000001000000FE in the repo1: 10-1 archive\n"
|
||||||
"P01 DETAIL: found 0000000100000001000000FF in the repo1: 10-1 archive\n"
|
"P01 DETAIL: found 0000000100000001000000FF in the repo1: 10-1 archive\n"
|
||||||
"P00 WARN: [ArchiveDuplicateError] duplicates found for WAL segment 000000010000000200000000:\n"
|
"P00 WARN: [ArchiveDuplicateError] duplicates found for WAL segment 000000010000000200000000:\n"
|
||||||
" repo1: 10-1/0000000100000002/000000010000000200000000-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
" repo1: 10-1/0000000100000002/000000010000000200000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||||
", 10-1/0000000100000002/000000010000000200000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
|
", 10-1/0000000100000002/000000010000000200000000-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n"
|
||||||
" HINT: are multiple primaries archiving to this stanza?");
|
" HINT: are multiple primaries archiving to this stanza?");
|
||||||
|
|
||||||
TEST_STORAGE_GET_EMPTY(storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN "/0000000100000001000000FE", .remove = true);
|
TEST_STORAGE_GET_EMPTY(storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN "/0000000100000001000000FE", .remove = true);
|
||||||
@ -421,8 +421,8 @@ testRun(void)
|
|||||||
storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN "/000000010000000200000000.error",
|
storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN "/000000010000000200000000.error",
|
||||||
"45\n"
|
"45\n"
|
||||||
"duplicates found for WAL segment 000000010000000200000000:\n"
|
"duplicates found for WAL segment 000000010000000200000000:\n"
|
||||||
"repo1: 10-1/0000000100000002/000000010000000200000000-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, 10-1/0000000100000002"
|
"repo1: 10-1/0000000100000002/000000010000000200000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 10-1/0000000100000002"
|
||||||
"/000000010000000200000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
|
"/000000010000000200000000-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n"
|
||||||
"HINT: are multiple primaries archiving to this stanza?\n"
|
"HINT: are multiple primaries archiving to this stanza?\n"
|
||||||
"repo2: [PathOpenError] unable to list file info for path '" TEST_PATH "/repo2/archive/test2/10-1" \
|
"repo2: [PathOpenError] unable to list file info for path '" TEST_PATH "/repo2/archive/test2/10-1" \
|
||||||
"/0000000100000002': [13] Permission denied",
|
"/0000000100000002': [13] Permission denied",
|
||||||
@ -443,16 +443,16 @@ testRun(void)
|
|||||||
TEST_RESULT_LOG(
|
TEST_RESULT_LOG(
|
||||||
"P00 INFO: get 1 WAL file(s) from archive: 000000010000000200000000\n"
|
"P00 INFO: get 1 WAL file(s) from archive: 000000010000000200000000\n"
|
||||||
"P00 WARN: [ArchiveDuplicateError] duplicates found for WAL segment 000000010000000200000000:\n"
|
"P00 WARN: [ArchiveDuplicateError] duplicates found for WAL segment 000000010000000200000000:\n"
|
||||||
" repo1: 10-1/0000000100000002/000000010000000200000000-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
" repo1: 10-1/0000000100000002/000000010000000200000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||||
", 10-1/0000000100000002/000000010000000200000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
|
", 10-1/0000000100000002/000000010000000200000000-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n"
|
||||||
" HINT: are multiple primaries archiving to this stanza?");
|
" HINT: are multiple primaries archiving to this stanza?");
|
||||||
|
|
||||||
TEST_STORAGE_GET(
|
TEST_STORAGE_GET(
|
||||||
storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN "/000000010000000200000000.error",
|
storageSpoolWrite(), STORAGE_SPOOL_ARCHIVE_IN "/000000010000000200000000.error",
|
||||||
"45\n"
|
"45\n"
|
||||||
"duplicates found for WAL segment 000000010000000200000000:\n"
|
"duplicates found for WAL segment 000000010000000200000000:\n"
|
||||||
"repo1: 10-1/0000000100000002/000000010000000200000000-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, 10-1/0000000100000002"
|
"repo1: 10-1/0000000100000002/000000010000000200000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, 10-1/0000000100000002"
|
||||||
"/000000010000000200000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
|
"/000000010000000200000000-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n"
|
||||||
"HINT: are multiple primaries archiving to this stanza?",
|
"HINT: are multiple primaries archiving to this stanza?",
|
||||||
.remove = true);
|
.remove = true);
|
||||||
TEST_STORAGE_LIST_EMPTY(storageSpool(), STORAGE_SPOOL_ARCHIVE_IN);
|
TEST_STORAGE_LIST_EMPTY(storageSpool(), STORAGE_SPOOL_ARCHIVE_IN);
|
||||||
@ -861,8 +861,8 @@ testRun(void)
|
|||||||
TEST_ERROR(
|
TEST_ERROR(
|
||||||
cmdArchiveGet(), ArchiveDuplicateError,
|
cmdArchiveGet(), ArchiveDuplicateError,
|
||||||
"duplicates found for WAL segment 01ABCDEF01ABCDEF01ABCDEF:\n"
|
"duplicates found for WAL segment 01ABCDEF01ABCDEF01ABCDEF:\n"
|
||||||
"repo1: 10-1/01ABCDEF01ABCDEF/01ABCDEF01ABCDEF01ABCDEF-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
"repo1: 10-1/01ABCDEF01ABCDEF/01ABCDEF01ABCDEF01ABCDEF-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||||
", 10-1/01ABCDEF01ABCDEF/01ABCDEF01ABCDEF01ABCDEF-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
|
", 10-1/01ABCDEF01ABCDEF/01ABCDEF01ABCDEF01ABCDEF-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n"
|
||||||
"HINT: are multiple primaries archiving to this stanza?");
|
"HINT: are multiple primaries archiving to this stanza?");
|
||||||
|
|
||||||
TEST_STORAGE_LIST(storagePg(), "pg_wal", NULL);
|
TEST_STORAGE_LIST(storagePg(), "pg_wal", NULL);
|
||||||
|
Reference in New Issue
Block a user