#prog #go #article
Understanding Real-World Concurrency Bugs in Go (PDF)
In this paper, we perform the first systematic study on concurrency bugs in real Go programs. We studied six popular Go software including Docker, Kubernetes, and gRPC. We analyzed 171 concurrency bugs in total, with more than half of them caused by non-traditional, Go-specific problems. Apart from root causes of these bugs, we also studied their fixes, performed experiments to reproduce them, and evaluated them with two publicly-available Go bug detectors.
<...>
Our study found that message passing does not necessarily make multithreaded programs less error-prone than shared memory. In fact, message passing is the main cause of blocking bugs.
<...>
We believe that message passing offers a clean form of inter-thread communication and can be useful in passing data and signals. But they are only useful if used correctly, which requires programmers to not only understand message passing mechanisms well but also other synchronization mechanisms of Go.
Надо отметить, что результаты могут быть искажены тем, что:
а) выборка только из шести проектов (Docker, Kubernetes, etcd, CockroachDB, BoltDB, gRPC-go);
б) рассматриваются только баги, которые были исправлены.
Understanding Real-World Concurrency Bugs in Go (PDF)
In this paper, we perform the first systematic study on concurrency bugs in real Go programs. We studied six popular Go software including Docker, Kubernetes, and gRPC. We analyzed 171 concurrency bugs in total, with more than half of them caused by non-traditional, Go-specific problems. Apart from root causes of these bugs, we also studied their fixes, performed experiments to reproduce them, and evaluated them with two publicly-available Go bug detectors.
<...>
Our study found that message passing does not necessarily make multithreaded programs less error-prone than shared memory. In fact, message passing is the main cause of blocking bugs.
<...>
We believe that message passing offers a clean form of inter-thread communication and can be useful in passing data and signals. But they are only useful if used correctly, which requires programmers to not only understand message passing mechanisms well but also other synchronization mechanisms of Go.
Надо отметить, что результаты могут быть искажены тем, что:
а) выборка только из шести проектов (Docker, Kubernetes, etcd, CockroachDB, BoltDB, gRPC-go);
б) рассматриваются только баги, которые были исправлены.
ACM Conferences
Understanding Real-World Concurrency Bugs in Go | Proceedings of the Twenty-Fourth International Conference on Architectural Support…
👍9🤯1
#music
Despair, из альбома ORANGE SOUNDS (Zeroranger OST)
В игре хватает неплохой чиптюн-подобной музыки, но этот трек — один из немногих, на мой взгляд, который звучит хорошо и в отрыве от игры
Despair, из альбома ORANGE SOUNDS (Zeroranger OST)
В игре хватает неплохой чиптюн-подобной музыки, но этот трек — один из немногих, на мой взгляд, который звучит хорошо и в отрыве от игры
eebrozgi
Despair, by eebrozgi
from the album ORANGE SOUNDS -ZeroRanger Original Soundtrack-
Тем временем наш корпоративный Mattermost
UPD: скорее всего, это баг Firefox
UPD2: это комбинация кривого CSS (с вендор-специфичными свойствами) и поведения Firefox.
#трудовыебудни
UPD: скорее всего, это баг Firefox
UPD2: это комбинация кривого CSS (с вендор-специфичными свойствами) и поведения Firefox.
#трудовыебудни
🌚7🤔3🙏1😐1
#prog #video
Why does this Rust program leak memory? от Амоса
Спойлер:фрагментация памяти, так что это на самом деле не утечка и не специфично для Rust
Why does this Rust program leak memory? от Амоса
Спойлер:
YouTube
Why does this Rust program leak memory?
Follow me on Mastodon: https://hachyderm.io/@fasterthanlime
Support my work: https://fasterthanli.me/donate
Thanks to Omer from Egypt for submitting this question: https://github.com/mariocynicys/mem-hog
Submit your own questions: https://fasterthanli.me/submit…
Support my work: https://fasterthanli.me/donate
Thanks to Omer from Egypt for submitting this question: https://github.com/mariocynicys/mem-hog
Submit your own questions: https://fasterthanli.me/submit…
🤔3
Forwarded from Dani-myte 🧨 (Delulu Vani)
"oh yes what a great sleep I had"
My neck: "oh ho ho no you didn't"
My neck: "oh ho ho no you didn't"
😢4😁2🤣2💔2🤔1
— Пожалуйста, дайте нам возможность использовать алиасы типов в protobuf
— Лол нет
Source
#prog #suckassstory
— Лол нет
Source
#prog #suckassstory
🤡18🤣9❤🔥2😍2🍌1
#prog #rust хайлайты:
Stabilize async closures (RFC 3668)
И нет, обойтись просто замыканиями, возвращающими async-блоки, не получится
Stabilize async closures (RFC 3668)
И нет, обойтись просто замыканиями, возвращающими async-блоки, не получится
GitHub
Stabilize async closures (RFC 3668) by compiler-errors · Pull Request #132706 · rust-lang/rust
Async Closures Stabilization Report
This report proposes the stabilization of #![feature(async_closure)] (RFC 3668). This is a long-awaited feature that increases the expressiveness of the Rust lan...
This report proposes the stabilization of #![feature(async_closure)] (RFC 3668). This is a long-awaited feature that increases the expressiveness of the Rust lan...
🎉14🍌3❤🔥2
Я — взрослый брутальный мужик, которому нравятся брутальные мужицкие вещи.
(спасибо одной Анастасии ❤️)
(спасибо одной Анастасии ❤️)
❤40🔥8😁1🙏1