Fix reset sequelize instance

This commit is contained in:
Chocobozzz 2023-05-11 15:02:53 +02:00
parent 81f14b9112
commit 823c34c07f
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
8 changed files with 13 additions and 23 deletions

View File

@ -310,7 +310,7 @@ async function updateVideoChannel (req: express.Request, res: express.Response)
// If the transaction is retried, sequelize will think the object has not changed
// So we need to restore the previous fields
resetSequelizeInstance(videoChannelInstance)
await resetSequelizeInstance(videoChannelInstance)
throw err
}

View File

@ -276,7 +276,7 @@ async function updateVideoPlaylist (req: express.Request, res: express.Response)
// If the transaction is retried, sequelize will think the object has not changed
// So we need to restore the previous fields
resetSequelizeInstance(videoPlaylistInstance)
await resetSequelizeInstance(videoPlaylistInstance)
throw err
}

View File

@ -152,7 +152,7 @@ async function updateVideo (req: express.Request, res: express.Response) {
} catch (err) {
// If the transaction is retried, sequelize will think the object has not changed
// So we need to restore the previous fields
resetSequelizeInstance(videoFromReq)
await resetSequelizeInstance(videoFromReq)
throw err
} finally {

View File

@ -70,16 +70,8 @@ function transactionRetryer <T> (func: (err: any, data: T) => any) {
// ---------------------------------------------------------------------------
function updateInstanceWithAnother <M, T extends U, U extends Model<M>> (instanceToUpdate: T, baseInstance: U) {
const obj = baseInstance.toJSON()
for (const key of Object.keys(obj)) {
instanceToUpdate[key] = obj[key]
}
}
function resetSequelizeInstance <T> (instance: Model<T>) {
instance.set(instance.previous())
return instance.reload()
}
function filterNonExistingModels <T extends { hasSameUniqueKeysThan (other: T): boolean }> (
@ -113,7 +105,6 @@ export {
resetSequelizeInstance,
retryTransactionWrapper,
transactionRetryer,
updateInstanceWithAnother,
afterCommitIfTransaction,
filterNonExistingModels,
deleteAllModels,

View File

@ -52,11 +52,11 @@ export class APActorUpdater {
logger.info('Remote account %s updated', this.actorObject.url)
} catch (err) {
if (this.actor !== undefined) {
resetSequelizeInstance(this.actor)
await resetSequelizeInstance(this.actor)
}
if (this.accountOrChannel !== undefined) {
resetSequelizeInstance(this.accountOrChannel)
await resetSequelizeInstance(this.accountOrChannel)
}
// This is just a debug because we will retry the insert

View File

@ -88,7 +88,7 @@ export class APVideoUpdater extends APVideoAbstractBuilder {
return videoUpdated
} catch (err) {
this.catchUpdateError(err)
await this.catchUpdateError(err)
}
}
@ -154,9 +154,9 @@ export class APVideoUpdater extends APVideoAbstractBuilder {
videoUpdated.VideoLive = null
}
private catchUpdateError (err: Error) {
private async catchUpdateError (err: Error) {
if (this.video !== undefined) {
resetSequelizeInstance(this.video)
await resetSequelizeInstance(this.video)
}
// This is just a debug because we will retry the insert

View File

@ -2,11 +2,10 @@
import { expect } from 'chai'
import { wait } from '@shared/core-utils'
import { HttpStatusCode, LiveVideoCreate, VideoPrivacy } from '@shared/models'
import { LiveVideoCreate, VideoPrivacy } from '@shared/models'
import {
cleanupTests,
createSingleServer,
makeRawRequest,
PeerTubeServer,
setAccessTokensToServers,
setDefaultVideoChannel,
@ -81,8 +80,8 @@ describe('Fast restream in live', function () {
try {
await server.live.getSegmentFile({ videoUUID: liveId, segment: 0, playlistNumber: 0 })
await makeRawRequest({ url: video.streamingPlaylists[0].playlistUrl, expectedStatus: HttpStatusCode.OK_200 })
await makeRawRequest({ url: video.streamingPlaylists[0].segmentsSha256Url, expectedStatus: HttpStatusCode.OK_200 })
await server.streamingPlaylists.get({ url: video.streamingPlaylists[0].playlistUrl })
await server.streamingPlaylists.getSegmentSha256({ url: video.streamingPlaylists[0].segmentsSha256Url })
} catch (err) {
// FIXME: try to debug error in CI "Unexpected end of JSON input"
console.error(err)

View File

@ -213,7 +213,7 @@ describe('Test a single server', function () {
})
it('Should upload 6 videos', async function () {
this.timeout(25000)
this.timeout(50000)
const videos = new Set([
'video_short.mp4', 'video_short.ogv', 'video_short.webm',