-
Notifications
You must be signed in to change notification settings - Fork 24.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AssertionError "map must be empty" when call _flush/synced after deleting document #27852
Comments
@boaz are you able to take a look at this? |
I already did ;) The problem is that Lucene doesn't consider a delete of a non existent doc a "pending uncommitted change", so we skip executing a commit on the pre-synced flush commit and we also don't fail the synced flush due to pending op. We do however insert the delete into the version map even if the doc is not found due to external versioning semantics. I need to discuss it with @s1monw, I don't' have a solution I'm happy with at the moment |
We used to shrink the version map under an external lock. This is quite ambigious and instead we can simply issue an empty refresh to shrink it. Closes elastic#27852
Elasticsearch version (
bin/elasticsearch --version
):5.6.5 (5.6.4 works fine, so maybe related to #27534 and #27516 and #20498 )
Plugins installed: []
JVM version (
java -version
):java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
OS version (
uname -a
if on a Unix-like system):Mac and Ubuntu
Description of the problem including expected versus actual behavior:
"java.lang.AssertionError: map must be empty" when it not must be thrown
Steps to reproduce:
Provide logs (if relevant):
The text was updated successfully, but these errors were encountered: