28 comments

  • Rishi1238 6 hours ago

    Interesting project. How does it handle services with multiple dependencies (queues, caches, third-party APIs)? Can it recreate enough of the production environment to reproduce intermittent bugs?

    • kirtivr 5 hours ago

      We either mock or fake out the interfaces.

      I much prefer faking to mocking, because that still preserves a lot of the real-world behavior relevant to prod bugs.

      A full prod reproduction would be a holy grail, but probably only attainable for complex distributed systems if we have access to a prebuilt staging-like environment.

      We're traversing the bridge between mocks, fakes and staging at this time.

  • kumari_b 5 hours ago

    Interesting approach. The investigaion phase is usually the most time-consuming part of debugging. Curious how well this works on large, distributed systems.

    • kirtivr 5 hours ago

      Nginx, Caddy, Flink and Firefox are some applications where we we've managed to consistently fix and reproduce reported bugs.

      Of course, we did not send the PRs to the repos seeing how they're already overloaded with them.

      Nginx for example has 181 open PRs right now, but they only merge 2 or 3 in a day.

      • kumari_b 4 hours ago

        Thanks for the clarification. Those are some interesting projects to benchmark against.

  • majestic8 8 hours ago

    This looks very useful! What type of sandbox are you using? How does the mocking work?

    • kirtivr 7 hours ago

      On Linux, we rely on a chroot-ed workspace at this time - although we are working on a prototype using the new landlock kernel interface (https://github.com/Zouuup/landrun).

      OSX is the best, we use the in-built (seatbelt) sandbox via sandbox-exec.

      For Windows, we use WSL containers when available.

      By default, if a safe sandbox environment is not available, we inform the user that a repro is not possible in the current conditions.

    • kirtivr 6 hours ago

      On how does the mocking work, that's a really interesting question.

      We do a lot of AST parsing - for both code and build configuration languages. Even then, we still have to rely on the LLM to figure out a lot of the details.

      Making this work reliably for non-frontier models and codebases that don't have existing test harnesses is where a lot of the design work goes in.

  • kirtivr 10 hours ago

    A different approach that we took to root causing bugs that you may find interesting is that we first try to reproduce the bug before coming up with a fix for it.

    This is essentially a (RCA <-> Repro test case) loop until we're recreated the bug. If our attempts are not converging and we’re on the wrong track, we ask for human input.

  • vasmiReddy 7 hours ago

    Nice idea! The reproduce → verify loop is what makes this stand out.

    • kirtivr 4 hours ago

      Thank you!

      are you using any AI tools to debug productions bugs at this time?

  • sriramkalluri3 9 hours ago

    Great tool to triage the reported issues in bugs and fix them swiftly. This will definitely improves your productivity.

  • Bheemaneni 7 hours ago

    This seems especially used for teams handling production incidents.

    • kirtivr 6 hours ago

      It's really nice to hear that.

      FixBugs was built because while investigating prod incidents, I had an epiphany.

      SWEs build tools to solve all types of problems, but we ourselves use the flakiest tools.

      While working at Google for example I was surprised GDB support for any type of binary debugging was almost non-existent.

  • raghu16 9 hours ago

    Also, How is the VSCode extension reproducing the bug on my machine? That sounds dangerous.

    • kirtivr 9 hours ago

      Oh the repro runs in an isolated sandbox, and all interactions outside the sandbox (with lets say other services or databases) are mocked. The repro harness doesn't have access outside of it.

      This also allows us to inject various types of faults, which is helpful with debugging more complex systems.

  • rKulaSekhar 8 hours ago

    Love the focus on verification instead of just generating fixes.

  • Hemashrie 3 hours ago

    Really like the reproduce-first approach.

  • divvsaxena 8 hours ago

    Awesome man cool!

  • mundanevoice 10 hours ago

    It seems like a cool idea.

    • kirtivr 10 hours ago

      Thanks a lot!

      I think FixBugs is most useful during high volume bug triage. This is where having a low false-positive async debugging agent is most helpful.

  • ShaikMohammad 7 hours ago

    Very cool.Reproducing production bugs is usually the hardest part.

    • kirtivr 5 hours ago

      War story time? xD

  • sriramkalluri3 9 hours ago

    Great tool to triage and fix the issues in bug. Improves your productivity massively.

  • yizluo 9 hours ago

    very nice tool! helpful and I love it

    • kirtivr 9 hours ago

      Thank you so much.

      are you using any AI tools to debug productions issues at this time?