From: Olav Sandstaa Date: November 18 2008 7:48pm Subject: Re: New dependency manager and Transaction::getRelativeState List-Archive: http://lists.mysql.com/falcon/195 Message-Id: <49231C15.3000402@sun.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset=ISO-8859-1 Content-Transfer-Encoding: 7BIT Hi Kevin, Thanks for your answers. They are very helpful. See comments inline. Kevin Lewis wrote: > Kevin Lewis wrote: >> >> >> In other words, if a record no longer had a transaction pointer, it >> ended before any transaction that would be calling getRelativeState() >> ever started. > > This implies that the code you are worried about is no longer used or > needed; > > // Be sure it was not active when we started. > > for (int n = 0; n < numberStates; ++n) > if (states [n].transactionId == transId) > return CommittedInvisible; I too had almost concluded (on Friday) that this code should never been hit both based on the code, the comments and by tracing test runs with it. But then I found (with the new dependency manager) that some of the "null pointer transactions" actually was still "active" and had to re-evaluate. But as you suggest this might be due to some bug that I have introduced :-( > > Can you run a test to see if that return is EVER hit in the current code? Yes, I will - and report back my findings. Olav