You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Zach Chen (Jira)" <ji...@apache.org> on 2021/01/30 19:45:00 UTC

[jira] [Comment Edited] (LUCENE-9686) TestDirectIODirectory#testFloatsUnderflow can fail assertion

    [ https://issues.apache.org/jira/browse/LUCENE-9686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17275703#comment-17275703 ] 

Zach Chen edited comment on LUCENE-9686 at 1/30/21, 7:44 PM:
-------------------------------------------------------------

Thanks [~julietibs]! 

Hi [~dweiss], thanks for reviewing! I took a second look at my patch, and realized that the randomization I added into the test case later has made it much less clear about the corner case the patch is handling here: seeking and reading an empty file. I just pushed a commit to update that.

With regard to throwing EOFException from *refill*, for typical file with size > 0, the EOFException can already be triggered inside *refill;* however, for file with size == 0, it may require some larger refactoring, mostly due to how *refill* is being called in both *seek* and *readByte*, and the internal *filePos* field that's being maintained. Let me spend some time to give it a try.


was (Author: zacharymorn):
Thanks [~julietibs]! 

Hi [~dweiss], thanks for reviewing! I took a second look at my patch, and realized that the randomization I added into the test case later has made it much less clear about the corner case the patch is handling here: seeking and reading an empty file. I just pushed a commit to update that.

With regard to throwing EOFException from *refill*, for typical file with size > 0, the EOFException can already be triggered inside *refill;* however, for file with size == 0, it may require some larger refactoring, mostly due to how *refill* is being called in both *seek* and *readByte*, and the internal *filePos* field that's being maintained. Let me spend some time to give it a try.

 

 

> TestDirectIODirectory#testFloatsUnderflow can fail assertion
> ------------------------------------------------------------
>
>                 Key: LUCENE-9686
>                 URL: https://issues.apache.org/jira/browse/LUCENE-9686
>             Project: Lucene - Core
>          Issue Type: Test
>            Reporter: Julie Tibshirani
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Reproduction line:
> {code}
> ./gradlew test --tests TestDirectIODirectory.testFloatsUnderflow -Dtests.seed=73B56EAB13269C91 -Dtests.slow=true -Dtests.badapples=true -Dtests.locale=haw-US -Dtests.timezone=America/Inuvik -Dtests.asserts=true -Dtests.file.encoding=UTF-8
> {code}
> I didn't have the chance to look deeply, but it seems like the wrong exception type is being thrown:
> {code:java}
>  junit.framework.AssertionFailedError: Unexpected exception type, expected EOFException but got java.nio.BufferUnderflowException
>         at __randomizedtesting.SeedInfo.seed([73B56EAB13269C91:1FD75ACA1CD83E9C]:0)
>         at org.apache.lucene.util.LuceneTestCase.expectThrows(LuceneTestCase.java:2895)
>         at org.apache.lucene.util.LuceneTestCase.expectThrows(LuceneTestCase.java:2876)
>         at org.apache.lucene.store.BaseDirectoryTestCase.testFloatsUnderflow(BaseDirectoryTestCase.java:291)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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