diff --git a/lib/log/index.js b/lib/log/index.js index e8d00b4..7f53e89 100644 --- a/lib/log/index.js +++ b/lib/log/index.js @@ -169,11 +169,8 @@ function Log(filename, opts) { if (err) throw err // prettier-ignore debug('Opened log file, last record is at log offset %d', lastRecOffset.value) - compact(function doneCompactingOnStartup(err) { - if (err) debug('Failed compacting on startup: %s', err.message) - // @ts-ignore - while (waitingLoad.length) waitingLoad.shift()() - }) + // @ts-ignore + while (waitingLoad.length) waitingLoad.shift()() }) } } diff --git a/test/del.test.js b/test/del.test.js index 6315b6b..ef788bc 100644 --- a/test/del.test.js +++ b/test/del.test.js @@ -66,6 +66,9 @@ test('del()', async (t) => { assert.deepEqual(after, ['m0', 'm1', 'm3', 'm4'], 'msgs after the delete') + await p(peer.db.log.compact)() + assert('compacted') + await p(peer.close)(true) const log = Log(path.join(DIR, 'db.bin'), { diff --git a/test/erase.test.js b/test/erase.test.js index 1cce987..be97a5b 100644 --- a/test/erase.test.js +++ b/test/erase.test.js @@ -77,6 +77,9 @@ test('erase()', async (t) => { assert.deepEqual(after2, [1, 2, 3, 4, 5], '5 metadata exists after the erase') + await p(peer.db.log.compact)() + assert('compacted') + await p(peer.close)(true) const log = Log(path.join(DIR, 'db.bin'), { diff --git a/test/log/delete.test.js b/test/log/delete.test.js index 17f58e8..7505280 100644 --- a/test/log/delete.test.js +++ b/test/log/delete.test.js @@ -48,7 +48,7 @@ test('Log deletes', async (t) => { await p(log.close)() }) - await t.test('Deleted records auto-compacted upon re-opening', async (t) => { + await t.test('Deleted records are not invalid upon re-opening', async (t) => { const file = '/tmp/ppppp-db-log-test-del-invalid.log' try { fs.unlinkSync(file) @@ -94,12 +94,19 @@ test('Log deletes', async (t) => { }, (err) => { assert.ifError(err) - assert.deepEqual(arr, [{ text: 'm0' }, { text: 'm2' }]) + assert.deepEqual(arr, [{ text: 'm0' }, null, { text: 'm2' }]) resolve() } ) }) + await assert.rejects(p(log2._get)(offset2), (err) => { + assert.ok(err) + assert.equal(err.message, 'Record has been deleted') + assert.equal(err.code, 'ERR_AAOL_DELETED_RECORD') + return true + }) + await p(log2.close)() })