mirror of
https://github.com/sasjs/server.git
synced 2026-01-11 08:20:04 +00:00
chore: bug fixes for session crash details + return code
This commit is contained in:
@@ -74,11 +74,13 @@ ${program}`
|
||||
await moveFile(codePath + '.bkp', codePath)
|
||||
|
||||
// we now need to poll the session array
|
||||
while (!session.completed || !session.crashed) {
|
||||
while (!session.completed) {
|
||||
await delay(50)
|
||||
}
|
||||
|
||||
const log = (await fileExists(logPath)) ? await readFile(logPath) : ''
|
||||
const log =
|
||||
((await fileExists(logPath)) ? await readFile(logPath) : '') +
|
||||
session.crashed
|
||||
const webout = (await fileExists(weboutPath))
|
||||
? await readFile(weboutPath)
|
||||
: ''
|
||||
|
||||
@@ -83,7 +83,7 @@ export class SessionController {
|
||||
})
|
||||
.catch((err) => {
|
||||
session.completed = true
|
||||
session.crashed = true
|
||||
session.crashed = err.toString()
|
||||
console.log('session crashed', session.id, err)
|
||||
})
|
||||
|
||||
@@ -100,7 +100,9 @@ export class SessionController {
|
||||
public async waitForSession(session: Session) {
|
||||
const codeFilePath = path.join(session.path, 'code.sas')
|
||||
|
||||
while (await fileExists(codeFilePath)) {}
|
||||
// TODO: don't wait forever
|
||||
while ((await fileExists(codeFilePath)) && !session.crashed) {}
|
||||
console.log('session crashed?', !!session.crashed, session.crashed)
|
||||
|
||||
session.ready = true
|
||||
return Promise.resolve(session)
|
||||
|
||||
@@ -64,10 +64,10 @@ export class STPController {
|
||||
@Post('/execute')
|
||||
public async executeReturnJson(
|
||||
@Request() request: express.Request,
|
||||
@Body() body: ExecuteReturnJsonPayload,
|
||||
@Body() body?: ExecuteReturnJsonPayload,
|
||||
@Query() _program?: string
|
||||
): Promise<ExecuteReturnJsonResponse> {
|
||||
const program = _program ?? body._program
|
||||
const program = _program ?? body?._program
|
||||
return executeReturnJson(request, program!)
|
||||
}
|
||||
}
|
||||
@@ -126,6 +126,7 @@ const executeReturnJson = async (
|
||||
}
|
||||
} catch (err: any) {
|
||||
throw {
|
||||
code: 400,
|
||||
status: 'failure',
|
||||
message: 'Job execution failed.',
|
||||
error: typeof err === 'object' ? err.toString() : err
|
||||
|
||||
Reference in New Issue
Block a user