Live Devlog

Field Notes

Short notes from production: gotchas, lessons, and workarounds I've earned the hard way running the Mcaster1 ecosystem. Written so the next person doesn't lose an evening to the same trap.

All notes

5 entries

BIND9 dynamic zones — why `rndc reload` lies

A `.jnl` file is all it takes

If a BIND zone has a journal file, rndc reload returns "dynamic zone" and silently rejects your edit. The fix is freeze → edit → thaw — and forgetting the thaw breaks every DDNS update silently.

When "heap corruption" is actually stale `.o` files

`0x64756f6c63` decodes to "cloud"

Mcaster1Webmail crashed with what looked like classic heap corruption. The crash address spelled "cloud" in ASCII. The fix was `make clean`. Stale object files were linking against an old class layout.

Debian 13 cloud images need UEFI on q35/i440fx

BIOS booting loops in GRUB

Debian 13 cloud images (Trixie) boot in an endless GRUB loop on KVM with BIOS firmware. Switch the VM to UEFI (`--boot uefi`) and they come up clean.

Hyper-V Linux offline root reset via qemu-nbd

When passt-fronted libguestfs fails on Hyper-V

You can't use virt-customize / libguestfs against Hyper-V .vhdx because passt networking fails. Use qemu-nbd on mc1desktop, operate on the base .vhdx (not .avhdx), btrfs Fedora needs subvol=root. id_rsa 1024-bit gets rejected by modern sshd — use ed25519.

K8s nodes forgetting swap was off

swapoff -a wears off at reboot

Kubelet refuses to start when swap is enabled. `swapoff -a` fixes it until you reboot — then `/etc/fstab` re-enables it and the cluster falls over. Check fstab before chasing IP / cert / etcd.