Failing unit tests on Windows

View: New views
3 Messages — Rating Filter:   Alert me  

Failing unit tests on Windows

by Martin Cooper-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I'm trying to build Archiva for the first time in a long time, and am
running into some unit test failures that are quite probably Windows
only. The problem is that trying to track these down quickly leads
into Nexus code and thence into Lucene code, so I'm looking for ideas
from someone who knows the code better than I do (which is probably
pretty much everyone else here).

The (first) problem occurs in ArchivaIndexingTaskExecutorTest, in the
tearDown method. Here's the relevant chunk of code:

        context.close( false );

        // delete created index in the repository
        File indexDir = new File( repositoryConfig.getLocation(), ".indexer" );
        FileUtils.deleteDirectory( indexDir );
        assertFalse( indexDir.exists() );

The deleteDirectory() call throws an exception because it cannot
delete a file (_1.cfs) in that directory, which would happen when the
file is still open. This means that either the context.close() method
didn't do its thing properly or something earlier on didn't clean up
after itself. Unfortunately, that context.close() call leads directly
into Nexus, and that in turn leads quickly into Lucene. I'm not about
to start debugging either of those. (Debugging this is hard enough
when I can't generate the IDEA project because I can't build Archiva
in the first place!)

I'm not sure where to go from here. Skipping the deletion causes
subsequent failures, and since the problem is an unclosed file,
there's a bug somewhere that needs to be fixed. Almost certainly,
other people are not seeing it because *nix has different ideas about
deleting open files.

Oh - there are other "nearby" tests that are failing, but I'm not sure
if they're related to this problem or not. Also, there are other
non-nearby test failures that I was trying to track down yesterday,
but those are not showing up today because it is no longer the 1st of
the month. (Yes, I'm serious.)

Thoughts?

--
Martin Cooper

Re: Failing unit tests on Windows

by Deng Ching-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Martin,

I'll look into these failing tests. Do you know which module who's tests are
failing due to checking for the day of the month?
(I think this calls for a Windows build agent in our CI server (Continuum)
in vmbuild so we could keep track of these..)

Thanks for the heads up! :)

-Deng

On Tue, Nov 3, 2009 at 8:21 AM, Martin Cooper <martinc@...> wrote:

> I'm trying to build Archiva for the first time in a long time, and am
> running into some unit test failures that are quite probably Windows
> only. The problem is that trying to track these down quickly leads
> into Nexus code and thence into Lucene code, so I'm looking for ideas
> from someone who knows the code better than I do (which is probably
> pretty much everyone else here).
>
> The (first) problem occurs in ArchivaIndexingTaskExecutorTest, in the
> tearDown method. Here's the relevant chunk of code:
>
>        context.close( false );
>
>        // delete created index in the repository
>        File indexDir = new File( repositoryConfig.getLocation(), ".indexer"
> );
>        FileUtils.deleteDirectory( indexDir );
>        assertFalse( indexDir.exists() );
>
> The deleteDirectory() call throws an exception because it cannot
> delete a file (_1.cfs) in that directory, which would happen when the
> file is still open. This means that either the context.close() method
> didn't do its thing properly or something earlier on didn't clean up
> after itself. Unfortunately, that context.close() call leads directly
> into Nexus, and that in turn leads quickly into Lucene. I'm not about
> to start debugging either of those. (Debugging this is hard enough
> when I can't generate the IDEA project because I can't build Archiva
> in the first place!)
>
> I'm not sure where to go from here. Skipping the deletion causes
> subsequent failures, and since the problem is an unclosed file,
> there's a bug somewhere that needs to be fixed. Almost certainly,
> other people are not seeing it because *nix has different ideas about
> deleting open files.
>
> Oh - there are other "nearby" tests that are failing, but I'm not sure
> if they're related to this problem or not. Also, there are other
> non-nearby test failures that I was trying to track down yesterday,
> but those are not showing up today because it is no longer the 1st of
> the month. (Yes, I'm serious.)
>
> Thoughts?
>
> --
> Martin Cooper
>

Re: Failing unit tests on Windows

by Martin Cooper-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Nov 2, 2009 at 5:45 PM, Deng Ching <oching@...> wrote:
> Hi Martin,
>
> I'll look into these failing tests.

Thanks!

> Do you know which module who's tests are
> failing due to checking for the day of the month?

The problem is in AbstractUpdatePolicy, in the DAILY section of
applyPolicy. There's an adjustment subtracting 1 from DAY_OF_MONTH
that seems to do strange things on the 1st of the month.

> (I think this calls for a Windows build agent in our CI server (Continuum)
> in vmbuild so we could keep track of these..)

Funny - that's what Brett said a few minutes ago. :-)

> Thanks for the heads up! :)

You're welcome. :-)

--
Martin Cooper


> -Deng
>
> On Tue, Nov 3, 2009 at 8:21 AM, Martin Cooper <martinc@...> wrote:
>
>> I'm trying to build Archiva for the first time in a long time, and am
>> running into some unit test failures that are quite probably Windows
>> only. The problem is that trying to track these down quickly leads
>> into Nexus code and thence into Lucene code, so I'm looking for ideas
>> from someone who knows the code better than I do (which is probably
>> pretty much everyone else here).
>>
>> The (first) problem occurs in ArchivaIndexingTaskExecutorTest, in the
>> tearDown method. Here's the relevant chunk of code:
>>
>>        context.close( false );
>>
>>        // delete created index in the repository
>>        File indexDir = new File( repositoryConfig.getLocation(), ".indexer"
>> );
>>        FileUtils.deleteDirectory( indexDir );
>>        assertFalse( indexDir.exists() );
>>
>> The deleteDirectory() call throws an exception because it cannot
>> delete a file (_1.cfs) in that directory, which would happen when the
>> file is still open. This means that either the context.close() method
>> didn't do its thing properly or something earlier on didn't clean up
>> after itself. Unfortunately, that context.close() call leads directly
>> into Nexus, and that in turn leads quickly into Lucene. I'm not about
>> to start debugging either of those. (Debugging this is hard enough
>> when I can't generate the IDEA project because I can't build Archiva
>> in the first place!)
>>
>> I'm not sure where to go from here. Skipping the deletion causes
>> subsequent failures, and since the problem is an unclosed file,
>> there's a bug somewhere that needs to be fixed. Almost certainly,
>> other people are not seeing it because *nix has different ideas about
>> deleting open files.
>>
>> Oh - there are other "nearby" tests that are failing, but I'm not sure
>> if they're related to this problem or not. Also, there are other
>> non-nearby test failures that I was trying to track down yesterday,
>> but those are not showing up today because it is no longer the 1st of
>> the month. (Yes, I'm serious.)
>>
>> Thoughts?
>>
>> --
>> Martin Cooper
>>
>