diff --git a/.github/workflows/qemu-emulator-build.yaml b/.github/workflows/qemu-emulator-build.yaml index 5792b7f600..a659368500 100644 --- a/.github/workflows/qemu-emulator-build.yaml +++ b/.github/workflows/qemu-emulator-build.yaml @@ -243,6 +243,19 @@ jobs: echo "/opt/qemu/bin" >> "$GITHUB_PATH" /opt/qemu/bin/qemu-system-x86_64 --version + - name: Enable KVM access + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' \ + | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm || true + ls -la /dev/kvm || echo "no /dev/kvm present" + if [ -w /dev/kvm ]; then + echo "KVM is writable — hardware acceleration will be used" + else + echo "WARNING: /dev/kvm is not writable — will fall back to TCG (very slow)" + fi + - uses: pnpm/action-setup@v4 with: version: 10.23.0 diff --git a/apps/backend/src/lib/seed-dummy-data.ts b/apps/backend/src/lib/seed-dummy-data.ts index e117402eb7..d70781b7a4 100644 --- a/apps/backend/src/lib/seed-dummy-data.ts +++ b/apps/backend/src/lib/seed-dummy-data.ts @@ -1636,10 +1636,10 @@ async function seedDummySessionActivityEvents(options: SessionActivityEventSeedO }); }, { // Under cross-arch arm64 TCG in the emulator qcow2 build, this batch - // takes ~10s; Prisma's default is 5s. Production (KVM/native) runs it - // in well under 1s, so the looser bound only kicks in when the DB is - // genuinely slow. - timeout: 30_000, + // has been observed to take 40-50s; Prisma's default is 5s. Production + // (KVM/native) runs it in well under 1s, so the looser bound only kicks + // in when the DB is genuinely slow. + timeout: 90_000, }); if (clickhouseClient && clickhouseRows.length > 0) { diff --git a/docker/dependencies/freestyle-mock/Dockerfile b/docker/dependencies/freestyle-mock/Dockerfile index b378ded8a0..5855d48d6b 100644 --- a/docker/dependencies/freestyle-mock/Dockerfile +++ b/docker/dependencies/freestyle-mock/Dockerfile @@ -380,8 +380,9 @@ const server = createServer(async (req, res) => { } }); -server.listen(8080, () => { - console.log(`freestyle-mock listening on :8080 (worker pool size ${POOL_SIZE})`); +const PORT = process.env.PORT || 8080; +server.listen(PORT, () => { + console.log(`freestyle-mock listening on :${PORT} (worker pool size ${POOL_SIZE})`); }); EOF diff --git a/docker/local-emulator/Dockerfile b/docker/local-emulator/Dockerfile index f08a977a92..2672058d7e 100644 --- a/docker/local-emulator/Dockerfile +++ b/docker/local-emulator/Dockerfile @@ -117,7 +117,6 @@ RUN node -e " \ fs.writeFileSync('package.json', pkgMatch[1]); \ const srvMatch = df.match(/cat <<'EOF' > server\\.mjs\\n([\\s\\S]*?)\\nEOF/); \ let server = srvMatch[1]; \ - server = server.replace('server.listen(8080)', 'server.listen(process.env.PORT || 8080)'); \ server = server.replace( \ 'from \"fs/promises\"', \ 'from \"fs/promises\"; import { symlinkSync } from \"fs\"' \ diff --git a/docker/local-emulator/supervisord.conf b/docker/local-emulator/supervisord.conf index a9d3d51da8..cb7dda854f 100644 --- a/docker/local-emulator/supervisord.conf +++ b/docker/local-emulator/supervisord.conf @@ -25,7 +25,7 @@ command=/usr/lib/postgresql/16/bin/postgres -c max_connections=500 -c shared_preload_libraries=pg_stat_statements -c pg_stat_statements.track=all - -c statement_timeout=120s + -c statement_timeout=0 user=postgres autostart=true autorestart=true