andrewrk / poop

Performance Optimizer Observation Platform
MIT License
788 stars 50 forks source link

integer overflow when trying to print result of subsequent benchmark #25

Open tobijdc opened 1 year ago

tobijdc commented 1 year ago

Hey, just tried poop for the first time and

I just wanted to check peak_rss of different zstd compression levels.

sudo /home/tobias/.local/bin/poop "zstd -3 -f java_error_in_idea_.hprof" "zstd -6 -f java_error_in_idea_.hprof" "zstd -9 -f java_error_in_idea_.hprof"

When finishing the second benchmark (after the 3rd run, when he should post the results), there was a panic with integer overflow. Running it again (after some time) it got through the second benchmark but crashed on the third :man_shrugging:

error

I am using x86_64-linux-poop 0.3.0 on Ubuntu 22.04.

Let me know if I can provide you any additional information.

dweiller commented 1 year ago

Here is an error trace (there could be other similar cases):

thread 717791 panic: integer overflow
/path/to/poop/src/main.zig:420:35: 0x22ff42 in printMeasurement__anon_5830 (poop)
    try w.writeByteNTimes(' ', 42 - ("  measurement      ".len + count + 3));
                                  ^
/path/to/poop/src/main.zig:297:37: 0x234aab in main (poop)
                try printMeasurement(tty_conf, stdout_w, measurement, field.name, first_measurement, commands.items.len);
                                    ^
/path/to/zig/zig-linux-x86_64-0.11.0-dev.3395+1e7dcaa3a/lib/std/start.zig:609:37: 0x22b46e in posixCallMainAndExit (poop)
            const result = root.main() catch |err| {
                                    ^
/path/to/zig/zig-linux-x86_64-0.11.0-dev.3395+1e7dcaa3a/lib/std/start.zig:368:5: 0x22aed1 in _start (poop)
    @call(.never_inline, posixCallMainAndExit, .{});
    ^

If all causes of overflows are similar to this, I think #24 probably fixes them.