From d52ec67f8fae98afce510c1cb739eee9ad54ae35 Mon Sep 17 00:00:00 2001 From: Michael Chus Date: Sun, 19 Apr 2026 13:08:31 +0300 Subject: [PATCH] Stability hardening, build script fixes, GRUB bee logo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Stability hardening (webui/app): - readFileLimited(): защита от OOM при чтении audit JSON (100 MB), component-status DB (10 MB) и лога задачи (50 MB) - jobs.go: буферизованный лог задачи — один открытый fd на задачу вместо open/write/close на каждую строку (устраняет тысячи syscall/сек при GPU стресс-тестах) - stability.go: экспоненциальный backoff в goRecoverLoop (2s→4s→…→60s), сброс при успешном прогоне >30s, счётчик перезапусков в slog - kill_workers.go: таймаут 5s на скан /proc, warn при срабатывании - bee-web.service: MemoryMax=3G — OOM killer защищён Build script: - build.sh: удалён блок генерации grub-pc/grub.cfg + live.cfg.in — мёртвый код с v8.25; grub-pc игнорируется live-build, а генерируемый live.cfg.in перезаписывал правильный статический файл устаревшей версией без tuning-параметров ядра и пунктов gsp-off/kms+gsp-off - build.sh: dump_memtest_debug теперь логирует grub-efi/grub.cfg вместо grub-pc/grub.cfg (было всегда "missing") GRUB: - live-theme/bee-logo.png: логотип пчелы 400×400px на чёрном фоне - live-theme/theme.txt: + image компонент по центру в верхней трети экрана; меню сдвинуто с 62% до 65% Co-Authored-By: Claude Sonnet 4.6 --- audit/internal/app/app.go | 2 +- audit/internal/app/atomic_write.go | 19 ++++ audit/internal/app/component_status_db.go | 2 +- audit/internal/platform/kill_workers.go | 15 ++++ audit/internal/webui/jobs.go | 55 +++++++++++- audit/internal/webui/stability.go | 35 +++++++- audit/internal/webui/tasks.go | 1 + bible-local/docs/gpu-model-propagation.md | 12 ++- iso/builder/build.sh | 83 +----------------- .../grub-efi/live-theme/bee-logo.png | Bin 0 -> 71634 bytes .../bootloaders/grub-efi/live-theme/theme.txt | 13 ++- .../etc/systemd/system/bee-web.service | 1 + 12 files changed, 143 insertions(+), 95 deletions(-) create mode 100644 iso/builder/config/bootloaders/grub-efi/live-theme/bee-logo.png diff --git a/audit/internal/app/app.go b/audit/internal/app/app.go index 817907c..81c3450 100644 --- a/audit/internal/app/app.go +++ b/audit/internal/app/app.go @@ -304,7 +304,7 @@ func (a *App) ExportLatestAudit(target platform.RemovableTarget) (string, error) } filename := fmt.Sprintf("audit-%s-%s.json", sanitizeFilename(hostnameOr("unknown")), time.Now().UTC().Format("20060102-150405")) tmpPath := filepath.Join(os.TempDir(), filename) - data, err := os.ReadFile(DefaultAuditJSONPath) + data, err := readFileLimited(DefaultAuditJSONPath, 100<<20) if err != nil { return "", err } diff --git a/audit/internal/app/atomic_write.go b/audit/internal/app/atomic_write.go index a8b6edc..d444840 100644 --- a/audit/internal/app/atomic_write.go +++ b/audit/internal/app/atomic_write.go @@ -2,10 +2,29 @@ package app import ( "fmt" + "io" "os" "path/filepath" ) +// readFileLimited reads path into memory, refusing files larger than maxBytes. +// Prevents OOM on corrupted or unexpectedly large data files. +func readFileLimited(path string, maxBytes int64) ([]byte, error) { + f, err := os.Open(path) + if err != nil { + return nil, err + } + defer f.Close() + data, err := io.ReadAll(io.LimitReader(f, maxBytes+1)) + if err != nil { + return nil, err + } + if int64(len(data)) > maxBytes { + return nil, fmt.Errorf("file %s too large (exceeds %d bytes)", path, maxBytes) + } + return data, nil +} + func atomicWriteFile(path string, data []byte, perm os.FileMode) error { if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil { return fmt.Errorf("mkdir %s: %w", filepath.Dir(path), err) diff --git a/audit/internal/app/component_status_db.go b/audit/internal/app/component_status_db.go index 6873ed7..4aae112 100644 --- a/audit/internal/app/component_status_db.go +++ b/audit/internal/app/component_status_db.go @@ -46,7 +46,7 @@ func OpenComponentStatusDB(path string) (*ComponentStatusDB, error) { if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil { return nil, err } - data, err := os.ReadFile(path) + data, err := readFileLimited(path, 10<<20) if err != nil && !os.IsNotExist(err) { return nil, err } diff --git a/audit/internal/platform/kill_workers.go b/audit/internal/platform/kill_workers.go index 09153f1..6687756 100644 --- a/audit/internal/platform/kill_workers.go +++ b/audit/internal/platform/kill_workers.go @@ -1,11 +1,14 @@ package platform import ( + "context" "fmt" + "log/slog" "os" "strconv" "strings" "syscall" + "time" ) // workerPatterns are substrings matched against /proc//cmdline to identify @@ -30,7 +33,12 @@ type KilledProcess struct { // KillTestWorkers scans /proc for running test worker processes and sends // SIGKILL to each one found. It returns a list of killed processes. // Errors for individual processes (e.g. already exited) are silently ignored. +// The scan runs under a 5-second deadline to avoid blocking if the process +// table is very large (e.g. after a stress test with thousands of children). func KillTestWorkers() []KilledProcess { + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + entries, err := os.ReadDir("/proc") if err != nil { return nil @@ -38,6 +46,13 @@ func KillTestWorkers() []KilledProcess { var killed []KilledProcess for _, e := range entries { + select { + case <-ctx.Done(): + slog.Warn("KillTestWorkers scan timed out", "killed_so_far", len(killed)) + return killed + default: + } + if !e.IsDir() { continue } diff --git a/audit/internal/webui/jobs.go b/audit/internal/webui/jobs.go index 5924a5b..5719091 100644 --- a/audit/internal/webui/jobs.go +++ b/audit/internal/webui/jobs.go @@ -1,6 +1,9 @@ package webui import ( + "bufio" + "fmt" + "io" "os" "strings" "sync" @@ -17,6 +20,25 @@ type jobState struct { cancel func() // optional cancel function; nil if job is not cancellable logPath string serialPrefix string + logFile *os.File // kept open for the task lifetime to avoid per-line open/close + logBuf *bufio.Writer +} + +// readTaskLogFile reads a task log, refusing files over 50 MB. +func readTaskLogFile(path string) ([]byte, error) { + f, err := os.Open(path) + if err != nil { + return nil, err + } + defer f.Close() + data, err := io.ReadAll(io.LimitReader(f, 50<<20+1)) + if err != nil { + return nil, err + } + if int64(len(data)) > 50<<20 { + return nil, fmt.Errorf("task log %s too large (exceeds 50 MB)", path) + } + return data, nil } // abort cancels the job if it has a cancel function and is not yet done. @@ -35,7 +57,7 @@ func (j *jobState) append(line string) { defer j.mu.Unlock() j.lines = append(j.lines, line) if j.logPath != "" { - appendJobLog(j.logPath, line) + j.writeLogLineLocked(line) } if j.serialPrefix != "" { taskSerialWriteLine(j.serialPrefix + line) @@ -48,6 +70,35 @@ func (j *jobState) append(line string) { } } +// writeLogLineLocked writes a line to the persistent log file, opening it lazily. +// Must be called with j.mu held. Uses a buffered writer kept open for the task +// lifetime — avoids thousands of open/close syscalls during high-frequency logs. +func (j *jobState) writeLogLineLocked(line string) { + if j.logFile == nil { + f, err := os.OpenFile(j.logPath, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644) + if err != nil { + return + } + j.logFile = f + j.logBuf = bufio.NewWriterSize(f, 64*1024) + } + _, _ = j.logBuf.WriteString(line + "\n") +} + +// closeLog flushes and closes the log file. Called after all task output is done. +func (j *jobState) closeLog() { + j.mu.Lock() + defer j.mu.Unlock() + if j.logBuf != nil { + _ = j.logBuf.Flush() + } + if j.logFile != nil { + _ = j.logFile.Close() + j.logFile = nil + j.logBuf = nil + } +} + func (j *jobState) finish(errMsg string) { j.mu.Lock() defer j.mu.Unlock() @@ -119,7 +170,7 @@ func newTaskJobState(logPath string, serialPrefix ...string) *jobState { if logPath == "" { return j } - data, err := os.ReadFile(logPath) + data, err := readTaskLogFile(logPath) if err != nil || len(data) == 0 { return j } diff --git a/audit/internal/webui/stability.go b/audit/internal/webui/stability.go index 8ece151..f5e83c4 100644 --- a/audit/internal/webui/stability.go +++ b/audit/internal/webui/stability.go @@ -7,14 +7,43 @@ import ( "time" ) +const ( + recoverLoopMaxDelay = 60 * time.Second + recoverLoopResetAfter = 30 * time.Second +) + +// goRecoverLoop starts fn in a goroutine, restarting after panics. +// restartDelay is the initial delay; successive panics double it up to +// recoverLoopMaxDelay. The delay resets to restartDelay once fn runs +// successfully for recoverLoopResetAfter without panicking. func goRecoverLoop(name string, restartDelay time.Duration, fn func()) { go func() { + delay := restartDelay + consecutive := 0 for { - if !runRecoverable(name, fn) { + start := time.Now() + panicked := runRecoverable(name, fn) + if !panicked { return } - if restartDelay > 0 { - time.Sleep(restartDelay) + consecutive++ + if time.Since(start) >= recoverLoopResetAfter { + delay = restartDelay + consecutive = 1 + } + slog.Warn("goroutine restarting after panic", + "component", name, + "consecutive_panics", consecutive, + "next_delay", delay, + ) + if delay > 0 { + time.Sleep(delay) + } + if delay < recoverLoopMaxDelay { + delay *= 2 + if delay > recoverLoopMaxDelay { + delay = recoverLoopMaxDelay + } } } }() diff --git a/audit/internal/webui/tasks.go b/audit/internal/webui/tasks.go index 957f95a..d8bb9c3 100644 --- a/audit/internal/webui/tasks.go +++ b/audit/internal/webui/tasks.go @@ -585,6 +585,7 @@ func (q *taskQueue) finalizeTaskRun(t *Task, j *jobState) { if err := writeTaskReportArtifacts(t); err != nil { appendJobLog(t.LogPath, "WARN: task report generation failed: "+err.Error()) } + j.closeLog() if t.ErrMsg != "" { taskSerialEvent(t, "finished with status="+t.Status+" error="+t.ErrMsg) return diff --git a/bible-local/docs/gpu-model-propagation.md b/bible-local/docs/gpu-model-propagation.md index 8c939ad..f53f451 100644 --- a/bible-local/docs/gpu-model-propagation.md +++ b/bible-local/docs/gpu-model-propagation.md @@ -110,8 +110,12 @@ nvidia-smi / lspci (audit collection) --- -## What Needs Fixing +## Fixed Issues -1. **NVIDIA PCIe Model** — `enrichPCIeWithNVIDIAData()` should set `dev.Model = &gpu.Name` -2. **Fallback consistency** — `benchmark_report.go:93` should say `"Unknown GPU"` not `"Unknown"`; `sat.go:922` should say `"Unknown GPU"` not `"unknown"` -3. **Old benchmark JSONs** — no fix possible for already-saved results with missing names (display-only issue) +All previously open items are resolved: + +1. **NVIDIA PCIe Model** — `enrichPCIeWithNVIDIAData()` sets `dev.Model = &v` (`nvidia.go:78`). +2. **Fallback consistency** — `sat.go` and `benchmark_report.go` both use `"Unknown GPU"`. +3. **`tops_per_sm_per_ghz`** — computed in `benchmark.go` and stored in `BenchmarkGPUScore.TOPSPerSMPerGHz`. +4. **`MultiprocessorCount`, `PowerLimitW`, `DefaultPowerLimitW`** — present in `benchmark_types.go`. +5. **Old benchmark JSONs** — no fix possible for already-saved results with missing names (display-only issue). diff --git a/iso/builder/build.sh b/iso/builder/build.sh index 2aafbbe..1065317 100755 --- a/iso/builder/build.sh +++ b/iso/builder/build.sh @@ -203,7 +203,7 @@ dump_memtest_debug() { echo "-- source bootloader templates --" for cfg in \ - "${BUILDER_DIR}/config/bootloaders/grub-pc/grub.cfg" \ + "${BUILDER_DIR}/config/bootloaders/grub-efi/grub.cfg" \ "${BUILDER_DIR}/config/bootloaders/isolinux/live.cfg.in"; do if [ -f "$cfg" ]; then echo " file: $cfg" @@ -954,87 +954,6 @@ elif [ -d "${LB_PKG_CACHE}" ] && [ "$(ls -A "${LB_PKG_CACHE}" 2>/dev/null)" ]; t rsync -a "${LB_PKG_CACHE}/" "${BUILD_WORK_DIR}/cache/packages.chroot/" fi -if [ "$BEE_GPU_VENDOR" != "nvidia" ] || [ "$BEE_NVIDIA_MODULE_FLAVOR" != "proprietary" ]; then - mkdir -p "${BUILD_WORK_DIR}/config/bootloaders/grub-pc" - cat > "${BUILD_WORK_DIR}/config/bootloaders/grub-pc/grub.cfg" <<'EOF' -source /boot/grub/config.cfg - -echo "" -echo " ███████╗ █████╗ ███████╗██╗ ██╗ ██████╗ ███████╗███████╗" -echo " ██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝ ██╔══██╗██╔════╝██╔════╝" -echo " █████╗ ███████║███████╗ ╚████╔╝ █████╗██████╔╝█████╗ █████╗" -echo " ██╔══╝ ██╔══██║╚════██║ ╚██╔╝ ╚════╝██╔══██╗██╔══╝ ██╔══╝" -echo " ███████╗██║ ██║███████║ ██║ ██████╔╝███████╗███████╗" -echo " ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝" -echo " Hardware Audit LiveCD" -echo "" - -menuentry "EASY-BEE" { - linux @KERNEL_LIVE@ @APPEND_LIVE@ nomodeset net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable nowatchdog nosoftlockup - initrd @INITRD_LIVE@ -} - -submenu "EASY-BEE (advanced options) -->" { - menuentry "EASY-BEE — KMS (no nomodeset)" { - linux @KERNEL_LIVE@ @APPEND_LIVE@ net.ifnames=0 biosdevname=0 mitigations=off transparent_hugepage=always numa_balancing=disable nowatchdog nosoftlockup - initrd @INITRD_LIVE@ - } - - menuentry "EASY-BEE — fail-safe" { - linux @KERNEL_LIVE@ @APPEND_LIVE@ nomodeset noapic noapm nodma nomce nolapic nosmp vga=normal net.ifnames=0 biosdevname=0 - initrd @INITRD_LIVE@ - } -} - -if [ "${grub_platform}" = "efi" ]; then - menuentry "Memory Test (memtest86+)" { - chainloader /boot/memtest86+x64.efi - } -else - menuentry "Memory Test (memtest86+)" { - linux16 /boot/memtest86+x64.bin - } -fi - -if [ "${grub_platform}" = "efi" ]; then - menuentry "UEFI Firmware Settings" { - fwsetup - } -fi -EOF - - cat > "${BUILD_WORK_DIR}/config/bootloaders/isolinux/live.cfg.in" <<'EOF' -label live-@FLAVOUR@-normal - menu label ^EASY-BEE - menu default - linux @LINUX@ - initrd @INITRD@ - append @APPEND_LIVE@ - -label live-@FLAVOUR@-kms - menu label EASY-BEE (^graphics/KMS) - linux @LINUX@ - initrd @INITRD@ - append @APPEND_LIVE@ bee.display=kms - -label live-@FLAVOUR@-toram - menu label EASY-BEE (^load to RAM) - linux @LINUX@ - initrd @INITRD@ - append @APPEND_LIVE@ toram - -label live-@FLAVOUR@-failsafe - menu label EASY-BEE (^fail-safe) - linux @LINUX@ - initrd @INITRD@ - append @APPEND_LIVE@ memtest noapic noapm nodma nomce nolapic nosmp vga=normal - -label memtest - menu label ^Memory Test (memtest86+) - linux /boot/memtest86+x64.bin -EOF -fi - rsync -a "${OVERLAY_DIR}/" "${OVERLAY_STAGE_DIR}/" rm -f \ "${OVERLAY_STAGE_DIR}/etc/bee-ssh-password-fallback" \ diff --git a/iso/builder/config/bootloaders/grub-efi/live-theme/bee-logo.png b/iso/builder/config/bootloaders/grub-efi/live-theme/bee-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6b36657bb5745b79a46eb0c4c8d0bb6c5216743b GIT binary patch literal 71634 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 kI>9=;%cWyw2a8|W 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 literal 0 HcmV?d00001 diff --git a/iso/builder/config/bootloaders/grub-efi/live-theme/theme.txt b/iso/builder/config/bootloaders/grub-efi/live-theme/theme.txt index c7044b2..4e4d5a6 100644 --- a/iso/builder/config/bootloaders/grub-efi/live-theme/theme.txt +++ b/iso/builder/config/bootloaders/grub-efi/live-theme/theme.txt @@ -5,6 +5,15 @@ title-text: "" message-font: "Unifont Regular 16" terminal-font: "Unifont Regular 16" +#bee logo — centered, upper third of screen ++ image { + top = 4% + left = 50%-200 + width = 400 + height = 400 + file = "bee-logo.png" +} + #help bar at the bottom + label { top = 100%-50 @@ -21,8 +30,8 @@ terminal-font: "Unifont Regular 16" + boot_menu { left = 20% width = 60% - top = 62% - height = 38%-80 + top = 65% + height = 35%-80 item_color = "#c88000" item_font = "Unifont Regular 16" selected_item_color= "#f5a800" diff --git a/iso/overlay/etc/systemd/system/bee-web.service b/iso/overlay/etc/systemd/system/bee-web.service index 0fd7b9a..62c498b 100644 --- a/iso/overlay/etc/systemd/system/bee-web.service +++ b/iso/overlay/etc/systemd/system/bee-web.service @@ -10,6 +10,7 @@ RestartSec=3 StandardOutput=journal StandardError=journal LimitMEMLOCK=infinity +MemoryMax=3G # Keep the web server responsive during GPU/CPU stress (children inherit nice+10 # via Setpriority in runCmdJob, but the bee-web parent stays at 0). Nice=0