Bazel-Caching, Remote Execution und glibc-Versionskonflikt führen zu Produktionsabsturz

2025-09-21
Bazel-Caching, Remote Execution und glibc-Versionskonflikt führen zu Produktionsabsturz

Dieser Artikel beschreibt einen Produktionsabsturz, verursacht durch die Interaktion von Bazel-Caching, Remote Execution und unterschiedlichen glibc-Versionen in verschiedenen Umgebungen. Ein Entwickler baut und testet eine Änderung lokal, CI nutzt den Cache zum Erstellen eines Release-Builds, aber die Bereitstellung in der Produktion schlägt aufgrund einer fehlenden 'GLIBC_2.28'-Version fehl. Der Artikel analysiert, wie glibc-Versionsunterschiede die Reproduzierbarkeit von Builds beeinträchtigen und präsentiert Lösungen: Ein schneller Hack beinhaltet das Erfassen lokaler und entfernter glibc-Versionen und die Auswahl der höheren Version für die C++-Toolchain; eine robustere Lösung beschränkt das Schreiben in den Action-Cache und erzwingt Builds auf Remote-Executors; die ultimative Lösung verwendet Sysroots, installiert mehrere glibc-Versionen in allen Umgebungen und gibt explizit an, welche zu verwenden ist. Der Artikel betont die Wichtigkeit reproduzierbarer Builds und empfiehlt Lösungen je nach Kontext.

Mehr lesen

sandboxfs: Ein gescheiterter Versuch, Bazels macOS-Sandboxing zu beschleunigen

2025-06-13
sandboxfs: Ein gescheiterter Versuch, Bazels macOS-Sandboxing zu beschleunigen

Ein Google-Ingenieur versuchte, die Leistung von Bazels Sandboxing auf macOS mit dem Projekt sandboxfs zu verbessern. sandboxfs nutzte ein Filesystem im User-Space, um virtuelle Dateihhierarchien effizienter zu erstellen und ersetzte damit Bazels ursprünglichen Ansatz mit symbolischen Links. Aufgrund der Tatsache, dass die Leistung von symbolischen Links auf macOS nicht der größte Engpass war, sowie aufgrund von Implementierungsproblemen und Änderungen im macOS-Ökosystem wurde sandboxfs letztendlich aufgegeben. Trotzdem glaubt der Autor, dass die Kernidee – die effiziente Erstellung von Sandboxes – immer noch vielversprechend ist, um die Leistungsprobleme von Bazels Sandboxing auf macOS zu lösen.

Mehr lesen
Entwicklung

Bonanza: Eine Cloud-native Zukunft für Bazel?

2025-04-10
Bonanza: Eine Cloud-native Zukunft für Bazel?

Zum 10. Jahrestag von Bazel zieht ein Projekt namens Bonanza die Aufmerksamkeit auf sich. Es zielt darauf ab, Bazel komplett zu überarbeiten und den gesamten Build-Prozess in die Cloud zu verlagern, um die Schwächen von Bazel sowohl bei großen als auch bei kleinen Projekten zu beheben. Bonanza erreicht wirklich inkrementelle Builds, indem es alle Operationen, einschließlich der Abhängigkeitsverwaltung und des Erstellens des Build-Graphen, remote ausführt, was zu deutlich schnelleren Build-Zeiten führt. Obwohl es sich noch in der Proof-of-Concept-Phase befindet, bieten sein Design und sein technisches Potenzial eine neue Richtung für zukünftige Build-Systeme und deuten auf eine Cloud-native Build-Ära hin.

Mehr lesen
Entwicklung

Praxisnahe Grafik ohne X11: Ein tiefer Tauchgang in NetBSDs wscons

2025-01-17
Praxisnahe Grafik ohne X11: Ein tiefer Tauchgang in NetBSDs wscons

