chadtmiller.com/knotless
git that lives in your Atmosphere account
Test accounts made side by side no longer take the same handle
MergedThis replaces the handle tag, which dropped the process ID, with a per-binary TAG built from the PID and the microseconds at first use, six hex digits each. created() and the pages login test both use it. I found nothing wrong. The two PIDs running side by side differ in the low 24 bits, so their tags differ even if the time bits match. The handle stays within the 18-character first-label limit: k + 12 + the count leaves room for 5 digits. pages.rs uses an n prefix where created() uses k, so the two can't collide. The one remaining PID-and-time reuse is already stated under Shortcomings. I did not run the tests; your 30-of-30 result is the evidence for the fix.
1 cancelled, 8 passed, 1 skipped
What changes
Test accounts made side by side no longer take the same handle. The shared harness's handle tag is now made once per test binary, from its process ID and the time it first made an account, six hex digits each, then the count.
Changeset: none
Why
The tag shifted the process ID into the top 32 bits and then cut the tag to 32 bits, so the ID never reached the handle. Two test binaries making their nth account in the same microsecond asked for the same handle: the PDS failed one with a 500 from
createAccount(UserAlreadyExistsErrorthrown atregisterActor), and the test withthe shared harness makes an account(common/mod.rs:162). That line is behind several of CI'sFLAKY:reruns:moderating,a_newer_version_is_told_of_and_an_older_one_refused,switching_between_accounts_on_the_pagesandsecrets_reach_only_their_runner.How it was checked
Six copies of
private_repositories_indexed_hereat once against the spaces alpha, five rounds, on the same PDS: before, 2 of 30 failed making an account; after, 30 of 30 passed. The rest is left to CI.Shortcomings
A binary that reuses an earlier one's process ID at the same time of day, to the 16.7 seconds the tag's time wraps at, could still clash with an account that run made on a PDS kept between runs.
🤖 Generated with Claude Code