My cycle starts at this->postingsFreeCountDW, not at 0 > -----Original Message----- > From: Itamar Syn-Hershko [mailto:ita...@code972.com] > Sent: Tuesday, June 29, 2010 10:43 AM > To: clucene-developers@lists.sourceforge.net > Subject: Re: [CLucene-dev] vector subscript outofrangeexceptionduringindexing > > They are NOT the same, since what you proposed would have caused more > memory leaks (from the head of the array, which contains actual objects). > > I have discussed what needs to be done further in my previous mail > (further testing & killing memleaks). > > Itamar. > > On 29/6/2010 10:21 AM, Kostka Bořivoj wrote: > > This is the same solution (except you use much more efficient way) I > > proposed in > one of my previous mails: > > > > > >> To test this, I simply added (yes it might be done more efficient way > >> using memset) > >> > >> for ( size_t i = this->postingsFreeCountDW; i< > >> this->postingsFreeListDW.length; > i++ ){ > >> this->postingsFreeListDW.values[i] = NULL; } > >> > > and you told me this will introduce memory leaks. And there are some in > > cl_demo. > > > > So you think this is OK, or some additional exploration should be done? > > > > Borek > > > > > >> -----Original Message----- > >> From: Itamar Syn-Hershko [mailto:ita...@code972.com] > >> Sent: Tuesday, June 29, 2010 12:35 AM > >> To: clucene-developers@lists.sourceforge.net > >> Subject: Re: [CLucene-dev] vector subscript > >> outofrangeexceptionduringindexing > >> > >> Alrighty, seems like I have nailed it. See below + attached patch. > >> > >> On 29/6/2010 12:39 AM, Kostka Bořivoj wrote: > >> > >>> I'm quite sure the problem is in postingsFreeListDW management: > >>> > >>> The postings after postingsFreeCountDW are used somewhere (but are > >>> still here in a list). If you remove block of free postings in > >>> balanceRAM, you are removing before postingsFreeCountDW so an "empty > >>> block" is created inside postingsFreeListDW (at the end of free > >>> postings but before all used postings). Then if you return all/some used > >>> postings > >>> > >> back into list, you return them to the beginning of this empty block. This > >> can cause > >> duplicated pointers in the list. > >> > >>> > >> I agree there is an empty block, I am just not sure how this could cause > >> duplicated > >> pointers? > >> > >> Also, claiming the culprit is postingsFreeListDW's memory management is > >> less > likely > >> since it most likely would have been noticed by Java users / devs already. > >> > >> > >>> It can also be a reason, why postingsFreeCountDW< > postingsFreeListDW.length in > >>> > >> the destructor. > >> > >>> > >> I am not at all sure this is an actual problem. postingsFreeListDW can > >> have more > >> allocated memory than needed (hence< length). > >> > >>> Borek > >>> > >> Anyway, I put a breakpoint on Array.h ln 139 and noticed it errored on > >> array item 5888 (0-base). This was also the value of > >> postingsFreeCountDW. What this means is the "gap" you were referring to > >> is actually in the tails of the postings array. Some code moving > >> postings around didn't bother at NULLifying unused positions. > >> > >> Instead of looking up this erroneous code, I added a memset call to > >> NULLify the tail of that array at the end of the destructor. It also > >> makes more sense performance-wise, and as long as no memory leaks are > >> introduced, I think it is safe to keep it that way. > >> > >> So, what we need now is to make sure this doesn't introduce new leaks, > >> and have this properly tested before checking this change in (all > >> cl_tests pass atm). I know cl_demo leaks but haven't had the time to see > >> where from - this could be related. Can you handle that? > >> > >> Itamar. > >> > > ------------------------------------------------------------------------------ > > This SF.net email is sponsored by Sprint > > What will you do first with EVO, the first 4G phone? > > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > > _______________________________________________ > > CLucene-developers mailing list > > CLucene-developers@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/clucene-developers > > > > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > _______________________________________________ > CLucene-developers mailing list > CLucene-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/clucene-developers
------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ CLucene-developers mailing list CLucene-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/clucene-developers