Notes/CodeInstances

CodeInstances Adds Group, Fingerprinting Failing Runs So Repeats of One Bug Collapse

CodeInstances 0.4 adds group, the next step on its plan. codeinstances group failures/ gives every failing run a fingerprint and puts the runs that fail the same way together, biggest group first, with when each was first and last seen. A pile of 40 red runs becomes the two or three bugs behind them. The release post has the details, and binaries are out for Linux, macOS and Windows.

A fingerprint is how the run ended, its error and the calls that failed. The error part reads Go panics and fatal errors, failed Go tests, Python tracebacks and Node.js and Java traces for their top frames. Then times, ids, numbers, ports and query values are blanked out so repeats match, while status codes stay. The ids carry a version, fp1, so a later change to the rules can’t be mistaken for the same bug.

82 Go tests pass with a clean race detector run. In the recorded demo, group put three failing runs into two groups in 10 ms. An independent review before release caught every failing go test run and every Node.js crash sharing one fingerprint, and random test-server ports splitting groups. All of that is fixed and tested. Sharing and storing instances is next on the plan.