[ https://issues.apache.org/jira/browse/SOLR-8292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15005479#comment-15005479 ]
Erick Erickson edited comment on SOLR-8292 at 11/14/15 5:03 PM: ---------------------------------------------------------------- Bah! fis is an InputStream. I'll try to add a bit of logging and trigger this again to see if the size comparison is even relevant. was (Author: erickerickson): Bah! fis is a FastInputStream, not FileInputStream. I'll try to add a bit of logging and trigger this again to see if the size comparison is even relevant. > TransactionLog.next() does not honor contract and return null for EOF > --------------------------------------------------------------------- > > Key: SOLR-8292 > URL: https://issues.apache.org/jira/browse/SOLR-8292 > Project: Solr > Issue Type: Bug > Reporter: Erick Erickson > > This came to light in CDCR testing, which stresses this code a lot, there's a > stack trace showing this line (641 trunk) throwing an EOF exception: > o = codec.readVal(fis); > At first I thought to just wrap reading fis in a try/catch and return null, > but looking at the code a bit more I'm not so sure, that seems like it'd mask > what looks at first glance like a bug in the logic. > A few lines earlier (633-4) there's these lines: > // shouldn't currently happen - header and first record are currently written > at the same time > if (fis.position() >= fos.size()) { > Why are we comparing the the input file position against the size of the > output file? Maybe because the 'i' key is right next to the 'o' key? The > comment hints that it's checking for the ability to read the first record in > input stream along with the header. And perhaps there's a different issue > here because the expectation clearly is that the first record should be there > if the header is. > So what's the right thing to do? Wrap in a try/catch and return null for EOF? > Change the test? Do both? > I can take care of either, but wanted a clue whether the comparison of fis to > fos is intended. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org