mirror of
https://github.com/nextcloud/all-in-one.git
synced 2026-07-22 22:20:00 +00:00
* Fix: prevent nginx proxy read timeout from blocking AIO container startup When AIO runs behind an nginx reverse proxy and a user clicks Start, image pulls produce no streaming output for minutes at a time. nginx's proxy_read_timeout fires, drops the upstream connection, and PHP then aborts on the next write attempt (ignore_user_abort defaults to false), leaving all containers after the first one never started. Two fixes: 1. startStreamingResponse(): add ignore_user_abort(true) so PHP never terminates if the connection is already gone. 2. PullImage(): stream the Docker NDJSON pull response and write a "Pulling image" heartbeat at most once every 5 s, keeping the nginx connection alive. Also surfaces Docker-level stream errors that the old buffered call silently ignored, guards against malformed newline-free responses with a 1 MB buffer limit, and unifies the duplicate catch-block retry logic. Agent-Logs-Url: https://github.com/nextcloud/all-in-one/sessions/4fd13605-63fb-4693-8a95-89ccec31f7d3 Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com> * As heartbeat send a dot regularly Rather than repeating the message, send a "magic" dot, which gets appended to the previous line. Previously the heartbeats weren't sent regulary because reading the data into a buffer caused a lag. Signed-off-by: Pablo Zmdl <pablo@nextcloud.com> * Remove left-over constants Signed-off-by: Pablo Zmdl <pablo@nextcloud.com> * Reduce timeout to stay within nginx's default timeout of 5s Signed-off-by: Pablo Zmdl <pablo@nextcloud.com> * Fix duplicated library namespace inclusion Signed-off-by: Pablo Zmdl <pablo@nextcloud.com> * Deal with preg_replace possibly returning null Signed-off-by: Pablo Zmdl <pablo@nextcloud.com> * update the version tag Signed-off-by: Simon L. <szaimen@e.mail.de> --------- Signed-off-by: Pablo Zmdl <pablo@nextcloud.com> Signed-off-by: Simon L. <szaimen@e.mail.de> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com> Co-authored-by: Pablo Zmdl <pablo@nextcloud.com> Co-authored-by: Simon L. <szaimen@e.mail.de>
14 lines
526 B
JavaScript
14 lines
526 B
JavaScript
const observer = new MutationObserver((records) => {
|
|
const node = records[0]?.addedNodes[0];
|
|
// Text nodes also appear here but can't be scrolled to, so we have to check for the
|
|
// function being present.
|
|
if (node && typeof(node.scrollIntoView) === 'function') {
|
|
node.scrollIntoView();
|
|
if (node.classList.contains('progress-indicator')) {
|
|
node.previousSibling.append('.');
|
|
node.remove();
|
|
}
|
|
}
|
|
});
|
|
observer.observe(document, {childList: true, subtree: true});
|