Repository navigation
K2GO-376 fix(content-exchange): longer import read timeout for slow Kolibri - #724
Merged
Merged
Conversation
…olibri
A Kolibri channel import on the box (importchannel + importcontent copying the whole
channel) takes 35-141s, but postImportItem used the generic 20s read timeout, so every
sizable Kolibri import false-failed while the box kept importing ("Imported 18 of 21
items, some failed"). Give import a dedicated 15-min read timeout, threaded through
postJson, matching the existing delete-timeout pattern. Robust follow-up: make import a
prepare/poll long operation like export (K2GO-507).
The default 60 s read timeout cut a Kolibri import through the conex-core relay with a 504. dash-node 1.4.8.
Collaborator
Author
|
Update (d61893b): adds the box half of the fix. The app reaches conex-core through nginx Device (OnePlus 7T, nginx live-patched with the same lines): import from disk 21 of 21, two runs. |
… watchdog Import becomes a start/poll/cancel long operation like export (POST starts it and returns an opId; GET /v1/import/status; DELETE cancels), so a 35-141 s Kolibri import no longer times out at the dash-node/nginx relay. A shared watchdog supervises the Kolibri import and export CLIs by byte and CPU progress (no fixed timeout; window relative to the task) and names a signal-9 exit as a likely OOM kill. conex-core 0.3.3.
…equest ContentImportService starts the import op and polls its status (like the export service), so a 35-141 s Kolibri import no longer hits the dash-node/nginx relay read timeout (the 504). Each poll is a short request; the box watchdog owns the liveness decision, so the app keeps short per-request timeouts, not a long one.
…sweep Drop the box op on DONE (an idempotent delete), so import has an explicit normal-completion cleanup like export's fetch-close, instead of leaving a consumed op to the 600 s abandonment sweep.
0.3.3 is the observability release in its own PR.
Collaborator
Author
|
Update (613386b..8054cdc): import is now a long operation, so no fixed timeout sits on its path.
|
…brary A fully successful import counts down 3 s to the Library; Cancel stays on the screen. Reuses the Clone countdown and setup Cancel strings.
Collaborator
Author
|
Update (d70e2f5): a fully successful import now confirms and returns to the Library. UI changes:
|
…ead-timeout # Conflicts: # static/conex-core/CHANGELOG.md # static/conex-core/conex_core/__init__.py # static/conex-core/conex_core/server.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
ConexCoreDataSource.postImportItemuses a dedicated 15 min read timeout (IMPORT_READ_TIMEOUT_MS), passed throughpostJson. Other calls keep the 20 s default.Why
Verifications
Notes