ci(studio): fix Linux tool-calling flake (Q4_K_XL) + capture server logs (#6360)
Linux tool calling used Qwen3.5-2B IQ3_XXS. That quant is aggressive enough that the model intermittently emits a malformed tool call (doubled </parameter>, stray </tool_call>), and llama-server's peg-native parser rejects it with a 500, failing the job. Mac and Windows already run this test at Q4_K_XL; align Linux. Also copy ~/.unsloth/studio/logs (backend server log + llama-server log) into the tool-calling and ui-smoke artifacts on stop. Previously only studio.log + install.log were uploaded, so a /v1/chat/completions or /api/inference/load 500 had no server-side traceback to diagnose from.
This commit is contained in:
parent
048f34e8f2
commit
c20f25afac
2 changed files with 14 additions and 2 deletions
11
.github/workflows/studio-inference-smoke.yml
vendored
11
.github/workflows/studio-inference-smoke.yml
vendored
|
|
@ -317,7 +317,7 @@ jobs:
|
|||
timeout-minutes: 25
|
||||
env:
|
||||
# Tool calling is the highest-volume GGUF in this workflow
|
||||
# (Qwen3.5-2B at IQ3_XXS = ~890 MiB). Caching HF_HOME would
|
||||
# (Qwen3.5-2B at Q4_K_XL = ~1.28 GiB). Caching HF_HOME would
|
||||
# store xet chunks + blobs + snapshots = ~4 GiB compressed --
|
||||
# 4-5x file-size inflation, dominated by xet chunks. Use main's
|
||||
# `--local-dir gguf-cache` pattern to cache the flat .gguf only.
|
||||
|
|
@ -326,8 +326,11 @@ jobs:
|
|||
# path keeps the test off HF_HOME entirely so the cache size
|
||||
# tracks the GGUF file 1:1. The OpenAI/Anth and JSON+images
|
||||
# jobs still cover the gguf_variant resolution path.
|
||||
# Q4_K_XL, not IQ3_XXS: at IQ3_XXS this model emits malformed
|
||||
# tool calls that llama-server's peg-native parser rejects with a
|
||||
# 500. Mac/Windows already use Q4_K_XL for the same reason.
|
||||
GGUF_REPO: unsloth/Qwen3.5-2B-GGUF
|
||||
GGUF_FILE: Qwen3.5-2B-UD-IQ3_XXS.gguf
|
||||
GGUF_FILE: Qwen3.5-2B-UD-Q4_K_XL.gguf
|
||||
STUDIO_PORT: '18889'
|
||||
steps:
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
|
|
@ -772,6 +775,9 @@ jobs:
|
|||
kill "${STUDIO_PID}" 2>/dev/null || true
|
||||
sleep 2
|
||||
ss -tln | grep ":${STUDIO_PORT}" || true
|
||||
# Capture backend + llama-server logs so a 500 has a server-side traceback.
|
||||
mkdir -p logs/server-logs
|
||||
cp -r ~/.unsloth/studio/logs/. logs/server-logs/ 2>/dev/null || true
|
||||
|
||||
- name: Upload logs
|
||||
# Always upload so green runs are still reviewable.
|
||||
|
|
@ -784,6 +790,7 @@ jobs:
|
|||
path: |
|
||||
logs/studio.log
|
||||
logs/install.log
|
||||
logs/server-logs/
|
||||
retention-days: 7
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
5
.github/workflows/studio-ui-smoke.yml
vendored
5
.github/workflows/studio-ui-smoke.yml
vendored
|
|
@ -276,6 +276,10 @@ jobs:
|
|||
run: |
|
||||
kill "${STUDIO_IME_PID}" 2>/dev/null || true
|
||||
sleep 2
|
||||
# Capture backend + llama-server logs (all three Studios share this
|
||||
# dir) so a stray 500 has a server-side traceback.
|
||||
mkdir -p logs/server-logs
|
||||
cp -r ~/.unsloth/studio/logs/. logs/server-logs/ 2>/dev/null || true
|
||||
|
||||
- name: Upload Playwright artifacts
|
||||
# Always upload so a green run's screenshots stay reviewable --
|
||||
|
|
@ -289,6 +293,7 @@ jobs:
|
|||
logs/studio_extra.log
|
||||
logs/studio_ime.log
|
||||
logs/install.log
|
||||
logs/server-logs/
|
||||
logs/playwright
|
||||
logs/playwright_extra
|
||||
logs/playwright_ime
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue