Merge pull request #15382 from overleaf/csh-issue-11625-mongo-ug-5-history-v1
Upgrade mongodb module for history-v1 from 4.11.0 to 6.2.0 GitOrigin-RevId: 2f0a8c07f2797ac23d202858613715b177b41e15
This commit is contained in:
committed by
Copybot
parent
7da8e3b646
commit
0ae174a47b
@@ -29,7 +29,7 @@
|
||||
"jsonwebtoken": "^9.0.0",
|
||||
"knex": "^2.4.0",
|
||||
"lodash": "^4.17.19",
|
||||
"mongodb": "^4.11.0",
|
||||
"mongodb": "^6.2.0",
|
||||
"overleaf-editor-core": "*",
|
||||
"pg": "^8.7.1",
|
||||
"swagger-tools": "^0.10.4",
|
||||
|
||||
@@ -29,7 +29,7 @@ async function initialize(projectId) {
|
||||
assert.mongoId(projectId, 'bad projectId')
|
||||
try {
|
||||
await mongodb.blobs.insertOne({
|
||||
_id: ObjectId(projectId),
|
||||
_id: new ObjectId(projectId),
|
||||
blobs: {},
|
||||
})
|
||||
} catch (err) {
|
||||
@@ -48,7 +48,7 @@ async function findBlob(projectId, hash) {
|
||||
|
||||
const bucket = getBucket(hash)
|
||||
const result = await mongodb.blobs.findOne(
|
||||
{ _id: ObjectId(projectId) },
|
||||
{ _id: new ObjectId(projectId) },
|
||||
{ projection: { _id: 0, bucket: `$${bucket}` } }
|
||||
)
|
||||
|
||||
@@ -103,7 +103,7 @@ async function findBlobs(projectId, hashes) {
|
||||
projection[bucket] = 1
|
||||
}
|
||||
const result = await mongodb.blobs.findOne(
|
||||
{ _id: ObjectId(projectId) },
|
||||
{ _id: new ObjectId(projectId) },
|
||||
{ projection }
|
||||
)
|
||||
|
||||
@@ -191,7 +191,7 @@ async function insertBlob(projectId, blob) {
|
||||
const record = blobToRecord(blob)
|
||||
const result = await mongodb.blobs.updateOne(
|
||||
{
|
||||
_id: ObjectId(projectId),
|
||||
_id: new ObjectId(projectId),
|
||||
$expr: {
|
||||
$lt: [{ $size: { $ifNull: [`$${bucket}`, []] } }, MAX_BLOBS_IN_BUCKET],
|
||||
},
|
||||
@@ -224,7 +224,7 @@ async function insertRecordSharded(projectId, hash, record) {
|
||||
*/
|
||||
async function deleteBlobs(projectId) {
|
||||
assert.mongoId(projectId, 'bad projectId')
|
||||
await mongodb.blobs.deleteOne({ _id: ObjectId(projectId) })
|
||||
await mongodb.blobs.deleteOne({ _id: new ObjectId(projectId) })
|
||||
const minShardedId = makeShardedId(projectId, '0')
|
||||
const maxShardedId = makeShardedId(projectId, 'f')
|
||||
await mongodb.shardedBlobs.deleteMany({
|
||||
|
||||
@@ -14,7 +14,7 @@ async function getLatestChunk(projectId) {
|
||||
assert.mongoId(projectId, 'bad projectId')
|
||||
|
||||
const record = await mongodb.chunks.findOne(
|
||||
{ projectId: ObjectId(projectId), state: 'active' },
|
||||
{ projectId: new ObjectId(projectId), state: 'active' },
|
||||
{ sort: { startVersion: -1 } }
|
||||
)
|
||||
if (record == null) {
|
||||
@@ -32,7 +32,7 @@ async function getChunkForVersion(projectId, version) {
|
||||
|
||||
const record = await mongodb.chunks.findOne(
|
||||
{
|
||||
projectId: ObjectId(projectId),
|
||||
projectId: new ObjectId(projectId),
|
||||
state: 'active',
|
||||
startVersion: { $lte: version },
|
||||
endVersion: { $gte: version },
|
||||
@@ -55,7 +55,7 @@ async function getChunkForTimestamp(projectId, timestamp) {
|
||||
|
||||
const record = await mongodb.chunks.findOne(
|
||||
{
|
||||
projectId: ObjectId(projectId),
|
||||
projectId: new ObjectId(projectId),
|
||||
state: 'active',
|
||||
endTimestamp: { $gte: timestamp },
|
||||
},
|
||||
@@ -84,7 +84,7 @@ async function getProjectChunkIds(projectId) {
|
||||
assert.mongoId(projectId, 'bad projectId')
|
||||
|
||||
const cursor = mongodb.chunks.find(
|
||||
{ projectId: ObjectId(projectId), state: 'active' },
|
||||
{ projectId: new ObjectId(projectId), state: 'active' },
|
||||
{ projection: { _id: 1 } }
|
||||
)
|
||||
return await cursor.map(record => record._id).toArray()
|
||||
@@ -100,7 +100,7 @@ async function insertPendingChunk(projectId, chunk) {
|
||||
const chunkId = new ObjectId()
|
||||
await mongodb.chunks.insertOne({
|
||||
_id: chunkId,
|
||||
projectId: ObjectId(projectId),
|
||||
projectId: new ObjectId(projectId),
|
||||
startVersion: chunk.getStartVersion(),
|
||||
endVersion: chunk.getEndVersion(),
|
||||
endTimestamp: chunk.getEndTimestamp(),
|
||||
@@ -122,8 +122,8 @@ async function confirmCreate(projectId, chunk, chunkId, mongoOpts = {}) {
|
||||
try {
|
||||
result = await mongodb.chunks.updateOne(
|
||||
{
|
||||
_id: ObjectId(chunkId),
|
||||
projectId: ObjectId(projectId),
|
||||
_id: new ObjectId(chunkId),
|
||||
projectId: new ObjectId(projectId),
|
||||
state: 'pending',
|
||||
},
|
||||
{ $set: { state: 'active', updatedAt: new Date() } },
|
||||
@@ -176,7 +176,7 @@ async function deleteChunk(projectId, chunkId, mongoOpts = {}) {
|
||||
assert.mongoId(chunkId, 'bad chunkId')
|
||||
|
||||
await mongodb.chunks.updateOne(
|
||||
{ _id: ObjectId(chunkId), projectId: ObjectId(projectId) },
|
||||
{ _id: new ObjectId(chunkId), projectId: new ObjectId(projectId) },
|
||||
{ $set: { state: 'deleted', updatedAt: new Date() } },
|
||||
mongoOpts
|
||||
)
|
||||
@@ -189,7 +189,7 @@ async function deleteProjectChunks(projectId) {
|
||||
assert.mongoId(projectId, 'bad projectId')
|
||||
|
||||
await mongodb.chunks.updateMany(
|
||||
{ projectId: ObjectId(projectId), state: 'active' },
|
||||
{ projectId: new ObjectId(projectId), state: 'active' },
|
||||
{ $set: { state: 'deleted', updatedAt: new Date() } }
|
||||
)
|
||||
}
|
||||
@@ -239,7 +239,7 @@ async function getOldChunksBatch(count, minAgeSecs) {
|
||||
*/
|
||||
async function deleteOldChunks(chunkIds) {
|
||||
await mongodb.chunks.deleteMany({
|
||||
_id: { $in: chunkIds.map(ObjectId) },
|
||||
_id: { $in: chunkIds.map(id => new ObjectId(id)) },
|
||||
state: { $in: ['deleted', 'pending'] },
|
||||
})
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ const mongoBackend = require('../../../../storage/lib/blob_store/mongo')
|
||||
const mongodb = require('../../../../storage/lib/mongodb')
|
||||
|
||||
describe('BlobStore Mongo backend', function () {
|
||||
const projectId = ObjectId().toString()
|
||||
const projectId = new ObjectId().toString()
|
||||
const hashes = {
|
||||
abcd: [
|
||||
'abcd000000000000000000000000000000000000',
|
||||
@@ -38,7 +38,7 @@ describe('BlobStore Mongo backend', function () {
|
||||
const blob = new Blob(hash, 123, 99)
|
||||
await mongoBackend.insertBlob(projectId, blob)
|
||||
}
|
||||
const record = await mongodb.blobs.findOne(ObjectId(projectId), {
|
||||
const record = await mongodb.blobs.findOne(new ObjectId(projectId), {
|
||||
promoteBuffers: true,
|
||||
})
|
||||
expect(record.blobs).to.deep.equal({
|
||||
@@ -56,7 +56,7 @@ describe('BlobStore Mongo backend', function () {
|
||||
const blob = new Blob(hash, 123, 99)
|
||||
await mongoBackend.insertBlob(projectId, blob)
|
||||
}
|
||||
const record = await mongodb.blobs.findOne(ObjectId(projectId), {
|
||||
const record = await mongodb.blobs.findOne(new ObjectId(projectId), {
|
||||
promoteBuffers: true,
|
||||
})
|
||||
expect(record.blobs).to.deep.equal({
|
||||
|
||||
@@ -9,7 +9,7 @@ describe('chunk store Mongo backend', function () {
|
||||
|
||||
describe('garbage collection', function () {
|
||||
it('deletes pending and deleted chunks', async function () {
|
||||
const projectId = ObjectId().toString()
|
||||
const projectId = new ObjectId().toString()
|
||||
|
||||
// Create a pending chunk
|
||||
const pendingChunk = makeChunk([], 0)
|
||||
|
||||
@@ -14,7 +14,7 @@ const cleanup = require('./support/cleanup')
|
||||
|
||||
const CHUNK_STORE_BUCKET = config.get('chunkStore.bucket')
|
||||
const postgresProjectId = 1
|
||||
const mongoProjectId = ObjectId('abcdefabcdefabcdefabcdef')
|
||||
const mongoProjectId = new ObjectId('abcdefabcdefabcdefabcdef')
|
||||
|
||||
describe('tasks', function () {
|
||||
beforeEach(cleanup.everything)
|
||||
@@ -42,7 +42,7 @@ describe('tasks', function () {
|
||||
deleted_at: deletedAt,
|
||||
})
|
||||
mongoChunks.push({
|
||||
_id: ObjectId(i.toString().padStart(24, '0')),
|
||||
_id: new ObjectId(i.toString().padStart(24, '0')),
|
||||
projectId: mongoProjectId,
|
||||
startVersion,
|
||||
endVersion,
|
||||
@@ -63,7 +63,7 @@ describe('tasks', function () {
|
||||
deleted_at: deletedAt,
|
||||
})
|
||||
mongoChunks.push({
|
||||
_id: ObjectId(i.toString().padStart(24, '0')),
|
||||
_id: new ObjectId(i.toString().padStart(24, '0')),
|
||||
projectId: mongoProjectId,
|
||||
startVersion,
|
||||
endVersion,
|
||||
|
||||
Reference in New Issue
Block a user