Tufin / oasdiff

OpenAPI Diff and Breaking Changes
https://www.oasdiff.com
Apache License 2.0
680 stars 59 forks source link

--flatten-allof stack overflow #585

Open meostyles opened 1 month ago

meostyles commented 1 month ago

We are seeing an issue similar to issue #523 running with the latest version (v1.10.21) and below. @tcdsv I believe this is your area of expertise?

System:

Steps to reproduce the behavior:

  1. The command-line used is ./oasdiff breaking -f yaml --fail-on WARN released-api.json $APP_SCHEMA --flatten-allof | tee api-diff.yaml
  2. Output:
    runtime: goroutine stack exceeds 1000000000-byte limit
    runtime: sp=0xc020d80458 stack=[0xc020d80000, 0xc040d80000]
    fatal error: stack overflow
    runtime stack:
    runtime.throw({0xa97e00?, 0xc00008be68?})
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/panic.go:1023 +0x5c fp=0xc00008be18 sp=0xc00008bde8 pc=0x43b45c
    runtime.newstack()
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/stack.go:1103 +0x5bd fp=0xc00008bfc8 sp=0xc00008be18 pc=0x4566dd
    runtime.morestack()
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/asm_amd64.s:616 +0x7a fp=0xc00008bfd0 sp=0xc00008bfc8 pc=0x46dffa
    goroutine 1 gp=0xc0000061c0 m=3 mp=0xc000075008 [running]:
    github.com/tufin/oasdiff/flatten/allof.collect({_, _, _})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:931 +0x1599 fp=0xc020d80468 sp=0xc020d80460 pc=0x7c7a39
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f6a0d0, {0xc048f53768?, 0x5?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:357 +0x45 fp=0xc020d80aa0 sp=0xc020d80468 pc=0x7c2825
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc048f65380, 0xc020d812d8, {0xc048f2da80, 0x4, 0xc048f61f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc020d80d50 sp=0xc020d80aa0 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc040d7ef30, 0xc020d80f50?, 0xc020d812d8)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc020d80f48 sp=0xc020d80d50 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc040d7ef30?, 0xc048f65380?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc020d80f70 sp=0xc020d80f48 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f6a000, {0xc048f53718?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc020d815a8 sp=0xc020d80f70 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc040d7ef30, 0xc048f65200, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc020d81648 sp=0xc020d815a8 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5fe10, {0xc048f53670?, 0x9?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc020d81c80 sp=0xc020d81648 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc048f64f00, 0xc020d824b8, {0xc048f2da00, 0x4, 0xc048f61f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc020d81f30 sp=0xc020d81c80 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc040d7ef30, 0xc020d82130?, 0xc020d824b8)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc020d82128 sp=0xc020d81f30 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc040d7ef30?, 0xc048f64f00?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc020d82150 sp=0xc020d82128 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5fba0, {0xc048f53618?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc020d82788 sp=0xc020d82150 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc040d7ef30, 0xc048f64d80, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc020d82828 sp=0xc020d82788 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5fad0, {0xc048f53310?, 0x9?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc020d82e60 sp=0xc020d82828 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc048f5de00, 0xc020d83698, {0xc048f2d900, 0x4, 0xc048f61f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc020d83110 sp=0xc020d82e60 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc040d7ef30, 0xc020d83310?, 0xc020d83698)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc020d83308 sp=0xc020d83110 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc040d7ef30?, 0xc048f5de00?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc020d83330 sp=0xc020d83308 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5f040, {0xc048f532a8?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc020d83968 sp=0xc020d83330 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc040d7ef30, 0xc048f5dc80, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc020d83a08 sp=0xc020d83968 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5ef70, {0xc048f53208?, 0x9?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc020d84040 sp=0xc020d83a08 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc048f5d980, 0xc020d84878, {0xc048f2d880, 0x4, 0xc048f61f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc020d842f0 sp=0xc020d84040 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc040d7ef30, 0xc020d844f0?, 0xc020d84878)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc020d844e8 sp=0xc020d842f0 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc040d7ef30?, 0xc048f5d980?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc020d84510 sp=0xc020d844e8 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5ed00, {0xc048f531a8?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc020d84b48 sp=0xc020d84510 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc040d7ef30, 0xc048f5d800, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc020d84be8 sp=0xc020d84b48 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5ec30, {0xc048f530c0?, 0x9?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc020d85220 sp=0xc020d84be8 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc048f5d380, 0xc020d85a58, {0xc048f2d800, 0x4, 0xc048f61f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc020d854d0 sp=0xc020d85220 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc040d7ef30, 0xc020d856d0?, 0xc020d85a58)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc020d856c8 sp=0xc020d854d0 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc040d7ef30?, 0xc048f5d380?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc020d856f0 sp=0xc020d856c8 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5e8f0, {0xc048f53060?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc020d85d28 sp=0xc020d856f0 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc040d7ef30, 0xc048f5d200, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc020d85dc8 sp=0xc020d85d28 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5e820, {0xc048f52fc0?, 0x9?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc020d86400 sp=0xc020d85dc8 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc048f5cf00, 0xc020d86c38, {0xc048f2d780, 0x4, 0xc048f61f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc020d866b0 sp=0xc020d86400 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc040d7ef30, 0xc020d868b0?, 0xc020d86c38)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc020d868a8 sp=0xc020d866b0 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc040d7ef30?, 0xc048f5cf00?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc020d868d0 sp=0xc020d868a8 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5e5b0, {0xc048f52f60?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc020d86f08 sp=0xc020d868d0 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc040d7ef30, 0xc048f5cd80, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc020d86fa8 sp=0xc020d86f08 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5e4e0, {0xc048f52f08?, 0x5?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc020d875e0 sp=0xc020d86fa8 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc048f5cc00, 0xc020d87e18, {0xc048f2d700, 0x4, 0xc048f51f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc020d87890 sp=0xc020d875e0 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc040d7ef30, 0xc020d87a90?, 0xc020d87e18)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc020d87a88 sp=0xc020d87890 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc040d7ef30?, 0xc048f5cc00?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc020d87ab0 sp=0xc020d87a88 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5e410, {0xc048f52ea8?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc020d880e8 sp=0xc020d87ab0 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc040d7ef30, 0xc048f5ca80, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc020d88188 sp=0xc020d880e8 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5e340, {0xc048f52dc0?, 0x9?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc020d887c0 sp=0xc020d88188 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc048f5c600, 0xc020d88ff8, {0xc048f2d680, 0x4, 0xc048f51f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc020d88a70 sp=0xc020d887c0 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc040d7ef30, 0xc020d88c70?, 0xc020d88ff8)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc020d88c68 sp=0xc020d88a70 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc040d7ef30?, 0xc048f5c600?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc020d88c90 sp=0xc020d88c68 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f5e000, {0xc048f52d60?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc020d892c8 sp=0xc020d88c90 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc040d7ef30, 0xc048f5c480, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc020d89368 sp=0xc020d892c8 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc048f57e10, {0xc048f52d00?, 0x7?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc020d899a0 sp=0xc020d89368 pc=0x7c30af
    ...703853 frames elided...
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc00037cf70, {0xc0002d7930?, 0x9?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc040d79c00 sp=0xc040d795c8 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc00037ea80, 0xc0004ba438, {0xc0004ad340, 0x4, 0xc000501f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc040d79eb0 sp=0xc040d79c00 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc0004bef30, 0xc000500460?, 0xc0004ba438)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc040d7a0a8 sp=0xc040d79eb0 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc0004bef30?, 0xc00037ea80?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc040d7a0d0 sp=0xc040d7a0a8 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc00037cea0, {0xc0002d78e0?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc040d7a708 sp=0xc040d7a0d0 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc0004bef30, 0xc00037e900, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc040d7a7a8 sp=0xc040d7a708 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc00037cdd0, {0xc0002d77f8?, 0x9?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc040d7ade0 sp=0xc040d7a7a8 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc00037e480, 0xc0004bb618, {0xc0004ad2c0, 0x4, 0xc000501f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc040d7b090 sp=0xc040d7ade0 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc0004bef30, 0xc000500170?, 0xc0004bb618)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc040d7b288 sp=0xc040d7b090 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc0004bef30?, 0xc00037e480?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc040d7b2b0 sp=0xc040d7b288 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc00037ca90, {0xc0002d7798?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc040d7b8e8 sp=0xc040d7b2b0 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc0004bef30, 0xc00037e300, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc040d7b988 sp=0xc040d7b8e8 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc00037c9c0, {0xc0002d7478?, 0x9?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc040d7bfc0 sp=0xc040d7b988 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc00033b380, 0xc0004bc7f8, {0xc0004ad1c0, 0x4, 0xc0004b5f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc040d7c270 sp=0xc040d7bfc0 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc0004bef30, 0xc0004b58f0?, 0xc0004bc7f8)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc040d7c468 sp=0xc040d7c270 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc0004bef30?, 0xc00033b380?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc040d7c490 sp=0xc040d7c468 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc000337e10, {0xc0002d7428?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc040d7cac8 sp=0xc040d7c490 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc0004bef30, 0xc00033b200, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc040d7cb68 sp=0xc040d7cac8 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc000337d40, {0xc0002d7340?, 0x9?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc040d7d1a0 sp=0xc040d7cb68 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc00033ad80, 0xc0004bd9d8, {0xc0004ad140, 0x4, 0xc0004b5f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc040d7d450 sp=0xc040d7d1a0 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc0004bef30, 0xc0004b55d0?, 0xc0004bd9d8)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc040d7d648 sp=0xc040d7d450 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc0004bef30?, 0xc00033ad80?, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc040d7d670 sp=0xc040d7d648 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc000337a00, {0xc0002d72e0?, 0x0?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc040d7dca8 sp=0xc040d7d670 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.resolveItems(0xc0004bef30, 0xc00033ac00, 0x1?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:480 +0x1c7 fp=0xc040d7dd48 sp=0xc040d7dca8 pc=0x7c38e7
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc000337930, {0xc0002d7248?, 0x13?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:392 +0x8cf fp=0xc040d7e380 sp=0xc040d7dd48 pc=0x7c30af
    github.com/tufin/oasdiff/flatten/allof.mergeProps(0xc040d7ef30, 0xc000334f00, 0xc0004bebb8, {0xc0004dab00, 0x5, 0xc0004b5f80?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:670 +0x25e fp=0xc040d7e630 sp=0xc040d7e380 pc=0x7c4c9e
    github.com/tufin/oasdiff/flatten/allof.resolveNonFalseProps(0xc0004bef30, 0xc0004b53c0?, 0xc0004bebb8)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:604 +0x325 fp=0xc040d7e828 sp=0xc040d7e630 pc=0x7c42c5
    github.com/tufin/oasdiff/flatten/allof.resolveProperties(0xc0004bef30?, 0xc000334f00?, 0x2?)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:653 +0x4a fp=0xc040d7e850 sp=0xc040d7e828 pc=0x7c4a0a
    github.com/tufin/oasdiff/flatten/allof.flattenSchemas(0xc040d7ef30, 0xc0003364e0, {0xc0004b5280?, 0xc000334f00?, 0xa5a020?})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:396 +0x925 fp=0xc040d7ee88 sp=0xc040d7e850 pc=0x7c3105
    github.com/tufin/oasdiff/flatten/allof.mergeCircularAllOf(0xc040d7ef30, 0xc0003364e0)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:104 +0x139 fp=0xc040d7ef00 sp=0xc040d7ee88 pc=0x7c13d9
    github.com/tufin/oasdiff/flatten/allof.Merge({0x0, {0x0, 0x0}, 0xc000413c80, {0x0, 0x0, 0x0}, {{0x0, 0x0}, {0x0, ...}, ...}})
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof.go:89 +0xc7 fp=0xc040d7ef68 sp=0xc040d7ef00 pc=0x7c1[267](https://gitlab.ocado.tech/mockingbird/oiaciemock/oiaciemock/-/jobs/222722881#L267)
    github.com/tufin/oasdiff/flatten/allof.mergeContent(0xc000258060)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof_spec.go:226 +0x118 fp=0xc040d7f1d8 sp=0xc040d7ef68 pc=0x7c9898
    github.com/tufin/oasdiff/flatten/allof.mergeResponseBodies(0xc000480750)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof_spec.go:137 +0x8b fp=0xc040d7f[268](https://gitlab.ocado.tech/mockingbird/oiaciemock/oiaciemock/-/jobs/222722881#L268) sp=0xc040d7f1d8 pc=0x7c8feb
    github.com/tufin/oasdiff/flatten/allof.mergeComponents(0xc0001015e0)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof_spec.go:48 +0x132 fp=0xc040d7f280 sp=0xc040d7f268 pc=0x7c86d2
    github.com/tufin/oasdiff/flatten/allof.MergeSpec(0xc00009e000)
    /home/runner/work/oasdiff/oasdiff/flatten/allof/merge_allof_spec.go:10 +0x31 fp=0xc040d7f528 sp=0xc040d7f280 pc=0x7c82f1
    github.com/tufin/oasdiff/internal.normalDiff.WithFlattenAllOf.func1({0xbe0ae8?, 0xc0001c3f00?}, {0xc0000c35c0, 0x1, 0x1})
    /home/runner/work/oasdiff/oasdiff/load/option.go:34 +0x71 fp=0xc040d7f5a0 sp=0xc040d7f528 pc=0x99fc31
    github.com/tufin/oasdiff/load.NewSpecInfo({0xbe0ae8, 0xc0001c3f00}, 0xc00033f6d0?, {0xc040d7f6a0, 0x3, 0x4119bb?})
    /home/runner/work/oasdiff/oasdiff/load/spec_info.go:51 +0xc3 fp=0xc040d7f5e8 sp=0xc040d7f5a0 pc=0x7cb203
    github.com/tufin/oasdiff/internal.normalDiff({0xbe0ae8, 0xc0001c3f00}, {0xbeb880, 0xc000226160})
    /home/runner/work/oasdiff/oasdiff/internal/diff.go:105 +0x154 fp=0xc040d7f6c8 sp=0xc040d7f5e8 pc=0x99b8b4
    github.com/tufin/oasdiff/internal.calcDiff({0xbeb880, 0xc000226160})
    /home/runner/work/oasdiff/oasdiff/internal/diff.go:82 +0x97 fp=0xc040d7f700 sp=0xc040d7f6c8 pc=0x99b737
    github.com/tufin/oasdiff/internal.getChangelog({0xbeb880, 0xc000226160}, {0xbddf60, 0xc000106020}, 0x2)
    /home/runner/work/oasdiff/oasdiff/internal/changelog.go:50 +0x4a fp=0xc040d7f888 sp=0xc040d7f700 pc=0x99794a
    github.com/tufin/oasdiff/internal.runBreakingChanges({0xbeb880?, 0xc000226160?}, {0xbddf60?, 0xc000106020?})
    /home/runner/work/oasdiff/oasdiff/internal/breaking_changes.go:30 +0x2c fp=0xc040d7f8c0 sp=0xc040d7f888 pc=0x996f2c
    github.com/tufin/oasdiff/internal.getBreakingChangesCmd.getRun.func2(0xc00026b208, {0xc000298230, 0x2, 0xa8e3ae?})
    /home/runner/work/oasdiff/oasdiff/internal/handlers.go:47 +0xee fp=0xc040d7f910 sp=0xc040d7f8c0 pc=0x996d2e
    github.com/spf13/cobra.(*Command).execute(0xc00026b208, {0xc0002981c0, 0x7, 0x7})
    /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:985 +0xaca fp=0xc040d7fa98 sp=0xc040d7f910 pc=0x5b85ea
    github.com/spf13/cobra.(*Command).ExecuteC(0xc00026a908)
    /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:1117 +0x3ff fp=0xc040d7fb70 sp=0xc040d7fa98 pc=0x5b8ebf
    github.com/spf13/cobra.(*Command).Execute(...)
    /home/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:1041
    github.com/tufin/oasdiff/internal.run(0xc00026a908)
    /home/runner/work/oasdiff/oasdiff/internal/run.go:65 +0x18 fp=0xc040d7fb88 sp=0xc040d7fb70 pc=0x99edd8
    github.com/tufin/oasdiff/internal.Run({0xc000128000, 0x9, 0x9}, {0xbddf60, 0xc000106020}, {0xbddf60, 0xc000106028})
    /home/runner/work/oasdiff/oasdiff/internal/run.go:33 +0x335 fp=0xc040d7ff08 sp=0xc040d7fb88 pc=0x99eb95
    main.main()
    /home/runner/work/oasdiff/oasdiff/main.go:10 +0x45 fp=0xc040d7ff50 sp=0xc040d7ff08 pc=0x9a0345
    runtime.main()
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:[271](https://gitlab.ocado.tech/mockingbird/oiaciemock/oiaciemock/-/jobs/222722881#L271) +0x29d fp=0xc040d7ffe0 sp=0xc040d7ff50 pc=0x43df1d
    runtime.goexit({})
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc040d7ffe8 sp=0xc040d7ffe0 pc=0x46fd21
    goroutine 2 gp=0xc000006700 m=nil [force gc (idle)]:
    runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:402 +0xce fp=0xc00006efa8 sp=0xc00006ef88 pc=0x43e34e
    runtime.goparkunlock(...)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:408
    runtime.forcegchelper()
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:326 +0xb3 fp=0xc00006efe0 sp=0xc00006efa8 pc=0x43e1d3
    runtime.goexit({})
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00006efe8 sp=0xc00006efe0 pc=0x46fd21
    created by runtime.init.6 in goroutine 1
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:314 +0x1a
    goroutine 3 gp=0xc000006c40 m=nil [GC sweep wait]:
    runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:402 +0xce fp=0xc00006f780 sp=0xc00006f760 pc=0x43e34e
    runtime.goparkunlock(...)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:408
    runtime.bgsweep(0xc0000381c0)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mgcsweep.go:318 +0xdf fp=0xc00006f7c8 sp=0xc00006f780 pc=0x429d7f
    runtime.gcenable.gowrap1()
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mgc.go:203 +0x25 fp=0xc00006f7e0 sp=0xc00006f7c8 pc=0x41e685
    runtime.goexit({})
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00006f7e8 sp=0xc00006f7e0 pc=0x46fd21
    created by runtime.gcenable in goroutine 1
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mgc.go:203 +0x66
    goroutine 4 gp=0xc000006e00 m=nil [GC scavenge wait]:
    runtime.gopark(0x3cb193?, 0x3b9aca00?, 0x0?, 0x0?, 0x0?)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:402 +0xce fp=0xc00006ff78 sp=0xc00006ff58 pc=0x43e34e
    runtime.goparkunlock(...)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:408
    runtime.(*scavengerState).park(0xf699a0)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc00006ffa8 sp=0xc00006ff78 pc=0x4[277](https://gitlab.ocado.tech/mockingbird/oiaciemock/oiaciemock/-/jobs/222722881#L277)29
    runtime.bgscavenge(0xc0000381c0)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mgcscavenge.go:658 +0x59 fp=0xc00006ffc8 sp=0xc00006ffa8 pc=0x427cd9
    runtime.gcenable.gowrap2()
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mgc.go:204 +0x25 fp=0xc00006ffe0 sp=0xc00006ffc8 pc=0x41e625
    runtime.goexit({})
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00006ffe8 sp=0xc00006ffe0 pc=0x46fd21
    created by runtime.gcenable in goroutine 1
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mgc.go:204 +0xa5
    goroutine 17 gp=0xc000124000 m=nil [finalizer wait]:
    runtime.gopark(0xc00006e660?, 0x426bfc?, 0x20?, 0xba?, 0x550011?)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:402 +0xce fp=0xc00006e620 sp=0xc00006e600 pc=0x43e34e
    runtime.runfinq()
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mfinal.go:194 +0x107 fp=0xc00006e7e0 sp=0xc00006e620 pc=0x41d6c7
    runtime.goexit({})
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00006e7e8 sp=0xc00006e7e0 pc=0x46fd21
    created by runtime.createfing in goroutine 1
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mfinal.go:164 +0x3d
    goroutine 5 gp=0xc000007340 m=nil [GC worker (idle)]:
    runtime.gopark(0xfcba20?, 0x3?, 0x75?, 0x55?, 0x0?)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:402 +0xce fp=0xc000070750 sp=0xc000070730 pc=0x43e34e
    runtime.gcBgMarkWorker()
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mgc.go:1310 +0xe5 fp=0xc0000707e0 sp=0xc000070750 pc=0x420765
    runtime.goexit({})
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000707e8 sp=0xc0000707e0 pc=0x46fd21
    created by runtime.gcBgMarkStartWorkers in goroutine 1
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mgc.go:1234 +0x1c
    goroutine 18 gp=0xc000124380 m=nil [GC worker (idle)]:
    runtime.gopark(0xfcba20?, 0x2?, 0x10?, 0x6c?, 0x0?)
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/proc.go:402 +0xce fp=0xc00006a750 sp=0xc00006a730 pc=0x43e34e
    runtime.gcBgMarkWorker()
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mgc.go:1310 +0xe5 fp=0xc00006a7e0 sp=0xc00006a750 pc=0x420765
    runtime.goexit({})
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00006a7e8 sp=0xc00006a7e0 pc=0x46fd21
    created by runtime.gcBgMarkStartWorkers in goroutine 1
    /opt/hostedtoolcache/go/1.22.5/x64/src/runtime/mgc.go:1234 +0x1c
reuvenharrison commented 1 month ago

Hi @meostyles Could you please provide the specs too? If they are private you can send them on the slack channel.