shahrs87 commented on code in PR #907:
URL: https://github.com/apache/lucene/pull/907#discussion_r905458119


##########
lucene/core/src/java/org/apache/lucene/index/CheckIndex.java:
##########
@@ -1378,7 +1378,7 @@ private static Status.TermIndexStatus checkFields(
       computedFieldCount++;
 
       final Terms terms = fields.terms(field);
-      if (terms == null) {
+      if (terms == Terms.EMPTY) {

Review Comment:
   I tried to remove this if (terms == Terms.EMPTY) statement but many tests 
failed.
   Example of failing test: 
`org.apache.lucene.codecs.lucene90.TestLucene90NormsFormat#testUndeadNorms`
   Stack trace:
   ```
   > Task :lucene:core:test FAILED
   WARNING: A command line option has enabled the Security Manager
   WARNING: The Security Manager is deprecated and will be removed in a future 
release
   
   org.apache.lucene.codecs.lucene90.TestLucene90NormsFormat > testUndeadNorms 
FAILED
       org.apache.lucene.index.CheckIndex$CheckIndexException: field "content" 
should have hasFreqs=true but got false
           at 
__randomizedtesting.SeedInfo.seed([2A7308C15B316422:27A64CAC8EDF759E]:0)
           at 
app//org.apache.lucene.index.CheckIndex.checkFields(CheckIndex.java:1437)
           at 
app//org.apache.lucene.index.CheckIndex.testPostings(CheckIndex.java:2428)
           at 
app//org.apache.lucene.index.CheckIndex.testSegment(CheckIndex.java:999)
           at 
app//org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:714)
           at 
app//org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:552)
           at 
app//org.apache.lucene.tests.util.TestUtil.checkIndex(TestUtil.java:343)
           at 
app//org.apache.lucene.tests.store.MockDirectoryWrapper.close(MockDirectoryWrapper.java:909)
           at 
app//org.apache.lucene.tests.index.BaseNormsFormatTestCase.testUndeadNorms(BaseNormsFormatTestCase.java:698)
           at 
java.base@17.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)
           at 
java.base@17.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
           at 
java.base@17.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.base@17.0.2/java.lang.reflect.Method.invoke(Method.java:568)
           at 
app//com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1754)
           at 
app//com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:942)
           at 
app//com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:978)
           at 
app//com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:992)
           at 
app//org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:44)
           at 
app//org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
           at 
app//org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
           at 
app//org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
           at 
app//org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
           at app//org.junit.rules.RunRules.evaluate(RunRules.java:20)
   ```
   
   I think the problem is:
   Even though the `content` field is deleted, it is still present in fields 
returned by `reader#getPostingsReader` 
[here](https://github.com/apache/lucene/blob/main/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java#L2417)
 
   Since the returned terms is EMPTY it has `hasFreqs` set to `false` but since 
this field exists in fields and the indexOptions set to 
`DOCS_AND_FREQS_AND_POSITIONS` it is expecting hasFreqs to true. 



-- 
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.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to