6 ms·
> created by monkeys I don't particularly care for either Zig or Github, but... they do precisely cite the technical issues. That snippet links to a Github d
by ssivark 11mo ago
> created by monkeys
I don't particularly care for either Zig or Github, but...
they do precisely cite the technical issues. That snippet links to a Github discussion comment https://github.com/actions/runner/issues/3792#issuecomment-3182746514 https://github.com/actions/runner/issues/3792#issuecomment-3...
(reproduced below)
"The bug in this "safe sleep" script is obvious from looking at it: if the process is not scheduled for the one-second interval in which the loop would return (due to $SECONDS having the correct value), then it simply spins forever. That can easily happen on a CI machine under extreme load. When this happens, it's pretty bad: it completely breaks a runner until manual intervention. On Zig's CI runner machines, we observed multiple of these processes which had been running for hundreds of hours, silently taking down two runner services for weeks."
"I don't understand how we got here. Even ignoring the pretty clear bug, what makes this Bash script "safer" than calling into the POSIX standard sleep utility? It doesn't seem to solve any problem; meanwhile, it's less portable and needlessly eats CPU time by busy-waiting."
"The sloppy coding which is evident here, as well as the inaction on core Actions bugs (in line with the decay in quality of almost every part of GitHub's product), is forcing the Zig project to strongly consider moving away from GitHub Actions entirely. With this bug, and many others (severe workflow scheduling issues resulting in dozens of timeouts; logs randomly becoming inaccessible; random job cancellations without details; perpetually "pending" jobs), we can no longer trust that Actions can be used to implement reliable CI infrastructure. I personally would seriously encourage other projects, particularly any using self-hosted runners, to look carefully at the stability of Actions and ask themselves whether it is a solution worth sticking with long-term when compared with alternatives."
----
I agree that the writing in the blog post is more colorful than precise, but sanitizing every bit of expression dulls the internet. Humans invented language for a reason.
- dpkirchner 11mo agoI must be missing something huge here, or maybe it's the wine -- how is the code in PR 3157 (referenced in a later comment) a proper fix? https://github.com/actions/runner/pull/3157/files https://github.com/actions/runner/pull/3157/files Is : doing something unusual in GH actions?
- Veserv 11mo agoThe original loop is: while (time() != timeout) {;} The fixed loop is: while (time() < timeout) {;}
- dpkirchner 11mo agoI see. I did not realize SECONDS was a built in bash variable.
- nh2 11mo agoIt is still not a proper fix. It is still busy-looping 100% CPU. Given that Github Actions is quite popular, probably wasting large amount of energy. But probably good at generating billable Actions minutes. One can only hope that not many people use sleeps to handle their CI race conditions, as that itself is also not a proper fix.
- magicalhippo 11mo agoClearly the job for a microservice. Accept number of seconds to wait as url, return content after that many seconds. Then just use curl in runner.
- xp84 11mo agoBrb founding a SaaS startup. I’ll call it cloudsleep dot io of course. After our Series B I’ll buy the .com. Only task to do before lining up investors is how can I weave AI into our product?
- debugnik 11mo agoDescribe the task you're waiting for as text, and let an LLM pick the number of seconds for each request. More expensive the better model you clearly need for this. There, your AI pitch.
- petersellers 11mo ago> I agree that the writing in the blog post is more colorful than precise, but sanitizing every bit of expression dulls the internet. Humans invented language for a reason. Where do you draw the line, then? Is a racist screed acceptable to you as long as the following paragraph references technical issues correctly? The language in the blog post is insulting. Imagine how you would feel if you were the person who wrote this code, and now you are being called a monkey in front of thousands of people on the internet. Certainly you've made mistakes in your code before...or are you saying you've always written flawless code without errors? These codes of conduct always seemed a bit superfluous to me, but after reading comments like these I can totally see why they are necessary.
- ssivark 11mo agoWould you perhaps have preferred if they referred to it as "unprofessional" or "sloppy" instead alluding of monkeys? To me all those mean the same thing, except the latter is more flavorful and makes my eyes less likely to glaze over. > Imagine how you would feel if you were the person who wrote this code, and now you are being called a monkey in front of thousands of people on the internet. Er.. so? Why should anyone be allowed into a position of responsibility where their code impacts millions of people if they can't handle the tiniest bit of strong feedback? It was, after all, a pretty egregious bug. > Certainly you've made mistakes in your code before...or are you saying you've always written flawless code without errors? I've definitely made mistakes, and also accept that my output might have on occasion been "monkey-esque". I don't see what's insulting about that; we are all human/animal.
- petersellers 11mo ago> To me all those mean the same thing, except the latter is more flavorful and makes my eyes less likely to glaze over. And to many others, the difference is that one is informative, the other is likely to turn them off of the author and project forever. I noticed that you never answered my question. If this is acceptable to you, where do you draw the line? If you can answer that question, maybe you'll be able to see the flaw in your argument.
- 8n4vidtmkvmk 11mo agoThen blast the product, not the people who built it.
- satoru42 11mo agoThere's no stupid product, only stupid people.
- carlmr 11mo agoThey are blasting the product tbf. The people part is a small part of it. And apparently at least distracting the HN Community from their point.
- darrenf 11mo agoWhich is exactly why to cut it out. If you put salt in my cup of tea, I’m gonna notice and it’s gonna ruin the drink.
- ThomasMidgley 11mo agoThe product was made by people. Or by AI which was made and controlled by people.
- solatic 11mo agoYou cannot divorce a product from the people who built it. The product reflects their priorities and internal group well-being. A different group of people would have built a different product.