[Mondrian] Re:VirtualCubeTest.testCalculatedMemberAcrossCubesfailing on SMP

Pappyn Bart Bart.Pappyn at vandewiele.com
Mon Jan 22 06:32:38 EST 2007

We must get one thing straight : regressions tests - except for paralleltest - are using
only one thread.  All other tests are not multi threaded.

From: mondrian-bounces at pentaho.org [mailto:mondrian-bounces at pentaho.org] On Behalf Of michael bienstein
Sent: maandag 22 januari 2007 12:28
To: Mondrian developer mailing list
Subject: Re : [Mondrian] Re:VirtualCubeTest.testCalculatedMemberAcrossCubesfailing on SMP

I think a debugger won't work because debugging multi-threaded apps is really really difficult.

I did a code review but couldn't work out where it came from.  I assume the thread ID is positive and unique so that if the same Thread object is attached to an underlying os thread it won't be doing the same thing, otherwise the == operator would fail.  The only thing I'd do differently is wrap the try {} finally bloc in the RolapResult around more than just the evaluateBody() method because the axes get evaluated out of it.  But the bug doesn't come from there.  

Oh and you might get conflicting data because in one MDX query we can open and use multiple JDBC Connections.  Should use a ThreadLocal to keep the open connection and re-use it.


----- Message d'origine ----
De : Pappyn Bart <Bart.Pappyn at vandewiele.com>
À : John V. Sichi <jsichi at gmail.com>
Cc : Mondrian developer mailing list <mondrian at pentaho.org>
Envoyé le : Lundi, 22 Janvier 2007, 11h10mn 25s
Objet : RE: [Mondrian] Re: VirtualCubeTest.testCalculatedMemberAcrossCubesfailing on SMP

Hi John,

I already changed that piece of code, added an extra data member to
if thread local or not.  Cannot check it in for the moment though. 

The best thing to catch this one, would be to attach a debugger on that
particular test.  Best in combination with outer tests, not running it
on its own.

If people who are able to reproduce this bug, would be able to do that
tell me what happens, I would be very pleased.


-----Original Message-----
From: mondrian-bounces at pentaho.org [mailto:mondrian-bounces at pentaho.org]
On Behalf Of John V. Sichi
Sent: maandag 22 januari 2007 11:05
To: Pappyn Bart
Cc: mondrian at pentaho.org
Subject: [Mondrian] Re:
VirtualCubeTest.testCalculatedMemberAcrossCubesfailing on SMP

Pappyn Bart wrote:
> Hi John,
> I have been busy together with Julian trying to simulate this problem.

OK.  I looked through the code changes but couldn't spot anything

While I was reviewing, I did notice one unrelated thing.  In your
original code, you were using Thread.getId(), and -1 as an invalid
thread ID.  Then you had to change it to System.identityHashCode(thread)
for 1.4-compatibility.  However, I don't think there's any guarantee
that identityHashCode can't return -1 (even though it's unlikely given
that most JVM's implement it as a pointer address), so is the following
test in RolapStar.clearCachedAggregations still correct?

     if (aggregationKey.getThreadId() == threadId) {

Mondrian mailing list
Mondrian at pentaho.org

This email has been scanned by the Email Security System.

Mondrian mailing list
Mondrian at pentaho.org


Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions ! Profitez des connaissances, des opinions et des expériences des internautes sur Yahoo! Questions/Réponses <http://fr.rd.yahoo.com/evt=42054/*http://fr.answers.yahoo.com> . 
This email has been scanned by the Email Security System.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.pentaho.org/pipermail/mondrian/attachments/20070122/73deec66/attachment.html 

More information about the Mondrian mailing list