You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tests 144, 411 permanently fails with crash, when run 'release test' on binaries made with clang-13.
That is quite serious, as our tests run being built with 'traditional' gcc, but our releases are now made with clang.
That means, that all of them are vulneable (i.e. will crash) on deep queries.
Experimenting reveals correct size of the frame SPH_EXTNODE_STACK_SIZE as 0x120 (=288 both, for debug and release)
Current value is 160 for release and 0x120 for debug.
A bit of details 'how to know'.
Run deep query under gdb
When it stop, ensure, stack is full of similar calculation frames, as
...
#1750 0x0000000000b11ccd in ExtOr_c::CollectHits (this=0x7f38bc794bb0, pDocs=0x7f38bc26b180) at /builds/manticoresearch/dev/src/searchnode.cpp:3628
#1751 0x0000000000b08b15 in ExtNode_c::GetHits (this=0x7f38bc794bb0, pDocs=0x7f38bc26b180) at /builds/manticoresearch/dev/src/searchnode.cpp:1319
#1752 0x0000000000b11ccd in ExtOr_c::CollectHits (this=0x7f38bc795a90, pDocs=0x7f38bc26b180) at /builds/manticoresearch/dev/src/searchnode.cpp:3628
#1753 0x0000000000b08b15 in ExtNode_c::GetHits (this=0x7f38bc795a90, pDocs=0x7f38bc26b180) at /builds/manticoresearch/dev/src/searchnode.cpp:1319
...
In gdb, info registers, then up, up, then info registers again (as we see, frames pattern includes 2 calls interleaved, so we see 1-nd and 3-rd to know stack delta between same calls). Notice the value of rsp. That is:
Tests 144, 411 permanently fails with crash, when run 'release test' on binaries made with clang-13.
That is quite serious, as our tests run being built with 'traditional' gcc, but our releases are now made with clang.
That means, that all of them are vulneable (i.e. will crash) on deep queries.
Experimenting reveals correct size of the frame SPH_EXTNODE_STACK_SIZE as 0x120 (=288 both, for debug and release)
Current value is 160 for release and 0x120 for debug.
A bit of details 'how to know'.
info registers
, thenup
,up
, theninfo registers
again (as we see, frames pattern includes 2 calls interleaved, so we see 1-nd and 3-rd to know stack delta between same calls). Notice the value ofrsp
. That is:Here we see final delta as 0x1b0-0x090, that is 0x120.
The text was updated successfully, but these errors were encountered: