Skip to content

Commit

Permalink
Surface retried error in Dagit (#7692)
Browse files Browse the repository at this point in the history
  • Loading branch information
johannkm committed May 4, 2022
1 parent e90d8d9 commit c81a825
Show file tree
Hide file tree
Showing 7 changed files with 190 additions and 13 deletions.
12 changes: 11 additions & 1 deletion js_modules/dagit/packages/core/src/runs/LogsRow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@ export class Structured extends React.Component<StructuredProps, StructuredState
/>
),
});
} else if (node.__typename === 'ExecutionStepUpForRetryEvent') {
showCustomAlert({
title: 'Step Retry',
body: <PythonErrorInfo error={node.error ? node.error : node} />,
});
} else if (node.__typename === 'HookErroredEvent') {
showCustomAlert({
title: 'Error',
Expand All @@ -66,7 +71,7 @@ export class Structured extends React.Component<StructuredProps, StructuredState
});
} else {
showCustomAlert({
title: (node.stepKey && node.stepKey) || 'Info',
title: node.stepKey || 'Info',
body: (
<StructuredContent>
<LogsRowStructuredContent node={node} metadata={metadata} />
Expand Down Expand Up @@ -135,6 +140,11 @@ export const LOGS_ROW_STRUCTURED_FRAGMENT = gql`
}
}
}
... on ExecutionStepUpForRetryEvent {
error {
...PythonErrorFragment
}
}
... on ExecutionStepInputEvent {
inputName
typeCheck {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
MetadataEntryLink,
} from '../metadata/MetadataEntry';
import {MetadataEntryFragment} from '../metadata/types/MetadataEntryFragment';
import {ErrorSource} from '../types/globalTypes';
import {DagsterEventType, ErrorSource} from '../types/globalTypes';

import {EventTypeColumn} from './LogsRowComponents';
import {IRunMetadataDict} from './RunMetadataProvider';
Expand Down Expand Up @@ -43,7 +43,7 @@ export const LogsRowStructuredContent: React.FC<IStructuredContentProps> = ({nod
);

case 'ExecutionStepUpForRetryEvent':
return <DefaultContent eventType={eventType} message={node.message} eventIntent="warning" />;
return <StepUpForRetryContent error={node.error} message={node.message} />;

case 'ExecutionStepStartEvent':
if (!node.stepKey || metadata.logCaptureSteps) {
Expand Down Expand Up @@ -358,6 +358,56 @@ const FailureContent: React.FC<{
);
};

const StepUpForRetryContent: React.FC<{
message?: string;
error?: PythonErrorFragment | null;
}> = ({message, error}) => {
let contextMessage = null;
let errorCause = null;
let errorMessage = null;
let errorStack = null;

if (message) {
contextMessage = (
<>
<span>{message}</span>
<br />
</>
);
}

if (error) {
errorMessage = <span style={{color: Colors.Red500}}>{`${error.message}`}</span>;
errorStack = <span style={{color: Colors.Red500}}>{`\nStack Trace:\n${error.stack}`}</span>;
if (error.cause) {
errorCause = (
<>
<br />
{`The retry request was caused by the following exception:\n`}
<span style={{color: Colors.Red500}}>{`${error.cause.message}`}</span>
<span style={{color: Colors.Red500}}>{`\nStack Trace:\n${error.cause.stack}`}</span>
</>
);
}
}

return (
<>
<EventTypeColumn>
<Tag minimal intent="warning">
{eventTypeToDisplayType(DagsterEventType.STEP_UP_FOR_RETRY)}
</Tag>
</EventTypeColumn>
<Box padding={{horizontal: 12}} style={{flex: 1}}>
{contextMessage}
{errorMessage}
{errorStack}
{errorCause}
</Box>
</>
);
};

const AssetMetadataContent: React.FC<{
message: string;
assetKey: AssetKey | null;
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit c81a825

Please sign in to comment.