fix: 30min wall-clock timeout on backup subprocess + global padding-top on .fc-content so views don't start under the sticky TopNav
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -37,12 +37,21 @@ def _backups_dir(images_root: Path | None = None) -> Path:
|
|||||||
return p
|
return p
|
||||||
|
|
||||||
|
|
||||||
|
_DEFAULT_SUBPROCESS_TIMEOUT_S = 30 * 60 # 30 minutes
|
||||||
|
|
||||||
|
|
||||||
def _run_subprocess(cmd: list[str], **kwargs: Any):
|
def _run_subprocess(cmd: list[str], **kwargs: Any):
|
||||||
# Overridable for tests via monkeypatch.
|
# Overridable for tests via monkeypatch. Hard wall-clock timeout
|
||||||
|
# guards against pg_dump / tar / zstd hangs on NFS — without it the
|
||||||
|
# task pretends to be 'running' forever (operator hit this 2026-05-
|
||||||
|
# 23 with two backups stuck in MigrationRun). On timeout
|
||||||
|
# subprocess.run raises TimeoutExpired which the caller surfaces as
|
||||||
|
# a task error.
|
||||||
return subprocess.run(
|
return subprocess.run(
|
||||||
cmd,
|
cmd,
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
check=True,
|
check=True,
|
||||||
|
timeout=_DEFAULT_SUBPROCESS_TIMEOUT_S,
|
||||||
**{k: v for k, v in kwargs.items() if not k.startswith("_")},
|
**{k: v for k, v in kwargs.items() if not k.startswith("_")},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -18,5 +18,11 @@ const route = useRoute()
|
|||||||
<style scoped>
|
<style scoped>
|
||||||
.fc-content {
|
.fc-content {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
|
/* Push initial viewport content below the sticky TopNav. Without
|
||||||
|
this, some views' first rows / form fields / table headers can
|
||||||
|
end up obscured by the navbar (depending on parent overflow
|
||||||
|
context interacting with position: sticky). Scrolled-down content
|
||||||
|
still slides under the nav — the gradient-fade design is intact. */
|
||||||
|
padding-top: 64px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user