Yes I know about that. I was not at all confused - just thought that the
runner did not call mkdirs(). Anyway, I added <mkdir dir="@{tempDir}/temp">
to my build.xml to avoid such issues in the future.

+1 for renaming tests.tempDir to tests.workDir.

Shai


On Sun, Dec 23, 2012 at 12:26 PM, Uwe Schindler <u...@thetaphi.de> wrote:

> I think the misunderstanding here is tests.tempDir != java.io.tmpdir. This
> tests.tempDir property in Lucene's ANT does not really modify
> java.io.tmpdir (it only does as a side effect), it is (in my opinion) badly
> named, we should rename it to "working dir" (${tests.workingDir}). The
> $tests.tempDir/temp folder is JNUIT4-only, it is used to share the
> communication files between the runner processes (there are file in it
> having things like sysout contents). Those contents are unique and *must*
> be in one directory for the JUnit4-Task to work.
>
> Setting up java.io.tmpdir to be the CWD is part of Lucene's ANT file.
>
> Uwe
>
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremen
> http://www.thetaphi.de
> eMail: u...@thetaphi.de
>
> > -----Original Message-----
> > From: dawid.we...@gmail.com [mailto:dawid.we...@gmail.com] On Behalf
> > Of Dawid Weiss
> > Sent: Sunday, December 23, 2012 11:20 AM
> > To: dev@lucene.apache.org
> > Subject: Re: improving unique work.dir per JVM?
> >
> > > I did RTFM.
> >
> > Just joking.
> >
> > > So dir=tempDir, be it java.io.tempdir or whatever you set when invoking
> > ant.
> > > [snip]
> > > -DtempDir=/mnt/tmp/job1
> >
> > There is a crucial difference. Lucene sets this to a temporary folder
> > underneath the checkout structure. So every checkout (as in a jenkins
> plan
> > or something) will have a different folder. The reason for creating a
> sub-
> > folder for the temporary junit4 files is the security manager -- to
> allow all
> > JVMs to write to the tempdir (that's how event files are propagated to
> the
> > master node for aggregation) and at the same time disallow them to write
> > anywhere else but their own current working directory. So you end up
> with a
> > folder structure like this:
> >
> > parent/J0
> > parent/J1
> > parent/J[...]
> > parent/temp
> >
> > the key for you is to isolate "parent" so you can't just point it to the
> same
> > folder across all JVMs. Whether you do this from ANT or from command-line
> > is up to you.
> >
> > > I don't know why this mkdirs() didn't create the full path. I'm using
> > > the runner for Lucene 4.0, maybe it didn't call mkdirs() then?
> >
> > I'm sure it does. Maybe it didn't have permissions or something? Or
> maybe it
> > wasn't the mkdirs that was the problem? Or maybe there's a bug lurking
> > somewhere. If you can reproduce it, file an issue, I'll take a look.
> >
> > D.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional
> > commands, e-mail: dev-h...@lucene.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: dev-h...@lucene.apache.org
>
>

Reply via email to