@cks@mastodon.social avatar

cks

@cks@mastodon.social

That cks. Overcommitted sysadmin, photographer, bicyclist, and other multitudes. I write a lot of words for a programmer. he/him

This profile is from a federated server and may be incomplete. Browse more on the original instance.

bitprophet, to random
@bitprophet@social.coop avatar

Really wanna replace my central air with a bunch of ceiling-cassette minisplit heads or something.

Cooling the entire house at night: dumb. Having downstairs be chilly to keep upstairs livable: also dumb.

cks,
@cks@mastodon.social avatar

@bitprophet Apparently per-room cooling is a common thing in Japan (or maybe broadly in Asia). You do sort of need ways to close off space for maximum effect; open plan space and open staircases could be problems.

Maybe those old house/apartment layouts with lots of walls and doors had some sense to them after all. Close the kitchen door, keep the heat in there...

0xabad1dea, to random

Nice old lady: it’s best cold, ja?
Me: haha, well,
Nice old lady: oh you’re a foreigner you don’t think it’s cold at all
Me: correct

(I think it’s cold for Almost June but quite warm on an absolute scale)

cks,
@cks@mastodon.social avatar

@0xabad1dea I will never forget being in Italy in the spring as a young kid, with me in short sleeves and shorts and the locals in (light) sweaters. Even as a kid I couldn't miss that we had very different perceptions of the same temperature.

glyph, to random
@glyph@mastodon.social avatar

Is there a name for the cognitive bias or even a trope where you feel like human infrastructure—buildings, books, roads, microchips, plastics—are a sort of homogenous naturally-occurring goo that replenishes itself rather than being the product of human labor? A lot of urban fantasy & horror SF draws on this: libraries that go on forever, “the backrooms”, impractically vast digital networks in cyberpunk, epiphenomenal mystical roads in Kentucky Route Zero…

cks,
@cks@mastodon.social avatar

@bitprophet @glyph Nino Cipri's LitenVerse series?

cks, to random
@cks@mastodon.social avatar

I obsessively wear my bike helmet even on very tiny rides not because I think you need to always wear a helmet, but because I'm an absent-minded person who can make myself a creature of habits. My bike club requires us to have helmets for all rides, and the most reliable way of making sure I never absently turn up to a ride without my helmet is to wear it all the time I'm on the bike, so it will feel immediately wrong if I ever set off without my helmet on.

cks,
@cks@mastodon.social avatar

Bike helmets in general are a consolation prize, not a safety measure. If you get hit or get into an accident, they may make the situation less terrible than it would otherwise be. The right answer is to be shielded from the bad situation in the first place, for example protected, separated bike infrastructure.

cks, to random
@cks@mastodon.social avatar

I sometimes think about all the CPU cycles that are used on Linux machines to have the kernel convert integers to text for /proc and /sys files and then your metrics system convert the text back to integers. (And then sometimes convert the integers back to text when it sends them to the metrics server, which is at least a different machine using CPU cycles to turn text back into integers (or floats).)

It's accidents of history all the way down.

cks, to random
@cks@mastodon.social avatar

My cynicism says that the answer to 'how do you leak an OEM private key for a trusted boot system, one that shouldn't be stored where it's leakable' is 'the security of trusted boot is not a priority for PC motherboard vendors'. They treated the Intel OEM private key like it was unimportant because it was unimportant to them. And they're probably right, unless MSI suffers severe consequences from this.

cks, to random
@cks@mastodon.social avatar

On the positive side, drgn[1] is easy to install in a venv and it will indeed let me grub through live kernel structures, specifically NLM locking structures. On the negative side, the NLM locking structures themselves don't have the contents that I expected, so I am no closer to being able to tell which NFS clients (theoretically) hold what locks.

1: https://github.com/osandov/drgn

cks,
@cks@mastodon.social avatar

Current status: the limitation of me being able to work out which file locks are held by which NFS clients is my understanding of all of the kernel data structures involved, not my ability to get information from the kernel. Since the NFS server kernel unlocks held locks when a client reboots, this information is somewhere, but I don't know where, and it seems to be indirect.

cks,
@cks@mastodon.social avatar

I now understand enough about the Linux kernel data structures and (probably) drgn to dump a list of all NFS locks held on a server with what client is holding them. It's very good that drgn is Python and I can write code for this, because there sure are a lot of indirect steps involved (I may be missing a more direct one).

cks,
@cks@mastodon.social avatar

Having used drgn to gain enough knowledge of how the kernel data structures interconnect, I've now been able to write a brute force bpftrace script that hooks into printing /proc/locks to dump additional information about which NFS client (probably) owns a NFS lock. It's not as good as a drgn based solution but we can use it right away and without kernel debugging symbols.

cks,
@cks@mastodon.social avatar

I've realized that I was about to be the person online who writes something saying 'oh yeah as part of this I worked out how to do <potentially interesting thing>' without writing up how to do that, so today's techblog entry is probably going to be all about Linux kernel NFS NLM data structures. And not in an exciting way. Better that than the (frustrating for future Internet searchers) alternative.

