Hírolvasó
Security updates for Friday
Michlmayr: Growing open-source projects with a stable foundation
Starting an open source project is easy. Running a successful project, on the other hand, comes with a lot of work and responsibilities, especially if the project attracts a large user base. While open source projects come in all shapes and forms, most projects encounter a similar set of growth issues throughout their life cycles. Because of this, various organizations have arisen to help projects handle these problems; these organizations are generally known as FOSS foundations. This primer covers non-technical aspects that the majority of projects will have to consider at some point. It also explains how FOSS foundations can help projects grow and succeed.
He has also posted a separate research report [PDF] on foundations that support open-source projects.
[$] An update on the UMN affair
Security updates for Thursday
Pete Zaitcev: Swift in 2021
A developer meet-up for OpenStack, known as PTG, occurred a week ago. I attended the Swift track, where somewhat to my surprise we had two new contributors show up.
I got into a habit of telling people that I did not want Swift to end like AFS: develop great software and dead, with nobody using it. Today I looked it up, and what do you know: OpenAFS made a release in June 2020 (and apparently they also screwed up and had to post an emergency release in October).
So, I was chatting with Matt O. at PTG and he said, "oh yeah, we won some contracts when I was at SuSE, Swift was beating the competition." Not entirely a surprise, but it got me thinking: is it too early to declare Swift dead, or even AFS level dead?
Since NVIDIA gobbled up Swift, I was full of concerns for the centralization. NVIDIA uses Swift as a hyperscaler, in support of their own clusters. They already started to divest themselves from Swiftstack's customer base. I envisioned a future where NVIDIA assembles all the core contributors, then fires them all and closes the project. But then I learned that Lustre went through a cycle like that, being acquired, but then sold out to a smaller, more focused company (to DDN).
To sum, I see a possibility for Swift to remain relevant through a three-step strategy, if you will. First, Swift remains open, aligned to technology, and performant. Thanks to that, it wins new deployments (in HPC and Telco in particular). And because of the field use, it will find a corporate stewardship. So, basically, suck less for success.
P.S. Also at PTG I learned that S3 Inventory existed. Seemed like implementing it in Swift could be a satisfying accomplishment for someone new.
[$] LWN.net Weekly Edition for April 29, 2021
"Full disclosure" from the University of Minnesota
Amusingly, one of their attempts to submit a buggy commit was, itself, buggy, yielding a valid change overall.
[$] Rethinking Fedora's compiler policy
A set of stable kernel updates
Security updates for Wednesday
An Interview With Linus Torvalds: Linux and Git (Tag1)
So I think the GPLv2 is pretty much the perfect balance of "everybody works under the same rules", and still requires that people give back to the community ("tit-for-tat"). And everybody knows that all the other people involved are bound by the same rules, so it's all very equitable and fair.
Of course, another part of that is that you also get out what you put in. Sure, you can try to "coast" on the project and be just a user, and that's ok. But if you do that, you also have no control over the project. That can be perfectly fine too, if you really just need a basic operating system, and Linux already does everything you want. But if you have special requirements, the only way to really affect the project is to participate.
Paul E. Mc Kenney: Stupid RCU Tricks: A tour through rcutorture
It is rcutorture's job to make sure that Linux-kernel RCU actually works, and so it is worthwhile getting to know rcutorture a bit better. The following blog posts cover design of, use of, and experience with this test suite:
- Stupid RCU Tricks: So you want to torture RCU? (use)
- Stupid RCU Tricks: So rcutorture is Not Aggressive Enough For You? (use)
- Stupid RCU Tricks: Failure Probability and CPU Count (use)
- Stupid RCU Tricks: Enlisting the Aid of a Debugger (use)
- Stupid RCU Tricks: Torturing RCU Fundamentally, Part I (design)
- Stupid RCU Tricks: Torturing RCU Fundamentally, Part II (design)
- Stupid RCU Tricks: Torturing RCU Fundamentally, Part III (design)
- Stupid RCU Tricks: Torturing RCU Fundamentally, Parts IV and V (design)
- Stupid RCU Tricks: So rcutorture is Still Not Aggressive Enough For You? (use)
- Stupid RCU Tricks: rcutorture fails to find an RCU bug (experience)
- Stupid RCU Tricks: The design of rcutorture (design)
- Stupid RCU Tricks: Which tests do I run??? (use)
- Stupid RCU Tricks: Making Race Conditions More Probable (design)
And here are a few older posts covering rcutorture:
- Hunting Heisenbugs (experience, 2009)
- Hunting More Heisenbugs (experience, 2009)
- Stupid RCU Tricks: RCU Priority Inversion (design, 2010)
- And it used to be so simple... (design, 2011)
- Stupid RCU Tricks: Bug Found by Refactored Tests (design, experience, and use, 2014)
- Stupid RCU Tricks: rcutorture Catches an RCU Bug (experience, 2014)
- Stupid RCU Tricks: rcutorture Accidentally Catches an RCU Bug (experience, 2017)
I hope that this series is helpful, and I further hope that it will inspire more aggressive torturing of other software!