Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | When a lock fails due to an I/O error (not an SQLITE_BUSY) then the checkpoint should fail. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
c6eb0a27270df69018576232d8f97c16 |
User & Date: | drh 2010-06-02 20:38:20.000 |
Context
2010-06-03
| ||
09:01 | If a malloc fails while allocating a savepoint object at the pager level, do not try to roll that savepoint back later on. (check-in: 91cb08ffb6 user: dan tags: trunk) | |
2010-06-02
| ||
20:38 | When a lock fails due to an I/O error (not an SQLITE_BUSY) then the checkpoint should fail. (check-in: c6eb0a2727 user: drh tags: trunk) | |
18:59 | Fix a problem with rolling back to a savepoint opened before the writer decided to wrap the log file. (check-in: 6b4aed6aae user: dan tags: trunk) | |
Changes
Changes to src/wal.c.
︙ | ︙ | |||
1434 1435 1436 1437 1438 1439 1440 | u32 y = pInfo->aReadMark[i]; if( y>0 && (mxSafeFrame==0 || mxSafeFrame>=y) ){ if( y<=pWal->hdr.mxFrame && walLockExclusive(pWal, WAL_READ_LOCK(i), 1)==SQLITE_OK ){ pInfo->aReadMark[i] = 0; walUnlockExclusive(pWal, WAL_READ_LOCK(i), 1); | | > > > | 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 | u32 y = pInfo->aReadMark[i]; if( y>0 && (mxSafeFrame==0 || mxSafeFrame>=y) ){ if( y<=pWal->hdr.mxFrame && walLockExclusive(pWal, WAL_READ_LOCK(i), 1)==SQLITE_OK ){ pInfo->aReadMark[i] = 0; walUnlockExclusive(pWal, WAL_READ_LOCK(i), 1); }else if( rc==SQLITE_BUSY ){ mxSafeFrame = y-1; }else{ walIteratorFree(pIter); return rc; } } } if( pInfo->nBackfill<mxSafeFrame && (rc = walLockExclusive(pWal, WAL_READ_LOCK(0), 1))==SQLITE_OK ){ |
︙ | ︙ | |||
1474 1475 1476 1477 1478 1479 1480 | rc = sqlite3OsSync(pWal->pDbFd, sync_flags); } } } /* Release the reader lock held while backfilling */ walUnlockExclusive(pWal, WAL_READ_LOCK(0), 1); | | | 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 | rc = sqlite3OsSync(pWal->pDbFd, sync_flags); } } } /* Release the reader lock held while backfilling */ walUnlockExclusive(pWal, WAL_READ_LOCK(0), 1); }else if( rc==SQLITE_BUSY ){ /* Reset the return code so as not to report a checkpoint failure ** just because active readers prevent any backfill. */ rc = SQLITE_OK; } walIteratorFree(pIter); |
︙ | ︙ |