The System.gc() is not guaranteed to work - but it did work for me.
That is what I meant by a 'best effort' within the test. The test does
not require all those old test folders to hang around.

Could we do a workaround for the test to set say a tinier block-size
instead of 8 MB?


As I have been unable to build all of Jena on Windows - what is the
actual disk space requirement? It should at least be documented in the
README.

On 10 March 2015 at 11:07, Rob Vesse <rve...@dotnetrdf.org> wrote:
> Using an alternative approach would not make any difference
>
> It is a fundamental bug in Windows memory mapped files that means that a
> JVM can never guarantee to completely release memory mapped files while
> the JVM is alive.
>
> Andy has posted this many times on threads about TDB on Windows in the
> past.  No workaround we could attempt could ever solve the issue on
> Windows so there is really no point in expending effort changing something
> low level that otherwise works fine across multiple platforms.
>
> Rob
>
> On 10/03/2015 10:25, "Stian Soiland-Reyes" <st...@apache.org> wrote:
>
>> Thanks, Rob!
>>
>>I tried looking yesterday at ways to reduce the disk space
>>requirements when building on Windows - including truncating the files
>>after closing. This seems to require deep changes into TDBs
>>ChannelManager which keeps the corresponding FileChannels - perhaps a
>>new method for that purpose?
>>
>>https://github.com/apache/jena/blob/master/jena-tdb/src/main/java/com/hp/h
>>pl/jena/tdb/base/file/ChannelManager.java
>>
>>
>>It seems on Windows with Oracle/OpenJDK you can call System.gc() to
>>(hopefully) release the ByteBuffers that lock the memory regions (and
>>then making the files deletable) - but this adds a significant
>>overhead. The dispose methods on ByteBufferImpls are not easily
>>accessible - you would need some introspection hackery to get hold of
>>that cleaner() and that would of course only work on Oracle/OpenJDK.
>>as fc.map() still does the same thing.
>>
>>Close your eyes -  GPL3!
>>https://github.com/stain/jdk8u/blob/master/src/share/classes/java/nio/Dire
>>ct-X-Buffer.java.template#L72
>>http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8-b
>>132/java/nio/DirectByteBuffer.java/#72
>>
>>
>>I tried using the FileChannels from JDK7 NIO2 (e.g.
>>FileChannel.open(Path)) instead of through RandomAccessFile - but it
>>did not make any difference
>>
>>
>>Perhaps System.gc() is not worth it in general (* on Windows) when
>>closing a dataset - I tried to modify the ChannelManager to always do
>>this on release, it meant each test in jena-jdbc-tdb took 1.5s instead
>>of 0.2s, but it did allow me to delete the used folders from target/
>>while the JVM/test was running.
>>
>>For the tests we could do something like for every 10 tests do
>>System.gc() and wipe the old data.
>>
>>Perhaps Fuseki 2 could do System.gc() on [Remove] && SystemTDB.isWindows.
>>
>>
>>
>>On 10 March 2015 at 10:00, ASF GitHub Bot (JIRA) <j...@apache.org> wrote:
>>>
>>>     [
>>>https://issues.apache.org/jira/browse/JENA-897?page=com.atlassian.jira.pl
>>>ugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14354617#com
>>>ment-14354617 ]
>>>
>>> ASF GitHub Bot commented on JENA-897:
>>> -------------------------------------
>>>
>>> Github user asfgit closed the pull request at:
>>>
>>>     https://github.com/apache/jena/pull/41
>>>
>>>
>>>> jena-jdbc-tdb tests use %TEMP% instead of target/
>>>> -------------------------------------------------
>>>>
>>>>                 Key: JENA-897
>>>>                 URL: https://issues.apache.org/jira/browse/JENA-897
>>>>             Project: Apache Jena
>>>>          Issue Type: Bug
>>>>          Components: JDBC
>>>>    Affects Versions: Jena 2.12.1, Jena 2.13.0
>>>>         Environment: Windowx 8.0 x64, C: with 34 GB free
>>>>            Reporter: Stian Soiland-Reyes
>>>>            Priority: Critical
>>>>             Fix For: Jena 2.13.1
>>>>
>>>>
>>>> .. and thus mvn clean install on Windows will easily consume 37 GB on
>>>>C: and run out of disk space - even if Jena is built on a larger
>>>>partition.
>>>
>>>
>>>
>>> --
>>> This message was sent by Atlassian JIRA
>>> (v6.3.4#6332)
>>
>>
>>
>>--
>>Stian Soiland-Reyes
>>Apache Taverna (incubating), Apache Commons RDF (incubating)
>>http://orcid.org/0000-0001-9842-9718
>
>
>
>



-- 
Stian Soiland-Reyes
Apache Taverna (incubating), Apache Commons RDF (incubating)
http://orcid.org/0000-0001-9842-9718

Reply via email to