Dieser Artikel beschreibt, wie man Low-Level-Grafikprogrammierung unter NetBSD ohne X11 oder Wayland durch Nutzung des wscons-Frameworks durchführt. Der Autor demonstriert den Zugriff und die Manipulation des Framebuffers, um Grafiken direkt auf dem Terminal zu zeichnen und die Tastatureingabe zu verarbeiten. Dies umgeht traditionelle Grafiksysteme und ermöglicht die direkte Hardware-Interaktion, ideal für ressourcenbeschränkte Umgebungen wie Embedded-Systeme, mit schnelleren Bootzeiten und reduziertem Ressourcenverbrauch.

Mehr lesen
Entwicklung Framebuffer

Code Reviews: Eine Erfolgsgeschichte

2025-01-15
Code Reviews: Eine Erfolgsgeschichte

Ein Ingenieur, X, bei Google, arbeitete an zwei Projekten mit deutlich unterschiedlichen Code-Review-Prozessen. Das erste Projekt mit minimalen Reviews führte zu einem fehlerhaften Release. Das zweite Projekt mit einem gründlichen und strengen Review-Prozess, obwohl anfänglich langsamer, resultierte in einem fehlerfreien Release und einem erheblichen Lernzuwachs für X, was sich positiv auf seine Karriere auswirkte. Der Artikel argumentiert, dass Code Reviews nicht von Natur aus antagonistisch sind; entscheidend sind die beteiligten Personen und die Art und Weise, wie das Tool eingesetzt wird, um die Codequalität und das Mentoring zu verbessern.

Mehr lesen
Entwicklung

Der NetBSD-Buildsystem noch einmal betrachtet: Ein mächtiges, aber auch esoterisches Werkzeug

2024-12-31
Der NetBSD-Buildsystem noch einmal betrachtet: Ein mächtiges, aber auch esoterisches Werkzeug

Dieser Blogbeitrag befasst sich erneut mit dem NetBSD-Buildsystem, einem mächtigen, aber etwas esoterischen System, das auf einer Kombination aus BSD make und Shell-Skripten basiert. Es ermöglicht die Erstellung eines vollständigen NetBSD-Systems von Grund auf auf nahezu jeder POSIX-Plattform, ohne Root-Rechte, und unterstützt Cross-Compilation für verschiedene Architekturen. Der Autor beschreibt detailliert den Build-Prozess, einschließlich der Toolchain-Generierung, der Build-Struktur, des destdir-Mechanismus, von Builds ohne Root-Rechte und der Erstellung von Distributionsmedien. Obwohl er die Nachteile wie ineffiziente inkrementelle Builds und ein unvollkommenes Abhängigkeitsmanagement anerkennt, hebt der Autor die Stärken des Systems und seine Designphilosophie hervor. Der Autor schließt mit der Erwähnung eines aktuellen Embedded-Projekts, das NetBSD verwendet, und untersucht die Möglichkeit, das Buildsystem auf Bazel zu migrieren, um die Effizienz zu steigern.

Mehr lesen
Entwicklung Buildsystem

Synology DS923+ vs. selbstgebauter FreeBSD/ZFS NAS: Ein detaillierter Vergleich

2024-12-19
Synology DS923+ vs. selbstgebauter FreeBSD/ZFS NAS: Ein detaillierter Vergleich

Julio Merino vergleicht einen Synology DS923+ mit seinem selbstgebauten NAS, der FreeBSD 14 mit ZFS verwendet. Sein benutzerdefinierter NAS nutzt eine leistungsstarke ThinkStation-Workstation mit reichlich CPU und RAM, während der DS923+ ein kompaktes, dediziertes NAS-Gerät mit Synologys DSM und btrfs ist. Beide bieten vergleichbare IOPS und Netzwerkleistung, aber der DS923+ zeichnet sich durch geringere Geräuschentwicklung und Stromverbrauch aus. DSM bietet eine benutzerfreundliche Erfahrung und robuste Backup-Lösungen, während FreeBSD/ZFS mehr manuelle Konfiguration und Wartung erfordert. Letztendlich bevorzugt der Autor den DS923+ aufgrund des erhöhten Gefühls der Sicherheit bei der Datenverwaltung.

Mehr lesen
Hardware