mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-01-23 11:47:28 +01:00
Merge #4013
4013: Fix the ranking rule by temporarily disabling an assert in the bucket sort algorithm r=Kerollmops a=Kerollmops This PR temporarily disables an assertion, making the search crash. [I created a tracking issue](https://github.com/meilisearch/meilisearch/issues/4012) to find a better way to fix this. It no longer reverts a20e4d447ce3022443d25223d34d1a7a8e98e31f, which seemed to generate unreachable graphs and make the bucket sort ranking algorithm panic because of entering an unreachable state. We discussed that below in the comments. Temporary fixes #4002, fixes #4006, and fixes #3995. --- It took me approximately 2 days to find the first bad commit just because I'm bad in `git bisect` x `bash`, i.e. [I misused `%1` with `$!` to kill the most recently backgrounded job](https://unix.stackexchange.com/a/340084/212574)... <details> <summary>Here is the script I used to find the invalid commit</summary> ```bash #!/usr/bin/env bash set -x # remove the data rm -rf data.ms # build meilisearch cargo build --release # ignore this commit if it doesn't compile if [[ $? != 0 ]]; then exit 125 fi # index the dump and start from it ./target/release/meilisearch \ --http-addr 'localhost:7705' \ --import-dump $HOME/Downloads/modified-20230822-083016113.dump & # wait 10 sec while it indexes the docs sleep 5 # check if the server crashes on requests echo '{ "q": "rtx 305", "attributesToHighlight": [ "*" ], "highlightPreTag": "<ais-highlight-0000000000>", "highlightPostTag": "</ais-highlight-0000000000>", "limit": 21, "offset": 0 }' | xh 'localhost:7705/indexes/arvutitark_local_orderables/search' last_exit_code=$? # Now kill Meilisearch kill $! # Clean the potential Cargo.lock git checkout . exit $last_exit_code ``` </details> Co-authored-by: Kerollmops <clement@meilisearch.com> Co-authored-by: Clément Renault <clement@meilisearch.com>
This commit is contained in:
commit
cdb4b3e024
@ -91,11 +91,12 @@ pub fn bucket_sort<'ctx, Q: RankingRuleQueryTrait>(
|
||||
/// Update the universes accordingly and inform the logger.
|
||||
macro_rules! back {
|
||||
() => {
|
||||
assert!(
|
||||
ranking_rule_universes[cur_ranking_rule_index].is_empty(),
|
||||
"The ranking rule {} did not sort its bucket exhaustively",
|
||||
ranking_rules[cur_ranking_rule_index].id()
|
||||
);
|
||||
// FIXME: temporarily disabled assert: see <https://github.com/meilisearch/meilisearch/pull/4013>
|
||||
// assert!(
|
||||
// ranking_rule_universes[cur_ranking_rule_index].is_empty(),
|
||||
// "The ranking rule {} did not sort its bucket exhaustively",
|
||||
// ranking_rules[cur_ranking_rule_index].id()
|
||||
// );
|
||||
logger.end_iteration_ranking_rule(
|
||||
cur_ranking_rule_index,
|
||||
ranking_rules[cur_ranking_rule_index].as_ref(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user