Talks to Watch

Ubuntu Slaughters Kittens | BSD Now 103

39K views · Aug 20, 2015 · 2:00:28 · 4 HN recommenders · 12 mentions · discussed 2015–2024

A BSD Now episode featuring a long interview with Joyent CTO Bryan Cantrill on dtrace, ZFS, pkgsrc, containers and more. It includes his rant on why Linux epoll is flawed and stories from Sun.

Why Hacker News points people here: HN links it for Cantrill's entertaining epoll versus kqueue rant and his stories, such as bricking a machine with rm -rf.

“There's a good (and wildly entertaining) discussion/rant about it in this BSD Now episode”HN comment, 2016

What Hacker News said 12

RecommendsprotomythOct 2015

“The video is very good and you can follow-up with”

Follow-up viewing on ZFS and licensing

Full comment

Probably not, since that would have allowed someone to add GPL-only code to it which couldn't be distributed with the whole. The video is very good and you can follow-up with this video

in “Things you can do with ZFS [video]” · view on HN
RecommendsmyzticNov 2015

“Quite a funny and smart guy ;)”

Interview with Cantrill on his background and Sun in the 90s

Full comment

Amusing Interview with Bryan Cantrill (regarding his background and he also shares some stories) this video Also very informative (about what happened at Sun in the 90s, dtrace, ...) Quite a funny and smart guy ;)

in “Run containers on bare metal already [video]” · view on HN
RecommendsGracanaAug 2016

“There's a good (and wildly entertaining) discussion/rant about it in this BSD Now episode”

Entertaining rant on why Linux epoll gets it wrong

Full comment

This sounds like something straight out of the Unix Hater's Handbook. :) But epoll is not the fault of Unix. Linux gets it wrong, but others do not. There's a good (and wildly entertaining) discussion/rant about it in this BSD Now episode: this video

in ““Node.js is one of the worst things to happen to the software industry” (2012)” · view on HN
RecommendsbeefhashFeb 2018

“I also found the somewhat more casual BSDnow podcasts that featured Mr. Cantrill quite insightful”

Casual podcast episodes featuring Cantrill

Full comment

I also found the somewhat more casual BSDnow podcasts that featured Mr. Cantrill quite insightful[1,2,3]. He shows up around 15 or 30 minutes in. [1] this video [2] link [3] link

Cites itmyzticFeb 2016

“(quite entertaining)”

Cantrill tells the story of bricking a machine with rm -rf

Full comment

Reminds me of Cantrill, more so his story when they completely bricked a machine of a fellow worker once and then took a close look at the standard[1]. # rm -rf / Among other things, it will delete the current directory. In the standard it does not say what to delete first, In their implementation it will try to remove the current directory first -> undefined behaviour -> it fails. The logic behind it: When is it really your goal to delete your entire machine, mostly never, you don't type it out by accident, but shell scripts with unset variables might do it. And regarding Poettering's response[2] (not trying to start a fight): It's Poettering, what do you expect? You can hate or love systemd, but part of why people hate it is his intellectual arrogance in everything he does. [1] He tells the story somewhere in here this video (quite entertaining) [2] link

Cites itprotomythFeb 2016

“I believe Solaris did the right thing and made it not work.”

Cantrill on Solaris refusing rm -rf /

Full comment

For the few use cases where a system admin wants to "rm -rf /", there are hundreds of bad scripts that can screw up a system. I believe Solaris did the right thing and made it not work. this video

in “Linux 4.5-rc5: efivarfs fixed to avoid “rm -rf /” bricking UEFI” · view on HN
Cites itbcantrillMar 2016

“we want as many other systems as possible take this approach.”

Cantrill's earlier argument for the LX zones approach

Full comment

Exciting stuff! This is (very?) similar what with LX branded zones in SmartOS[1][2] -- and, as I've said before[3] -- we want as many other systems as possible take this approach. That said, we also know how long a haul this is, and how detail-intensive it is. So I've got a bunch of questions. ;) First, is the source available? Second, how much of the One Hundred Language Quine Relay[4] runs successfully? (For us, running that sucker to completion was an important early milestone.) Assuming that runs, my next questions are all common apps/programs that we knew to be especially thorny for one reason or another: Go, strace, tcpdump, systemd, etc. Anyway, it's great to see the SmartOS approach so broadly validated by Microsoft -- and hope that they both finish the job and open source it all! [1] link [2] link [3] this video [4] link

in “Microsoft and Canonical partner to bring Ubuntu to Windows 10” · view on HN
Cites itgizmoFeb 2017

“a straightforward implementation behaves in a way you never want”

Cantrill explains why epoll behavior is broken

Full comment

The linked interview with Bryan Cantrill gives a good explanation of why it's broken: a straightforward implementation behaves in a way you never want, with bizarre behavior where the kernel can wake up a thread with an accept() on a fd that has already been closed. linux should just have adopted kqueue or an IOCP model instead. this video

in “Epoll is fundamentally broken” · view on HN
Cites itAnnatarJan 2018

“watch it to the end.”

Full comment

this video - watch it to the end. How long "people have been doing it" has nothing to do with the quality, it's a fallacy. They can't code if they can't even get the basics like polling or startup / shutdown correctly.

in “LinuxBoot: Linux as Firmware” · view on HN
Cites itprotomythOct 2018

“Brian Cantrill on epoll”

Cantrill on epoll semantics

Full comment

link While a best effort has been made to mimic the Linux semantics, there are some semantics that are too peculiar or ill-conceived to merit accommodation. In particular, the Linux epoll facility will -- by design -- continue to generate events for closed file descriptors where/when the underlying file description remains open. For example, if one were to fork(2) and subsequently close an actively epoll'd file descriptor in the parent, any events generated in the child on the implicitly duplicated file descriptor will continue to be delivered to the parent -- despite the fact that the parent itself no longer has any notion of the file description! This epoll facility refuses to honor these semantics; closing the EPOLL_CTL_ADD'd file descriptor will always result in no further events being generated for that event description. Brian Cantrill on epoll this video

in “Maintaining 65k open connections in a single Ruby process” · view on HN
Cites iteqvinoxNov 2021

“The BSDs have kqueue which according to some people is actually better”

Cited for kqueue being better than epoll

Full comment

Well, not a question. POSIX and Linux are not the same. There is no epoll in POSIX, it's a Linux addition. The BSDs have kqueue which according to some people is actually better [cf. this video ]. But kqueue isn't POSIX either. Only poll() and select() are...

in “The Demikernel Datapath OS Architecture” · view on HN
Cites iteductionNov 2024

“famous epoll/kqueue rant”

Cantrill's famous epoll/kqueue rant

Full comment

He mentions Bryan Cantrill in there and I can’t resist posting his famous epoll/kqueue rant: this video I know this is related but maybe someone smarter than me can explain how closely it relates (or doesn’t) to this issue which seems more general (iirc Cantrill was talking about fs events not child processes generally)

in “Way too many ways to wait on a child process with a timeout” · view on HN