cks,
@cks@mastodon.social avatar

Blog post: Finding which NFS client owns a lock on a NFS server via Linux kernel delving https://utcc.utoronto.ca/~cks/space/blog/linux/NFSServerLockClients
In which we find the 'struct nlm_host' we want through an assortment of convoluted paths from either generic file locks or lockd/NLM's internal global data structure of its file locks. The former is better.

cks, to random
@cks@mastodon.social avatar

Is it paranoia to run 'dnf update' in a screen session after my X server crashed abruptly yesterday while I was doing such a dnf update (among other things)? Yes, yes it is, but I'm still doing it.

(The 'dnf update' appeared to complete okay, and yes I ran 'rpm -aV' afterward and carefully picked through the results.)

cks,
@cks@mastodon.social avatar

@penguin42 It looks like it was, based on dnf.log and so on. It was a relatively big update, as I was on my work machine and doing updates for the first time for five days or so.

cks, to random
@cks@mastodon.social avatar

It's always DNS. Even when it's not supposed to be DNS, it's DNS.

Today we learned just how many systems here fail (and how) when our internal DNS resolvers abruptly fall over and stop resolving even our internal names for mysterious reasons. For example, all of our NFS mount authentication is hostname based, not IP based, and various administrative tools assume our central site filesystem is always available if the system is up.

(Also Exim became rather unhappy for reasons.)

cks, to random
@cks@mastodon.social avatar

This is my expression when local (and exclusive) flock() locks on a Linux NFS server don't conflict with POSIX locks obtained over NFS through lockd/NLM/etc. Because these NFS locks may be from flock() on clients.

Augh. This is robot logic and it means 'don't run anything on your NFS servers'.

cks, to random
@cks@mastodon.social avatar

Recent Firefox Nightlies periodically have the tab die when rendering Grafana dashboards, especially when the dashboard updates. If this isn't just me, I can only hope it gets fixed before it propagates into a Firefox release.

(I have no clue how to go about tracking this down and submitting any bug reports to Mozilla, since it's not reproducible and happens in my rather busy main browser.)

cks,
@cks@mastodon.social avatar

@penguin42 Sadly nothing; all that says is 'no crash reports have been submitted'. There's no 'submit a crash report' button when the tab crashes.

cks,
@cks@mastodon.social avatar

@penguin42 Also, I just checked out the overall browser console while this was happening and there was nothing reported there either. Just poof. (I haven't tried the dev tools console but I suspect it doesn't survive tab crashes.)

cks,
@cks@mastodon.social avatar

@penguin42 It's certainly not the entire browser crashing and these days Firefox has a zillion processes involved (not just threads, but it has those too). Some recoverable process or thread somewhere is failing (or being terminated), but as a non-specialist finding it without Firefox's help is probably impossible.

cks, to random
@cks@mastodon.social avatar

Today's learning experience: if you have a per-host email rate limit of one email per minute over some length of time (say 60 in 60 minutes), you might not want to do that; instead, you probably want it a bit bigger than one a minute. Consider: something has a crontab entry that spits out a message every time it runs, and it runs once a minute, and then something else on the machine sends an email. Boom: over the ratelimit, and it's probably not coming down for a while.

cks,
@cks@mastodon.social avatar

@lanodan Sadly burst exceptions don't help if there's a crontab entry like that, because it's always going to be sending once a minute (until the owner finds it and fixes it). It's a constant rate source so you need the long term limit to be under its sending rate.

cks, to random
@cks@mastodon.social avatar

Toronto bike commute status: on the positive side, not drizzled on as much as I could have been if I'd dawdled more. On the negative side, drizzled on, and I wasn't wearing the bike rain pants I'd carefully packed because I was going to beat any immediate rain, right?

cks, to random
@cks@mastodon.social avatar

It's a good thing that we don't actually depend on Grafana Loki, because otherwise I would be setting things on fire right now since 2.8.1 is failing for us (on the production server, it's fine on the test server, thanks acres) with "empty ring" errors that 2.7.x did not have. Does the Loki documentation explain how to configure an all-in-one server so this doesn't happen? No, not it does not.

cks,
@cks@mastodon.social avatar

Reverting to our previous Loki 2.7.x server binaries and configuration does not fix the "empty ring" errors, which cause Loki to completely fail ingestion. I guess we are about to stop using Grafana Loki for some time, and probably reset our database from scratch, again.

Good thing this isn't our only historical record of logs, isn't it.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • rosin
  • mdbf
  • tacticalgear
  • osvaldo12
  • InstantRegret
  • DreamBathrooms
  • modclub
  • magazineikmin
  • thenastyranch
  • khanakhh
  • Youngstown
  • slotface
  • kavyap
  • JUstTest
  • ethstaker
  • tester
  • GTA5RPClips
  • Durango
  • normalnudes
  • cubers
  • ngwrru68w68
  • everett
  • provamag3
  • cisconetworking
  • anitta
  • Leos
  • lostlight
  • All magazines