I added a patch to the MNG-3004 jira issue that fixes an additional
concurrency issue with Dan Fabulich's patch.

I am the author of a pending surefire concurrency patch (
http://jira.codehaus.org/browse/SUREFIRE-555), which was one
of several patches I made to be able to run spring tests in parallel with
junit and surefire.

In the process of creating SUREFIRE-555 I made the following observations
about concurrency:

The different CPU architectures have wildly different characteristics when
it comes to concurrency. On a
pentium 4, "ConcurrentModificationException" is the norm (no real
parallelity). On a Core 2 duo you start getting more real
parallel execution, although even that CPU has very limited concurrency. The
i7 processor is a totally different
beast, and is massively concurrent compared with the C2D. I'd say the i7 is
the *first* cpu where you *really*
have to watch your synchronized blocks (or go straight to jail). Above that
again on the (intel) concurrency ladder
are the dual-chip xenons.

Dan's original solution to MNG-3004 failed on i7 and dual core xenons. With
the patch I posted
it seems to run flawlessly on both i7 and dual xenon servers (I'm running it
full blast on CI on the dual xenon right now).
This is for a build without any significant external snapshot dependencies.
So when it comes to general
"readyness" the patches seem to be stable. I will not get into the
architectural discussions.

I'll gladly make a unit test for the StringSearchModelInterpolator class
(untested AFIK), but I'm just a regular guy on
 the street submitting a patch and I need some advice on how to actually
make a unit/integration test for that class
(with wired dependencies). I looked around to find some similars but I
couldn't really find any. Anyone have any
suggestions for similar test I can work from ?

Kristian Rosenvold

Reply via email to