vagetablechicken opened a new issue #4488:
URL: https://github.com/apache/incubator-doris/issues/4488


   I met a check failed here:
   
https://github.com/apache/incubator-doris/blob/76a04de6c44ab959d3f5c32e7711b5e429beb98d/be/src/olap/cumulative_compaction.cpp#L122-L123
   
   The root cause is the wrong config:
   `config::min_cumulative_compaction_num_singleton_deltas > 
max_cumulative_compaction_num_singleton_deltas`
   So in pick_input_rowset(), we may get an _input_rowsets(size>= 
max_compaction_score). And clear _input_rowsets in here:
   
https://github.com/apache/incubator-doris/blob/a7422ee142138970729912bdcb401504b9dd5b64/be/src/olap/cumulative_compaction_policy.cpp#L359-L361
   because `min_compaction_score > max_compaction_score`.
   
   So we may get an empty _input_rowsets & 
`transient_size=max_compaction_score<condidate_size` & 
`_last_delete_version.first == -1`. And then, go to the 
`CHECK(candidate_rowsets.size() == transient_size)`.
   
   There are two approaches to this.
   1. check min&max_compaction_score in pick_input_rowset(), cuz they are 
mutable configs, and can't check when update config.
   1. delete this CHECK. Actually, I don't understand why we need 
`candidate_rowsets.size() == transient_size)`. Dose it means we need to ensure 
it must loop through the candidate_rowsets? If so, it should be more readable.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to