Backporting changes is clearly hard, which is a good reason to avoid it

Recently, the Linux 6.0 kernel series introduced a significantbug in 6.0.16 . The bug was introducedwhen a later kernel change was backported to 6.0.16 with an accidentalomission ( cf ).There are a number of things you can draw from this issue, but thebig thing I take away from it is that backporting changes ishard . The corollary of this is that the more changes you askpeople to backport (and to more targets), the more likely


Some weird effects you can get from shared Let's Encrypt accounts

Recently on the Fediverse I said :

How Let's Encrypt (well, the ACME protocol) handles proving 'you' havecontrol over a domain when you request a TLS certificate involving ithas some interesting potential effects if you move your websites fromone machine to another.

(Authorization is tied to a LE account, not a host, and at least usedto last for 60 days. If a LE account is shared between hosts, all ofthem are fishing in the same authorization pool, regardless of who


Your server BMCs can need to be rebooted every so often

Over on the Fediverse I said :

A sysadmin tip: if your BMC/IPMI is doing weird things, restart (reboot) it. Server BMCs are littlecomputers running ancient versions of Linux with software that'sprobably terribly written and they stay running forever, which meansall sorts of opportunities for slow bugs. Reboot away!

This is brought to you by the BMC with a KVM-over-IP that wouldn'taccept '2' entered on the (virtual) keyboard in any way or form.


Ubuntu 22.04 LTS servers and phased apt updates

I was working on getting one of our 22.04 LTS servers up to date,even for packages we normally hold, when I hit a mystery andposted about it on the Fediverse :

Why does apt on this 22.04 Ubuntu machine want to hold back a bunch ofpackage updates even with '--with-new-pkgs --ignore-hold'? Who knows,it won't tell me why it doesn't like any or all of:

open-vm


A browser tweak for system administrators doing (web) network debugging

As a system administrator (and sometimes an ordinary user of theweb), I periodically find myself trying to work out why I or peoplearound here can't connect tosome website or, sometimes, a portion of the website doesn't work.It turns out that there's a tweak you can make to Firefox and Chrome(and probably other browsers) that makes this somewhat easier totroubleshoot.

(We once had an incident where Google Cloud Platform stoppedtalking to some of our IPs . Some websites


Sometimes it actually is a kernel bug: bind() in Linux 6.0.16

There's a common saying and rule of thumb in programming (possiblyoriginating in the C world) that it's never a compiler bug, it'sgoing to be a bug in your code even if it looks crazy or impossible.Like all aphorisms it's not completely true, because compilers havebugs, but it's almost always the case that you haven't actuallyfound a compiler bug and it's something else. You can say a similarthing about weird system issues (not


My Git settings for carrying local changes on top of upstream development

For years now I've been handling my local changes to upstreamprojects by committing them and rebasing on (Git) pulls , and it's been a positive experience.However, over the years the exact Git configuration settings Iwanted to make this work smoothly have changed (due to things suchas Git 2.34's change in fast-forward pull settings ), and I've never written down all of thesettings in one place. Since I recently switched to Git for a bigrepository


Link: X Window System Basics

X Window System Basics ( via ) is an interactivewalk through of the basic elements of X, starting with windowsthemselves and various things to do with them. This is a topicthat's very relevant to me since I deal with old X programs and anold X window manager that have things like old fashioned iconificationof windows . Fiddling around withthe interactive demos (which require Javascript) is a great way tosee in a concrete way how the nuts and bolts work.


In Python, zero is zero regardless of the number type

I recently saw a Fediverse post by Mike Samuel with a Python popquiz that tripped me up:

@shriramk Since I know you appreciate Python pop quizzes:

my_heterogeneous_map = {    (  0.0): "positive zero",    ( -0.0): "negative zero",    (    0): "integer zero",}print("my_heterogeneous_map=%r\n" % my_heterogeneous_map)del my_heterogeneous_map[False]

Let's Encrypt's complex authorization process and multi-name TLS certificates

One of the things that people don't like about Let's Encrypt 's ACME protocol for getting TLS certificatesis that it's complicated (even beyond using JSON Web Tokens (JWT) ). Part of thiscomplexity is that it famously requires you to create and registeran account, and the actual authorization process to get a TLScertificate for a domain involves this account in a multi-stepprocess . You can readily come up withsimpler single-step processes (such as the one in Another look