HNHacker News
TopNewBestAskShowJobs

tych0

883 karma · joined May 21, 2012

https://tycho.pizza, https://github.com/tych0
submissionscomments
tych0··on Ask HN: What Are You Working On? (July 2026)
I live in the southwest, didn't realize this data was available, so thank you. It would be super interesting to have a (heat) map of it all.
tych0··on I was recently diagnosed with anti-NMDA receptor encephalitis
Hey Andrew, I've been an admirer of your work for a long time. Sounds awful, glad you are on the mend.
tych0··on The Qtile Window Manager: A Python-Powered Tiling Experience
[disclaimer, maintainer here]

> Doesn't this require the environment to be owned by root? Doesn't it make more sense to leave things that are in /opt as root-owned anyway? (Or at least, change them back after running the installation as an unprivileged user.)

No, it doesn't require that, it just means your user-owned binary will be exec'd by root. But if you want the root -> user owned indirection, you can set `Exec=/etc/X11/xinit/Xsession`, which will exec your ~/.xsession as your user, and then you can keep a local install.

> Will any random greeter program just naturally pick up the contents of /usr/share/xsessions, then?

Ones that support x11 do, yes.

> So does it just ignore all your other dotfiles? Can I safely just try this out regardless of my usual WM/DE choices?

We try to read XDG_* things where relevant, e.g. themes and icons. But generally yes, once you point your xsession at qtile, we only use our config file.

tych0··on Debugging a FUSE deadlock in the Linux kernel
> Hi Tycho. I was The Guy at LSS who tested positive for COVID about 12 hours after we sat next to each other at that Japanese restaurant in Vancouver the week before last. I really hope you didn't catch it. So far, to my knowledge, my "blast radius" is just me.

Hi Mike. So far so good for me.

> It looks like you were able to figure things out through some combination of /proc poking, code inspection, and LKML querying. Out of curiosity, would it be feasible for you to have tried enabling some of the kernel hacking options such as WQ_WATCHDOG or DETECT_HUNG_TASK? Do you think that would have sped up your investigation?

We do have these both enabled, and have alerts to log them in the fleet. I have found it very useful for saying "there's a bug", but not generally applicable in debugging it. However, we wouldn't catch these things without user reports if we didn't have those tools.

Something that might (?) be useful is something like lockdep when there's hung tasks. It wouldn't have helped in this case, since it was a bug in signals wakeup, but I e.g. in the xfs case I cited at the bottom maybe it would.

tych0··on Debugging a FUSE deadlock in the Linux kernel
> Or am I misunderstanding you?

Oh, I see, you're suggesting exactly,

> (Another maybe-interesting thing would be to just delete that check.)

I agree.

tych0··on Debugging a FUSE deadlock in the Linux kernel
> Couple of things: 1. Should prepare_to_wait_event check if the task is in PF_EXITING, and if so, refuse to wait unless a specific flag is provided? I'd be curious if you just add a kprobe to prepare_to_wait_event that checks for PF_EXITING, how many cases are valid?

I would argue they're all invalid if PF_EXITING is present. Maybe I should send a patch to WARN() and see how much I get yelled at.

> Shouldn't it wake up, even if in its in PF_EXITING, that would trigger as reassessment of the condition, and then the `__fatal_signal_pending` check would make it return -ERESTARTSYS.

No, because the signal doesn't get delivered by complete_signal(). wants_signal() returns false if PF_EXITING is set. (Another maybe-interesting thing would be to just delete that check.) Or am I misunderstanding you?

> Shouldn't it be "ShdPnd"

derp, fixed, thanks.

tych0··on Debugging a FUSE deadlock in the Linux kernel
I think they definitely should not. I've considered sending a patch that adds a WARN() or some syzkaller test for it or something, especially now that I've seen it in other filesystems.
tych0··on Debugging a FUSE deadlock in the Linux kernel
Author here (hi Sargun), it's not really about rediscovering killable vs. unkillable waits, and any confusion is probably a result of my poor writing.

The crux of it is that once you've called exit_signals() from do_exit(), signals will not get delivered. So if you subsequently use the kernel's completions or other wait code, you will not get the signal from zap_pid_ns_processes(), so you don't know to wake up and exit.

There's a test case here if people want to play around: https://github.com/tych0/kernel-utils/tree/master/fuse2

tych0··on An overview of single-purpose Linux distributions
docker-the-company maintained https://github.com/linuxkit/linuxkit when I worked there. I have no idea who maintains it now, but it looks like it is still active (presumably still docker-the-company, since their adopters list [1] lists docker desktop).

[1]: https://github.com/linuxkit/linuxkit/blob/master/ADOPTERS.md

tych0··on FTX tapped into customer accounts to fund risky bets, setting up its downfall
And at least in SBF/Alameda's case, they did, and you can google it. IIUC it was basic arbitrage, the hard part was figuring out how to interface with Japan's banks.

Maybe the guy is a bad dude, I don't have a horse in that race. But lots of trading strategies that have worked in the past are well known.

tych0··on The history of sending signals to Unix process groups
Use the freezer cgroup to freeze everything, then kill it all off however you like.
tych0··on Oracle is the #1 contributor to the core of Linux in 5.18
> Could it be that some Oracle employed contributors are using a different email when submitting pull requests?

Yes, and if you contribute from an e-mail address that Greg K-H's scripts don't understand, you get an e-mail from him asking you to disclose your employer if you're willing.

