Skip to content

Fix several cases of silent crashing on UI#922

Merged
jaretburkett merged 2 commits into
ostris:mainfrom
fatalis:harden-crash-logging
Jul 19, 2026
Merged

Fix several cases of silent crashing on UI#922
jaretburkett merged 2 commits into
ostris:mainfrom
fatalis:harden-crash-logging

Conversation

@fatalis

@fatalis fatalis commented Jun 29, 2026

Copy link
Copy Markdown
Contributor
  • The UI now opens the log FD and passes it to the child process (stays alive after UI exit)
  • Use PYTHONUNBUFFERED to possibly log errors before python exits
  • Errors with imports / python are now logged
  • Fix DB not stopping job on some types of crashes

@jaretburkett
jaretburkett merged commit 7ba7e35 into ostris:main Jul 19, 2026
@jaretburkett

Copy link
Copy Markdown
Contributor

Thank you

socrasteeze pushed a commit to socrasteeze/ai-toolkit that referenced this pull request Jul 19, 2026
Picks up 3 upstream commits:
- 7ba7e35 Fix several cases of silent crashing on UI (ostris#922)
- 479c72a Add replacing triggers on prompts when caching text encoder
- cd677c7 Fix issue where more than 12 samples would break sample grid

One conflict, in ui/cron/actions/startJob.ts (a known fork merge-surface
file). Upstream's ostris#922 added subprocess error/exit listeners, appendJobLog,
and log-fd capture but kept the async-executor 'new Promise' pattern; the
fork had replaced that pattern with a plain async function + outer try/catch
to stop setup-code exceptions from becoming WORKER-killing unhandled
rejections. Resolved per FORK_NOTES.md guidance: kept upstream's richer
subprocess handling inside the fork's safe function structure, keeping both
the markJobError (fork) and appendJobLog (upstream) helpers. SDTrainer.py
auto-merged cleanly (upstream's trigger-injection addition and the fork's
loss_sync_every changes don't overlap).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Hp4mAtvGxgTSh2ZxYD7qap
socrasteeze pushed a commit to socrasteeze/ai-toolkit that referenced this pull request Jul 19, 2026
Co-authored-by: Jaret Burkett <jaretburkett@gmail.com>
socrasteeze added a commit to socrasteeze/ai-toolkit that referenced this pull request Jul 19, 2026
Picks up 3 upstream commits:
- 7ba7e35 Fix several cases of silent crashing on UI (ostris#922)
- 479c72a Add replacing triggers on prompts when caching text encoder
- cd677c7 Fix issue where more than 12 samples would break sample grid

One conflict, in ui/cron/actions/startJob.ts (a known fork merge-surface
file). Upstream's ostris#922 added subprocess error/exit listeners, appendJobLog,
and log-fd capture but kept the async-executor 'new Promise' pattern; the
fork had replaced that pattern with a plain async function + outer try/catch
to stop setup-code exceptions from becoming WORKER-killing unhandled
rejections. Resolved per FORK_NOTES.md guidance: kept upstream's richer
subprocess handling inside the fork's safe function structure, keeping both
the markJobError (fork) and appendJobLog (upstream) helpers. SDTrainer.py
auto-merged cleanly (upstream's trigger-injection addition and the fork's
loss_sync_every changes don't overlap).
socrasteeze added a commit to socrasteeze/ai-toolkit that referenced this pull request Jul 19, 2026
Picks up 3 upstream commits:
- 7ba7e35 Fix several cases of silent crashing on UI (ostris#922)
- 479c72a Add replacing triggers on prompts when caching text encoder
- cd677c7 Fix issue where more than 12 samples would break sample grid

One conflict, in ui/cron/actions/startJob.ts (a known fork merge-surface
file). Upstream's ostris#922 added subprocess error/exit listeners, appendJobLog,
and log-fd capture but kept the async-executor 'new Promise' pattern; the
fork had replaced that pattern with a plain async function + outer try/catch
to stop setup-code exceptions from becoming WORKER-killing unhandled
rejections. Resolved per FORK_NOTES.md guidance: kept upstream's richer
subprocess handling inside the fork's safe function structure, keeping both
the markJobError (fork) and appendJobLog (upstream) helpers. SDTrainer.py
auto-merged cleanly (upstream's trigger-injection addition and the fork's
loss_sync_every changes don't overlap).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants