@@ -56,8 +56,22 @@ export class DefaultRunChainStateManager implements RunChainStateManager {
5656 // Since the parent run is already running, it will definitely have a locked queue associated with it
5757 const { concurrency } = parentRunChainState ;
5858
59+ const parentLockedQueueReleaseConcurrencyOnWaitpoint =
60+ parentRun . lockedQueueReleaseConcurrencyOnWaitpoint ;
5961 const parentLockedQueueId = parentRun . lockedQueueId ;
6062
63+ if ( typeof parentLockedQueueReleaseConcurrencyOnWaitpoint !== "boolean" ) {
64+ logger . error (
65+ "Parent run has no locked queue release concurrency on waitpoint, cannot determine run chain state" ,
66+ {
67+ runId : parentRun . id ,
68+ runState : parentRun . runChainState ,
69+ }
70+ ) ;
71+
72+ return { } ;
73+ }
74+
6175 if ( ! parentLockedQueueId ) {
6276 logger . error ( "Parent run has no locked queue, cannot determine run chain state" , {
6377 runId : parentRun . id ,
@@ -101,7 +115,7 @@ export class DefaultRunChainStateManager implements RunChainStateManager {
101115 // if it does, we will add to the holding count for the queue
102116 const willReleaseConcurrency = await this . #determineIfParentRunWillReleaseConcurrency(
103117 request ,
104- parentLockedQueueId
118+ parentLockedQueueReleaseConcurrencyOnWaitpoint
105119 ) ;
106120
107121 if ( ! willReleaseConcurrency ) {
@@ -194,38 +208,13 @@ export class DefaultRunChainStateManager implements RunChainStateManager {
194208
195209 async #determineIfParentRunWillReleaseConcurrency(
196210 request : TriggerTaskRequest ,
197- parentLockedQueueId : string
211+ parentLockedQueueReleaseConcurrencyOnWaitpoint : boolean
198212 ) {
199213 if ( typeof request . body . options ?. releaseConcurrency === "boolean" ) {
200214 return request . body . options . releaseConcurrency ;
201215 }
202216
203- const parentQueue = await this . prisma . taskQueue . findFirst ( {
204- where : {
205- id : parentLockedQueueId ,
206- } ,
207- select : {
208- releaseConcurrencyOnWaitpoint : true ,
209- concurrencyLimit : true ,
210- } ,
211- } ) ;
212-
213- logger . debug ( "Determining if parent run will release concurrency" , {
214- parentQueue,
215- } ) ;
216-
217- if (
218- typeof parentQueue ?. concurrencyLimit === "undefined" ||
219- parentQueue . concurrencyLimit === null
220- ) {
221- return true ;
222- }
223-
224- if ( typeof parentQueue ?. releaseConcurrencyOnWaitpoint === "boolean" ) {
225- return parentQueue . releaseConcurrencyOnWaitpoint ;
226- }
227-
228- return false ;
217+ return parentLockedQueueReleaseConcurrencyOnWaitpoint ;
229218 }
230219
231220 async #getParentQueueState( runChainState : RunChainState , parentLockedQueueId : string ) {
0 commit comments