[ 
https://issues.apache.org/jira/browse/SOLR-13622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hoss Man reopened SOLR-13622:
-----------------------------

Uwe's jenkins servers weren't being included in my reports for over a month – 
that's why you didn't see any StreamExpressionTest failures in my reports when 
you looked last month.

in reality Uwe's windows builds started picking up a new type of failure: that 
file handles are being leaked (and thus the test framework can't close them)...

{noformat}
   [junit4]   2> NOTE: reproduce with: ant test  
-Dtestcase=StreamExpressionTest -Dtests.seed=607225F2726A5625 -Dtests.slow=true 
-Dtests.locale=ar-PS -Dtests.timezone=Kwajalein -Dtests.asserts=true 
-Dtests.file.encoding=UTF-8
   [junit4] ERROR   0.00s J1 | StreamExpressionTest (suite) <<<
   [junit4]    > Throwable #1: java.io.IOException: Could not remove the 
following files (in the order of attempts):
   [junit4]    >    
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001\tempDir-001\node2\userfiles\directory1\secondLevel2.txt:
 java.nio.file.FileSystemException: 
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001\tempDir-001\node2\userfiles\directory1\secondLevel2.txt:
 The process cannot access the file because it is being used by another process.
   [junit4]    >    
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001\tempDir-001\node2\userfiles\directory1:
 java.nio.file.DirectoryNotEmptyException: 
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001\tempDir-001\node2\userfiles\directory1
   [junit4]    >    
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001\tempDir-001\node2\userfiles:
 java.nio.file.DirectoryNotEmptyException: 
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001\tempDir-001\node2\userfiles
   [junit4]    >    
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001\tempDir-001\node2:
 java.nio.file.DirectoryNotEmptyException: 
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001\tempDir-001\node2
   [junit4]    >    
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001\tempDir-001:
 java.nio.file.DirectoryNotEmptyException: 
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001\tempDir-001
   [junit4]    >    
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001:
 java.nio.file.DirectoryNotEmptyException: 
C:\Users\jenkins\workspace\Lucene-Solr-master-Windows\solr\build\solr-solrj\test\J1\temp\solr.client.solrj.io.stream.StreamExpressionTest_607225F2726A5625-001
   [junit4]    >        at 
__randomizedtesting.SeedInfo.seed([607225F2726A5625]:0)
   [junit4]    >        at org.apache.lucene.util.IOUtils.rm(IOUtils.java:319)
   [junit4]    >        at java.base/java.lang.Thread.run(Thread.java:835)
{noformat}

I've only ever seen {{secondLevel2.txt}} show up as being the problem -- based 
on how the test works, that suggests _either_ the multi file usage (ie 
{{cat("topLevel1.txt,directory1\secondLevel2.txt")}} usage causes it's _second_ 
arg to be leaked, _or_ the single arg directory usage (ie: 
{{cat("directory1")}} causes the last file in the directory to be leaked (*or 
both*)

skimming the code in CatStream this doesn't seem too suprising -- AFAICT the 
only time {{currentFileLines}} get's closed is when {{maxLines}} get's 
exceeded, or when {{allFilesToCrawl.hasNext()}} is true ... if there are no 
more files to crawl, or a file is 0 bytes (ie: {{currentFileLines.hasNext()}} 
never returns true) then the current / "last" file will never be closed.


> Add FileStream Streaming Expression
> -----------------------------------
>
>                 Key: SOLR-13622
>                 URL: https://issues.apache.org/jira/browse/SOLR-13622
>             Project: Solr
>          Issue Type: New Feature
>          Components: streaming expressions
>            Reporter: Joel Bernstein
>            Assignee: Jason Gerlowski
>            Priority: Major
>             Fix For: 8.3
>
>         Attachments: SOLR-13622.patch, SOLR-13622.patch
>
>
> The FileStream will read files from a local filesystem and Stream back each 
> line of the file as a tuple.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

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

Reply via email to