Skip to content

Commit 82a00f2

Browse files
authored
More error logs, filter 0 amount resources, fix resources checks (#1171)
* Logs, filter 0 amount resources * lint fix
1 parent 0720718 commit 82a00f2

File tree

3 files changed

+28
-7
lines changed

3 files changed

+28
-7
lines changed

src/components/c2d/compute_engine_base.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,10 @@ export abstract class C2DEngine {
292292
env: ComputeEnvironment,
293293
isFree: boolean
294294
) {
295-
for (const request of resourcesRequest) {
295+
// Filter out resources with amount 0 as they're not actually being requested
296+
const activeResources = resourcesRequest.filter((r) => r.amount > 0)
297+
298+
for (const request of activeResources) {
296299
let envResource = this.getResource(env.resources, request.id)
297300
if (!envResource) throw new Error(`No such resource ${request.id}`)
298301
if (envResource.total - envResource.inUse < request.amount)
@@ -348,9 +351,11 @@ export abstract class C2DEngine {
348351
): dockerDeviceRequest[] | null {
349352
if (!resources) return null
350353

354+
// Filter out resources with amount 0 as they're not actually being requested
355+
const activeResources = requests.filter((r) => r.amount > 0)
351356
const grouped: Record<string, dockerDeviceRequest> = {}
352357

353-
for (const resource of requests) {
358+
for (const resource of activeResources) {
354359
const res = this.getResource(resources, resource.id)
355360
const init = res?.init?.deviceRequests
356361
if (!init) continue
@@ -388,7 +393,10 @@ export abstract class C2DEngine {
388393
IpcMode: null as string,
389394
ShmSize: 0 as number
390395
}
391-
for (const resource of requests) {
396+
// Filter out resources with amount 0 as they're not actually being requested
397+
const activeResources = requests.filter((r) => r.amount > 0)
398+
399+
for (const resource of activeResources) {
392400
const res = this.getResource(resources, resource.id)
393401
if (res.init && res.init.advanced) {
394402
for (const [key, value] of Object.entries(res.init.advanced)) {

src/components/c2d/compute_engine_docker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -946,7 +946,7 @@ export class C2DEngineDocker extends C2DEngine {
946946
job.environment,
947947
null
948948
)
949-
await this.checkIfResourcesAreAvailable(job.resources, env, true)
949+
await this.checkIfResourcesAreAvailable(job.resources, env, job.isFree)
950950
} catch (err) {
951951
// resources are still not available
952952
return

src/components/core/compute/startCompute.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ export class PaidComputeStartHandler extends CommandHandler {
9292
try {
9393
engine = await node.getC2DEngines().getC2DByHash(hash)
9494
} catch (e) {
95+
const errMsg = e?.message || String(e)
96+
CORE_LOGGER.error(`Invalid C2D Environment: ${errMsg}`)
9597
return {
9698
stream: null,
9799
status: {
@@ -121,22 +123,26 @@ export class PaidComputeStartHandler extends CommandHandler {
121123
false
122124
)
123125
} catch (e) {
126+
const errMsg = e?.message || String(e)
127+
CORE_LOGGER.error(`Error checking and filling missing resources: ${errMsg}`)
124128
return {
125129
stream: null,
126130
status: {
127131
httpStatus: 400,
128-
error: e?.message || String(e)
132+
error: errMsg
129133
}
130134
}
131135
}
132136
try {
133-
await engine.checkIfResourcesAreAvailable(task.resources, env, true)
137+
await engine.checkIfResourcesAreAvailable(task.resources, env, false)
134138
} catch (e) {
135139
if (task.queueMaxWaitTime > 0) {
136140
CORE_LOGGER.verbose(
137141
`Compute resources not available, queuing job for max ${task.queueMaxWaitTime} seconds`
138142
)
139143
} else {
144+
const errMsg = e?.message || String(e)
145+
CORE_LOGGER.error(`Error checking if resources are available: ${errMsg}`)
140146
return {
141147
stream: null,
142148
status: {
@@ -504,6 +510,8 @@ export class PaidComputeStartHandler extends CommandHandler {
504510
)
505511
)
506512
} catch (e) {
513+
const errMsg = e?.message || String(e)
514+
CORE_LOGGER.error(`Error creating lock: ${errMsg}`)
507515
if (e.message.includes('insufficient funds for intrinsic transaction cost')) {
508516
return {
509517
stream: null,
@@ -555,6 +563,8 @@ export class PaidComputeStartHandler extends CommandHandler {
555563
}
556564
}
557565
} catch (e) {
566+
const errMsg = e?.message || String(e)
567+
CORE_LOGGER.error(`Error starting compute job: ${errMsg}`)
558568
try {
559569
await engine.escrow.cancelExpiredLocks(
560570
task.payment.chainId,
@@ -563,6 +573,8 @@ export class PaidComputeStartHandler extends CommandHandler {
563573
task.consumerAddress
564574
)
565575
} catch (cancelError) {
576+
const cancelErrMsg = cancelError?.message || String(cancelError)
577+
CORE_LOGGER.error(`Error canceling expired locks: ${cancelErrMsg}`)
566578
// is fine if it fails
567579
}
568580
return {
@@ -574,7 +586,8 @@ export class PaidComputeStartHandler extends CommandHandler {
574586
}
575587
}
576588
} catch (error) {
577-
CORE_LOGGER.error(error.message)
589+
const errMsg = error?.message || String(error)
590+
CORE_LOGGER.error(`Error starting compute job: ${errMsg}`)
578591
return {
579592
stream: null,
580593
status: {

0 commit comments

Comments
 (0)