Some companies mandate you contribute from your corporate address, and it is impossible to contribute from some corporate e-mail accounts, since they don't allow SMTP access for use with git send-email. For example, my understanding is that this is the reason for the linux.ibm.com subdomain, though someone at IBM can probably elaborate.

LWN's numbers are probably pretty close to accurate, as I think most people disclose. I haven't read TFA, but I guess Oracle is counting only commits to kernel/+fs/+net/ or something like that.

tych0··on Show HN: Porting OpenBSD Pledge() to Linux
> Note that seccomp has limited visibility into recvmsg / sendmsg args because bpf can't dereference syscall arg pointers.

I guess landlock can't help you here since it is still mostly about filesystem access right now, but maybe someday? It looks like "minimal network access control" is on the long term roadmap: https://landlock.io/

tych0··on PyCon US 2022 Highlights
Hi Matt, speaking of PyCon, thanks for your talk on Qtile many years ago. It remains one of the funniest lightning talks I've seen, and also influenced my talk style to some degree.

https://youtu.be/r_8om4dsEmw

tych0··on The Colorado Safety Stop is the law of the land
I have news for you: drivers don't think laws apply to them either. I've nearly been killed several times because of it, and I know people who have been killed.

RIP Dan Spira, one of the faster guys in Denver at the time of his death: https://www.bicyclecolorado.org/join-us/donate/remembering-d...

Thanks to Bicycle Colorado's advocacy, perhaps I won't have drivers intentionally trying to side swipe me next time I ride through stop signs in a safe (and legal!) manner.

tych0··on Debian still having trouble with merged /usr
> Files that were previously in /usr/bin or in /bin can now be found in EITHER of these locations, since one symlinks the other. So no previous expectation was really broken.

I don't know, I just hit breakage the other day. I have /usr/bin before /usr in my path (which is the default on Ubuntu at least); I have muscle memory to use dpkg -S `which $foo` to figure out which package a binary is, but that doesn't work if dpkg thinks the binary is in /bin (e.g. ping), since it'll ask dpkg who installed /usr/bin/ping, which is nobody.

It is small fiddly things like this all over people's packaging and personal scripts that break.

tych0··on Degoogle: Alternatives to Google products, privacy tips, tricks, links
Fastmail has great calendar (CalDAV), contacts (whatever the open protocol for this is) support in addition to their e-mail. I migrated from Google Calendar & friends several years ago and have had no issues.
tych0··on Fork() is evil; vfork() is goodness; afork() would be better; clone() is stupid
The problem with this argument is that the set of programs that just fork() and then exec() is fairly small. Sure, shells are small and do this, but then the article argues that shells are a good use of fork().

In larger programs, you're forking because you need to diverge the work that's going to be done and probably where it's going to be done (maybe you want to create a new pid ns, you need a separate mm because you're going to allocate a bunch, whatever). Maybe the argument is that programs should never do this? I don't buy that. Then there's a lot of string-slinging through exec().

tych0··on Is it time to remove reiserfs?
In my experience, integration with products is not really that hard. I've used sqlite3 bindings in half a dozen languages over the years, and they are generally fairly robust.
tych0··on Linux kernel heap buffer overflow in fs_context.c since version 5.1
Yeah, I'd just use whatever the output of ./scripts/get_maintainer.pl says. It will also suggest any recent committers to that area of the code, which I've found useful in the past. Usually I put the maintainers as To:, and everyone else as Cc:.
tych0··on Linux kernel heap buffer overflow in fs_context.c since version 5.1
I'd say sending the patch with git send-email --in-reply-to=<the header of your last email> is good. A patch is much easier to apply than write :)
tych0··on Linux kernel heap buffer overflow in fs_context.c since version 5.1
Standard advice is to wait two full weeks, then bump your thread (or rebase the patch and send a v2 if there's new conflicts with the maintainer's tree).
tych0··on Ask HN: Those making $500/month on side projects in 2022 – Show and tell
This is pretty cool, though it would be nice if it worked with caldav instead of just google calendar :)
tych0··on Order your rapid tests from the USPS (US only)
They wouldn't accept my .pizza e-mail address as valid though, so there's still room for improvement :)
tych0··on SEC charges App Annie and its founder with securities fraud
Companies/directors can (and do, see e.g. Theranos/Elizabeth Holmes) settle without admitting fault.

Presumably the goal is to lower the number of three letter agencies investigating you.

tych0··on Joe Rogan, confined to Spotify, is losing influence
Seems like GP might be talking about Joe Rogan.
tych0··on A thorough introduction to bpftrace
I use it a lot to figure out why things fail. For example, what if you get an -EPERM from mount()? Was it denied by seccomp, an LSM, because you don't own the user namespace that owns your mount namespace?

strace will tell you it failed, but bpftrace can help understand why.

Note that I said "help": bpftrace can tell you "this function failed with EPERM", but e.g. ovl_fill_super() can fill with EPERM for lots of different reasons. So it's a bit like printf debugging. And you're SOL if the error is generated within that function or from an inlined function :(

tych0··on Welcome to Libera Chat
You might try it again later; my coworkers and I have been having problems registering all morning.
tych0··on Berkshire Hathaway’s stock price is too high for Nasdaq computers
I think you get tickets with BRK.B too. A friend of mine sells the tickets he gets on ebay and says that's a bigger dividend than the stock will ever pay :)
tych0··on Linux: Don't get me started on “executives”
> Or does this refer to something else, besides safety checks?

I think it largely refers to the Spectre + Meltdown class of attacks, which caused the kernel to introduce a whole class of fixes (retpolines, etc.).

Page 1 of 7Next →