fix(idlewatcher): improve container readiness handling in wakeFromHTTP

- Updated the wakeFromHTTP method to send a 100 Continue response to prevent client wait-header timeout.
- Implemented logic for non-HTML requests to wait for the container to become ready, returning an error message if it times out, or redirecting if successful.
- Adjusted the waitForReady method to return true upon receiving a ready notification.
This commit is contained in:
yusing
2025-12-17 10:15:31 +08:00
parent b783ded2e7
commit 37e72cda57
3 changed files with 10 additions and 2 deletions

View File

@@ -176,7 +176,14 @@ func (w *Watcher) wakeFromHTTP(rw http.ResponseWriter, r *http.Request) (shouldN
}
if !acceptHTML {
serveStaticContent(rw, http.StatusOK, "text/plain", []byte("Container woken"))
// send a continue response to prevent client wait-header timeout
rw.WriteHeader(http.StatusContinue)
ready := w.waitForReady(r.Context())
if !ready {
serveStaticContent(rw, http.StatusInternalServerError, "text/plain", []byte("Timeout waiting for container to become ready"))
} else {
http.Redirect(rw, r, r.URL.Path, http.StatusSeeOther)
}
return false
}