Automation & AI
Fourteen hours on one build
A microarchitecture mismatch and an NFS fix.
Problem
A build host in my fleet needed a full system closure built for a specific machine. Eleven builds failed. Each attempt was long, each failure looked different, and the build was blocking work on the rest of the fleet. What should have been a routine task turned into a fourteen-hour debugging session.
Diagnosis
The failures traced to two stacked problems. First, a microarchitecture mismatch: the build was targeting the wrong CPU generation for the machine, so compiled output failed in ways that looked random build flakiness rather than a configuration error. Second, the storage path the build ran over was slow for the calculation phases, dragging every retry out and making the diagnosis process itself expensive. The two problems masked each other: slow builds plus intermittent failures read like a compiler fault.
Action
- Worked the mismatch iteratively, eleven failed closures deep, until the CPU targeting was the proven cause
- Applied a live NFS fix, an attribute-cache bind-mount on the store path, which sped up the calculation phases without a reboot
- Wrote the whole saga up as a 505-line handoff: live state per host, runbook commands, and a lessons-learned section
- Followed up later when
/proc/cpuinfoshowed the machine is Excavator generation (bdver4), not the btver2 originally documented, and retuned the build cache and CI accordingly
Outcome
- The build path was fixed and the fleet unblocked
- The storage bottleneck was removed for every subsequent build
- A documented, honest failure record exists instead of tribal memory
- The follow-up caught a wrong assumption in my own documentation and corrected it
What I'd do differently
Pending
Reflection to be written by Jupiter.
0
Open a window and its geometry shows up here.
No events yet.
The desk blanks itself after a quiet spell, then runs one of thirteen effects named after the IRIX screen savers. Move the pointer or press a key to wake it; lock it and only Unlock brings it back.
Settings load with the desktop.
The environment
About this desktop
jupiter.au is set up as a working desktop: the Toolchest, the objects, the status strip and the windows stay with you on every page. Drag a title bar to move a window, pull any edge or corner to resize it, drag it to the side of the desk to snap it into place, and right-click a title bar for that window's menu. Right-click the desk itself for the root menu.
Toolchest
The panel in the corner carries the classic seven menus — Desktop, Find, People, Applications, Shared Resources, System and Help — above the command field. Collapse it to the chip with the arrow in its title strip, or press Ctrl+K to bring it back.
Desks
Four desks, as 4Dwm kept them. Each surface belongs to the desk it was opened on — switch with the status strip, the Toolchest, or Ctrl+Alt+1…4. The Desks Overview window maps all four at once.
The catalogue
The Icon Catalogue lists every application the desk knows — click to select, double-click to open, right-click for the icon's own menu. The objects on the right edge can be dragged into a new order, and the one that will take the drop turns royal blue.
Customise
Desktop → Customise… holds the background (signal wash, flat or dim), the bevels (flat 2026 or the classic two-line), and the way to the Screen Saver. Choices stick to this machine.
Screen saver
Thirteen effects named after the IRIX screen savers, with a timeout, a Random mode and an optional lock. Open the Screen Saver window to change them.
Desks
Four desks, as 4Dwm kept them. Each surface belongs to the desk it was opened on — switch with the status strip, the Toolchest, or Ctrl+Alt+1…4.
Winterm
Type help for the commands — ls, open,theme, date.
Loading the desks…
12 icons shown; sorted by Name
No audio hardware on this host.
Background
Bevels
Screen saver
The timeout, the effect and the lock live in the Screen Saver window.
