Local CLI test runner lag and browser timeouts during heavy multitasking

Hi everyone,

I’ve been working through the Python and Rust tracks on Exercism lately, and while the mentorship feedback has been incredible, I’ve hit a strange technical bottleneck when running tests locally.

I’ve noticed that whenever my local environment is under significant resource pressure—specifically when I’m running background automation scripts or testing out a roblox executor for its multi-threading capabilities—the exercism test command and the website interface become notably “sluggish.” The most frustrating part is that the CLI often hits a timeout while trying to submit solutions, and the interactive code editor in the browser starts lagging, sometimes causing the page to “hang” and require a hard refresh. While discussing these bottlenecks with a few other developers, it seemed like the local event loop and the browser’s main thread were being deprioritized, causing the heartbeat signal to the Exercism servers to drop during these high-concurrency spikes.

Has anyone else noticed their local dev environment hitting silent API timeouts or experiencing significant UI lag on the site if there are other high-performance tasks running in the background? I’m seeing occasional “Socket Hang Up” errors in my terminal that only seem to trigger when the system is under heavy load, which makes me think the network stack is struggling to manage the submission process alongside my other background processes.

I’m trying to figure out if there’s a way to make the submission process more resilient—perhaps by increasing the persistent connection timeout in the CLI config or if I should look into a more aggressive local caching strategy to reduce the round-trip overhead in “noisy” multitasking environments. If you’ve dealt with stabilizing your coding workflow while multitasking heavily, I’d really value your advice!

Best regards!

It’s somewhat expected that things will get sluggish when your computer is overloaded. You might be able to tweak the process priority so roblox has less impact on other processes.

Setting timeouts is a bit of an … art. If it’s too long, connections can pile up on the server and a connection which will fail will take longer to fail. If it’s too short, you get failures. Retries are generally helpful but also can have unforeseen consequences and problems (see “thundering herd” problem).

Reducing priorities should help, but a manual retry will likely remain the correct path for the submit.

It also depends on the system you are running - my Linux allows me to nice (see man nice) processes I put into background. Using maximum niceness for stuff that can wait and maximum unnicessness for stuff that has timeouts will force resources to be available where needed. But it all has limits. That’s why horizontal scaling still is a thing :slight_smile: