Bugfix
This commit is contained in:
parent
7877faa786
commit
d3393f6494
3 changed files with 22 additions and 0 deletions
|
|
@ -88,3 +88,7 @@ AIW_MAX_TOOL_ROUNDS=12
|
|||
AIW_MAX_TOOL_ROUNDS_LIMIT=40
|
||||
# Verlauf je Anfrage höchstens so viele Tokens (geschätzt); Älteres geht als Arbeitsnotiz mit
|
||||
AIW_HISTORY_MAX_TOKENS=60000
|
||||
|
||||
# Nur für Rechner/VMs ohne AVX (Absturz mit Exit-Code 132): psycopg ohne Binärpaket, braucht die libpq
|
||||
# des Systems (apt install libpq5). Wird von scripts/dev.sh übernommen; sonst in der Umgebung setzen.
|
||||
# PSYCOPG_IMPL=python
|
||||
|
|
|
|||
|
|
@ -122,6 +122,13 @@ uv run aiw check # Uploads und Master-Key gegen die D
|
|||
- **`/ready` meldet einen veralteten Migrationsstand:** `uv run aiw migrate`.
|
||||
- **Änderungen an Templates erscheinen nicht:** den Web-Server neu starten, oder ihn mit `--reload` starten, dann startet er bei Änderungen selbst neu.
|
||||
|
||||
### Absturz mit Exit-Code 132 (VM ohne AVX)
|
||||
|
||||
Exit-Code 132 heißt SIGILL: Eine fertig kompilierte Bibliothek nutzt CPU-Befehle, die der Rechner nicht hat. Typisch für VirtualBox auf Windows-Hosts mit aktivem Hyper-V (WSL2, Docker Desktop, Speicher-Integrität): `grep -o -w -E 'avx|avx2' /proc/cpuinfo` liefert nichts. Betroffen ist zuerst `psycopg-binary`.
|
||||
|
||||
- **Am Host beheben (empfohlen):** Hyper-V-Nutzung aus (`bcdedit /set hypervisorlaunchtype off`, Speicher-Integrität aus, Neustart), dann `VBoxManage modifyvm "<VM>" --cpu-profile host`. Danach meldet die VM `avx avx2`.
|
||||
- **In der VM umgehen:** `sudo apt install libpq5` und `PSYCOPG_IMPL=python` in `.env`; `scripts/dev.sh` übernimmt das für Web, Worker und DB-Dienst. Stürzt danach eine andere Bibliothek ab, steht sie im Stack („Fatal Python error“, `scripts/dev.sh` setzt `PYTHONFAULTHANDLER=1`).
|
||||
|
||||
## Datenbanken ausprobieren
|
||||
|
||||
Datenbanken sind MCP-Verbindungen eines Workspace über einen Datenbank-Treiber, also einen DB-Dienst aus `services/db-mcp`. `scripts/dev.sh` startet den Dienst für PostgreSQL (Port 8791), mit `--oracle` zusätzlich den Oracle-Container (Oracle Database Free, ca. 6 GB, erster Start einige Minuten; Port 55434, Service `FREEPDB1`, Admin `system`/`aiw`) und den Dienst für Oracle (Port 8792). Von Hand: Container mit `docker compose --profile oracle up -d oracle`, Dienste wie in [services/db-mcp/README.md](../services/db-mcp/README.md#lokal-starten-und-testen).
|
||||
|
|
|
|||
|
|
@ -141,6 +141,12 @@ export AIW_MCP_ALLOW_LOCAL=${AIW_MCP_ALLOW_LOCAL:-true}
|
|||
export AIW_WORKER_HTTP_HOST=${AIW_WORKER_HTTP_HOST:-127.0.0.1}
|
||||
export AIW_COOKIE_SECURE=${AIW_COOKIE_SECURE:-false}
|
||||
export PYTHONUNBUFFERED=1
|
||||
# Stürzt Python in nativem Code ab (z. B. SIGILL, SIGSEGV), zeigt das den Python-Stack bis zur Bibliothek
|
||||
export PYTHONFAULTHANDLER=1
|
||||
# psycopg ohne Binärpaket (reine Python-Variante mit der libpq des Systems), z. B. für VMs ohne AVX:
|
||||
# PSYCOPG_IMPL=python in .env oder der Umgebung; gilt für Web, Worker und den DB-Dienst
|
||||
: "${PSYCOPG_IMPL:=$(env_value PSYCOPG_IMPL)}"
|
||||
[ -n "$PSYCOPG_IMPL" ] && export PSYCOPG_IMPL && say "psycopg-Variante: $PSYCOPG_IMPL"
|
||||
|
||||
trap 'trap - INT TERM EXIT; echo; say "Stoppe Web, Worker und DB-Dienste"; kill 0 2>/dev/null; wait 2>/dev/null' INT TERM EXIT
|
||||
# Gestartete Prozesse: PID, Name und Befehl zum Einzelstart (parallele Listen, Bash 3 von macOS kennt keine Maps)
|
||||
|
|
@ -204,6 +210,11 @@ while true; do
|
|||
wait "${PIDS[$i]}" 2>/dev/null || code=$?
|
||||
echo
|
||||
printf '\033[31m%s hat sich beendet (Exit-Code %s).\033[0m\n' "${NAMES[$i]}" "$code" >&2
|
||||
case $code in
|
||||
132) echo "Signal SIGILL: Die CPU kennt eine Anweisung einer nativen Bibliothek nicht (oft VM ohne AVX/AVX2;" \
|
||||
"CPU-Typ der VM auf „host“ stellen). Welche Bibliothek, zeigt der Stack mit „Fatal Python error“ oben." >&2 ;;
|
||||
134|139) echo "Absturz in nativem Code (Signal $((code - 128))); Stack mit „Fatal Python error“ oben." >&2 ;;
|
||||
esac
|
||||
echo "Seine Ausgabe steht oben mit Präfix; fehlt sie, den Prozess einzeln starten und die Meldung ansehen:" >&2
|
||||
echo " ${COMMANDS[$i]}" >&2
|
||||
exit 1
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue