← Latest papers
💻 computer science

Where did we fail? -- Reproducing build failures in embedded open source software

This paper introduces PhantomRun, a unified abstraction layer and dataset that standardizes the retrieval and faithful reproduction of CI build logs and metadata for embedded open source software, enabling large-scale, reproducible studies of historical build failures with high reconstruction accuracy.

Original authors: Han Fu, Andreas Ermedahl, Sigrid Eldh, Kristian Wiklund, Philipp Haller, Cyrille Artho

Published 2026-05-01
📖 4 min read☕ Coffee break read

Original authors: Han Fu, Andreas Ermedahl, Sigrid Eldh, Kristian Wiklund, Philipp Haller, Cyrille Artho

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you are a detective trying to solve a mystery that happened in a factory last year. The factory makes complex gadgets (embedded software) that combine hardware and code. Every time a new gadget design is tested, the factory runs a massive, automated assembly line (Continuous Integration, or CI). Sometimes, the assembly line breaks, and the machine stops with an error message.

The problem? The factory is chaotic. It uses different tools, different robots, and different blueprints for every single test. When a test fails, the machine prints a long, messy receipt (the build log) explaining why it failed. But here's the catch: these receipts are thrown away after a few days, and the specific robot that printed them might not even exist anymore. If you want to study why the machine broke six months ago, you can't just look at the receipt; you have to try to rebuild the exact same factory setup to see if it breaks again.

This is exactly the problem the paper "Where did we fail?" tackles. The authors built a tool called PhantomRun to solve this.

The Problem: The "Ghost" Factory

In the world of embedded software (like the code inside your car, thermostat, or medical device), building the software is like trying to bake a cake in a kitchen that changes its layout every time you walk in.

  • The Ingredients Change: The tools (compilers) and parts (dependencies) update constantly.
  • The Kitchen Changes: The factory uses different robots (runners) and blueprints (configurations) for every test.
  • The Evidence Vanishes: When a test fails, the error log is like a receipt that gets shredded after a week.

Because of this, if a developer wants to study a failure from the past to understand how to fix it, they often can't. The "kitchen" they need to recreate no longer exists.

The Solution: PhantomRun (The "Time-Traveling" Blueprint)

The authors created PhantomRun, which acts like a magical, standardized blueprint for these chaotic factories. Instead of trying to find the original, messy robot, PhantomRun builds a perfect, isolated "time capsule" (a container) that mimics the exact conditions of the original failure.

Think of it like this:

  • Original Scenario: You try to recreate a specific dish from a restaurant that closed down, but you don't know the exact brand of flour they used or the temperature of their oven. You guess, and the dish tastes different.
  • PhantomRun Scenario: PhantomRun is a machine that scans the old restaurant's order ticket, figures out the exact brand of flour and oven temperature, and builds a temporary, perfect replica of that kitchen in your basement. It then cooks the dish again to see if it fails in the exact same way.

What They Did

The team took this tool and applied it to four major open-source hardware projects (like Zephyr and RTEMS, which are operating systems for smart devices). They looked at over 4,600 failed tests from the past.

They asked two main questions:

  1. Can we rebuild the factory? (Can we recreate the failure?)
  2. Does it break the same way? (Is the new failure identical to the old one?)

The Results

The results were surprisingly successful:

  • 91.8% Success Rate: They managed to successfully recreate the "time capsule" factory and run the test again for nearly 92% of the failures.
  • 98% Accuracy: When they did recreate it, the result was almost always the same. If the original test failed, the new one failed. If it succeeded, the new one succeeded.
  • The "Noise" Factor: The only differences were tiny, harmless things, like the time stamp on the log or the order in which two unrelated steps happened. The core "error message" (the reason the cake burned) was identical.

Why Some Failed

The few times they couldn't recreate the failure (about 8% of the time), it wasn't because their tool was bad. It was because the "ingredients" were gone forever.

  • Missing Hardware: Some tests needed a specific physical chip or board that no longer exists.
  • Lost Tools: Some software tools used to build the code were deleted from the internet or updated so much they became incompatible.
  • Secret Sauce: Some projects used private, proprietary tools that the researchers couldn't access.

The Big Takeaway

The paper concludes that we can turn these fleeting, messy error logs into permanent, reliable research tools. By using PhantomRun, developers and researchers can now look back at historical failures, study them in a controlled environment, and learn from them without needing the original, chaotic factory setup.

In short: PhantomRun turns "oops, the log is gone" into "let's rebuild the exact moment it broke and study it." This helps us understand why our smart devices fail and how to make them more reliable in the future.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →