Merge branch 'fix/TD-21451' into fix/TD-21446
This commit is contained in:
commit
5c431dda98
|
@ -880,7 +880,7 @@ static int tdbPagerRestore(SPager *pPager, const char *jFileName) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
tdbDebug("pager/restore: %p, %d/%d, txnId:%" PRId64, pPager, pPager->dbOrigSize, pPager->dbFileSize, pTxn->txnId);
|
tdbDebug("pager/restore: %p, %d/%d, txnId:%s", pPager, pPager->dbOrigSize, pPager->dbFileSize, jFileName);
|
||||||
|
|
||||||
for (int pgIndex = 0; pgIndex < journalSize; ++pgIndex) {
|
for (int pgIndex = 0; pgIndex < journalSize; ++pgIndex) {
|
||||||
// read pgno & the page from journal
|
// read pgno & the page from journal
|
||||||
|
@ -953,7 +953,12 @@ int tdbPagerRestoreJournals(SPager *pPager) {
|
||||||
while ((pDirEntry = tdbReadDir(pDir)) != NULL) {
|
while ((pDirEntry = tdbReadDir(pDir)) != NULL) {
|
||||||
char *name = tdbDirEntryBaseName(tdbGetDirEntryName(pDirEntry));
|
char *name = tdbDirEntryBaseName(tdbGetDirEntryName(pDirEntry));
|
||||||
if (strncmp(TDB_MAINDB_NAME "-journal", name, 16) == 0) {
|
if (strncmp(TDB_MAINDB_NAME "-journal", name, 16) == 0) {
|
||||||
if (tdbPagerRestore(pPager, name) < 0) {
|
char jname[TD_PATH_MAX] = {0};
|
||||||
|
int dirLen = strlen(pPager->pEnv->dbName);
|
||||||
|
memcpy(jname, pPager->pEnv->dbName, dirLen);
|
||||||
|
jname[dirLen] = '/';
|
||||||
|
memcpy(jname + dirLen + 1, name, strlen(name));
|
||||||
|
if (tdbPagerRestore(pPager, jname) < 0) {
|
||||||
tdbCloseDir(&pDir);
|
tdbCloseDir(&pDir);
|
||||||
|
|
||||||
tdbError("failed to restore file due to %s. jFileName:%s", strerror(errno), name);
|
tdbError("failed to restore file due to %s. jFileName:%s", strerror(errno), name);
|
||||||
|
|
Loading…
Reference in New Issue