ollama/server
Daniel Hiltgen 6cd40001a9
server: fix ps data race on scheduler loaded map (#17376)
PsHandler iterated sched.loaded without holding loadedMu, racing with
scheduler goroutines that mutate the map. It also read runnerRef fields
(model, llama, expiresAt) that unload() and the expiration path mutate
under refMu, so a concurrently unloading runner could nil model out from
under the handler.

Instead of adding locking in routes.go, give the scheduler a small
snapshot API: loadedModels() copies the runner list under loadedMu, then
captures each runner's reporting fields under its refMu, respecting the
refMu-before-loadedMu lock ordering used by the expiration path. The
zero-expiresAt estimate for still-loading models moves into the
scheduler too, since it exists because of scheduler behavior.

Also remove the dead code Scheduler.GetRunner
2026-07-24 13:23:49 -07:00
..
auth.go server: reject unexpected auth hosts (#13738) 2026-01-16 14:10:36 -05:00
auth_test.go server: reject unexpected auth hosts (#13738) 2026-01-16 14:10:36 -05:00
cloud_proxy.go cloud_proxy: for the web_search legacy path, flush on newlines (#14897) 2026-03-17 13:30:17 -07:00
cloud_proxy_test.go cloud_proxy: for the web_search legacy path, flush on newlines (#14897) 2026-03-17 13:30:17 -07:00
create.go create: harden GGUF create flows (#17062) 2026-07-06 16:20:20 -07:00
create_test.go runner: Remove CGO engines, use llama-server exclusively for GGML models (#16031) 2026-05-29 13:35:47 -07:00
download.go server: detect download stalls before the first byte (#17259) 2026-07-21 11:28:19 -07:00
download_test.go server: detect download stalls before the first byte (#17259) 2026-07-21 11:28:19 -07:00
fixblobs.go
fixblobs_test.go
gemma4_test.go models: add support for gemma4-12b (#16457) 2026-06-03 07:44:57 -07:00
images.go server: align generate with native chat templates (#16878) 2026-06-24 13:43:56 -07:00
images_test.go server: align generate with native chat templates (#16878) 2026-06-24 13:43:56 -07:00
inference_request_log.go add ability to turn on debug request logging (#14106) 2026-03-19 17:08:17 -07:00
logprob.go logprob: add bytes to logprobs (#13068) 2025-11-13 13:49:25 -08:00
model.go runner: Remove CGO engines, use llama-server exclusively for GGML models (#16031) 2026-05-29 13:35:47 -07:00
model_caches.go Reduce startup model hydration (#16215) 2026-05-19 15:53:08 -07:00
model_list_cache.go create: harden GGUF create flows (#17062) 2026-07-06 16:20:20 -07:00
model_list_cache_test.go create: harden GGUF create flows (#17062) 2026-07-06 16:20:20 -07:00
model_recommendations.go launch: add plan-aware model gating (#16027) 2026-05-06 14:34:26 -07:00
model_recommendations_test.go server: remove OLLAMA_EXPERIMENT=client2 (#16962) 2026-07-06 13:15:39 -07:00
model_resolver.go Reapply "don't require pulling stubs for cloud models" again (#14608) 2026-03-06 14:27:47 -08:00
model_resolver_test.go Reapply "don't require pulling stubs for cloud models" again (#14608) 2026-03-06 14:27:47 -08:00
model_show_cache.go Reduce startup model hydration (#16215) 2026-05-19 15:53:08 -07:00
model_show_cache_test.go server: remove OLLAMA_EXPERIMENT=client2 (#16962) 2026-07-06 13:15:39 -07:00
prompt.go server: align generate with native chat templates (#16878) 2026-06-24 13:43:56 -07:00
prompt_test.go anthropic: Preserve Claude local image-path tool results in renderer-owned prompt formatting (#16047) 2026-05-12 00:02:17 -04:00
quantization.go convert: fixes for qwen3next model conversion (#16354) 2026-06-01 09:43:11 -07:00
quantization_stub_test.go runner: Remove CGO engines, use llama-server exclusively for GGML models (#16031) 2026-05-29 13:35:47 -07:00
quantization_test.go convert: fixes for qwen3next model conversion (#16354) 2026-06-01 09:43:11 -07:00
renderer_resolution.go models: add support for gemma4-12b (#16457) 2026-06-03 07:44:57 -07:00
routes.go server: fix ps data race on scheduler loaded map (#17376) 2026-07-24 13:23:49 -07:00
routes_cloud_test.go server: remove OLLAMA_EXPERIMENT=client2 (#16962) 2026-07-06 13:15:39 -07:00
routes_create_test.go create: harden GGUF create flows (#17062) 2026-07-06 16:20:20 -07:00
routes_debug_test.go runner: Remove CGO engines, use llama-server exclusively for GGML models (#16031) 2026-05-29 13:35:47 -07:00
routes_delete_test.go Reapply "don't require pulling stubs for cloud models" again (#14608) 2026-03-06 14:27:47 -08:00
routes_generate_renderer_test.go runner: Remove CGO engines, use llama-server exclusively for GGML models (#16031) 2026-05-29 13:35:47 -07:00
routes_generate_test.go server: apply format constraint for all thinking parsers when think=false (#15901) 2026-07-07 11:54:50 -07:00
routes_harmony_streaming_test.go sched: Model eviction for MLX 2026-03-16 17:40:29 -07:00
routes_list_test.go server: remove OLLAMA_EXPERIMENT=client2 (#16962) 2026-07-06 13:15:39 -07:00
routes_options_test.go runner: Remove CGO engines, use llama-server exclusively for GGML models (#16031) 2026-05-29 13:35:47 -07:00
routes_request_log_test.go add ability to turn on debug request logging (#14106) 2026-03-19 17:08:17 -07:00
routes_test.go server: remove OLLAMA_EXPERIMENT=client2 (#16962) 2026-07-06 13:15:39 -07:00
routes_web_experimental_test.go server: remove OLLAMA_EXPERIMENT=client2 (#16962) 2026-07-06 13:15:39 -07:00
sched.go server: fix ps data race on scheduler loaded map (#17376) 2026-07-24 13:23:49 -07:00
sched_test.go server: fix ps data race on scheduler loaded map (#17376) 2026-07-24 13:23:49 -07:00
sparse_common.go
sparse_windows.go
test_home_test.go app: harden update flows (#16100) 2026-05-11 12:24:01 -07:00
upload.go Clean up the manifest and modelpath (#13807) 2026-01-21 11:46:17 -08:00