You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tracking issue for the server-side defects found while soaking v0.8.0-rc.1 against a ~80-project production account.
One blocker remains: basecamp/bc3#12459. The boost item below is closed out — the endpoint is being removed rather than fixed.
basecamp/bc3#12459 — files.json returns 500 on any page containing an attachment whose parent is an autolinked image (bucket_autolinked_image_url route helper does not exist). Blocks files list --all-projects.
~~basecamp/bc3#12458 — boosts.json spends ~44s in MySQL on every page.~~ Resolved for the CLI by removing the caller. The aggregate turned out to be an easter egg, unlinked from the web UI, and is being withdrawn server-side; PR Bound the account-wide listings, and drop the boost aggregate #590 drops boost list --all-projects rather than paging around pathological database performance. No longer a release blocker.
Why the CLI-side fix does not cover these
The account-wide pagination rework replaced the full-account crawl with a bounded walk over positive pages, which fixed the listings that were merely slow:
Command
rc.1
after
cards list --all-projects --status completed
timeout at 94s
24.9s, 1 request
checkins answers --all-projects
timeout
1.5s, 4 requests
cards list --limit 3
16s (fetched all 2142, then trimmed)
1.2s, 1 request
forwards list --all-projects
—
1.6s, 4 requests
comments list --all-projects
—
2.1s, 4 requests
messages list --all-projects
—
2.6s, 4 requests
No default or --limit request omits page= any more, so nothing asks the server for a whole-account crawl unless it was asked to. --all still omits it deliberately — that is the spelling for the full traversal.
It does not help the two above:
files — GearedPagination ramps page sizes (15, 30, 50, …), so the bounded default of 100 items spans pages 1–4 and lands on exactly the page that 500s. A smaller default would dodge it only by accident, on this account, today.
boost — the cost was per-page and flat (page 1 ≈ page 40), so no pagination strategy reduced it. Resolved by withdrawing the endpoint and the CLI command that called it.
Disposition
The release is held until BC3 ships the fix for #12459. Re-run the soak against account 2914079 afterwards and confirm files list --all-projects returns rows before cutting rc.2.
Tracking issue for the server-side defects found while soaking
v0.8.0-rc.1against a ~80-project production account.One blocker remains: basecamp/bc3#12459. The boost item below is closed out — the endpoint is being removed rather than fixed.
files.jsonreturns 500 on any page containing an attachment whose parent is an autolinked image (bucket_autolinked_image_urlroute helper does not exist). Blocksfiles list --all-projects.boosts.jsonspends ~44s in MySQL on every page.~~ Resolved for the CLI by removing the caller. The aggregate turned out to be an easter egg, unlinked from the web UI, and is being withdrawn server-side; PR Bound the account-wide listings, and drop the boost aggregate #590 dropsboost list --all-projectsrather than paging around pathological database performance. No longer a release blocker.Why the CLI-side fix does not cover these
The account-wide pagination rework replaced the full-account crawl with a bounded walk over positive pages, which fixed the listings that were merely slow:
cards list --all-projects --status completedcheckins answers --all-projectscards list --limit 3forwards list --all-projectscomments list --all-projectsmessages list --all-projectsNo default or
--limitrequest omitspage=any more, so nothing asks the server for a whole-account crawl unless it was asked to.--allstill omits it deliberately — that is the spelling for the full traversal.It does not help the two above:
Disposition
The release is held until BC3 ships the fix for #12459. Re-run the soak against account 2914079 afterwards and confirm
files list --all-projectsreturns rows before cutting rc.2.