From 7daf9896e5c09949f53218082110e3b34dc4dff3 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 14 Aug 2026 03:49:42 -0700 Subject: [PATCH] docs: record Ling freeze diagnosis - spec path deadlock, resolution spec-off parallel=2 --- docs/ling-3.0-flash-trial.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/ling-3.0-flash-trial.md b/docs/ling-3.0-flash-trial.md index ab85d64..254c74b 100644 --- a/docs/ling-3.0-flash-trial.md +++ b/docs/ling-3.0-flash-trial.md @@ -48,6 +48,31 @@ Vulkan0: AMD Radeon Graphics (RADV STRIX_HALO) (113910 MiB) Ling uses gated MLA and KDA attention. KV cache stays tiny: 256k total context costs only ~2.5 GiB. This is why 256k context fits. +## Freeze Bug (2026-08-14) - Spec Path Deadlock + +### Symptom + +Under 2+ concurrent streams with speculative decoding, one stream hard-freezes +mid-generation (zero output for minutes; a deadlock, not slowness). Freeze +point varies (385-1588 tokens). Single streams never freeze. + +### Isolated cause + +- Not context exhaustion: `truncated = 0`, under 131072 ctx. +- Not batch (3072 and 8192 both froze) and not log verbosity (0 and 4 both). +- `parallel=2` + `draft-mtp,ngram-mod` -> freeze. SPEC OFF -> no freeze. +- Culprit: the speculative-decode / context-checkpoint path in llama-server + with multiple slots on the Vulkan backend. Known bug family: PR #24891, + #24797 (server checkpoint fixes), #25144 (MTP draft crash), plus a + ggml-vulkan hang-under-sustained-compute class. + +### Resolution: SPEC OFF + +`SPEC_TYPE=none`, `PARALLEL=2`. All concurrent streams complete (EOS). +Speed cost: ~10-13 t/s under contention vs ~28-32 t/s single-stream with +MTP. Fallback chain if spec-off regresses: A) `PARALLEL=1` keep MTP, +B) switch back to Qwen3.6-27B (frank-default-large, MTP n_max 3). + ## Files - `scripts/frank-large-ling.service` - systemd unit.