Hi Robert, Now it makes sense, frankly I did not understand why You are trying do erase items from activePagedLODList rather than pagedLODList. It was beyond me, so just fixed bug locally.
No crash in debug mode. Currently I am testing Your new pager with our paged databases. In old pager memory usage was contant about 80-100MB depending on scene complexity. In the new pager memory usage is contantly increasing reaching 500MB after 15 minutes of scene roaming. Setting OSG_MAX_PAGEDLOD to low value (i.e. 30) does not help. There no notify messages about releasing pages either. Regards, Maciej 2008/12/17 Robert Osfield <[email protected]> > Hi Maciej, > > Thanks for reporting this problem, this is certainly buggy code with > the wrong container being pruned. I'm afraid your suggested changes > retain this same bug. > > I've done a code review and I believe just doing: > > itr = pagedLODList.erase(itr); > > Is the correct operation. > > Could you try out the attached DatabasePager.cpp to see if it anything > is picked up by the debugger. > > Robert. > > > On Wed, Dec 17, 2008 at 4:02 PM, Maciej Krol <[email protected]> wrote: > > Hi Robert, > > > > In debug mode under WinXP VS2005 SP1 new database pager crashes with > > following error "List erase iterator outside range". I traced the problem > to > > capped_removeExpiredSubgraphs method. When erasing element from > > _activePagedLODList iterator from _inactivePagedLODList is used. I doubt > > that this code ever worked. You will find the fix in the attachment. > There > > are two solutions - one with std::remove (commented out) and another one > > using std::find and std::vector::erase. > > > > I am sending this submission second time because last time I got > following > > error from the mail delivery system > > > > <[email protected]> (expanded from > > <[email protected]>): Command died with status > 1: > > "/dh/mailman/foreach/mail/ > > mailman post osg-submissions-openscenegraph.org". > > Command output: Traceback (most recent call last): Logging error: > > <StampedLogger to '/dh/mailman/foreach/logs/error'> Traceback (most > > recent > > call last): File "/dh/mailman/foreach/Mailman/Logging/Logger.py", > line > > 92, in write f.write(msg) File "codecs.py", line 501, in write > > return self.writer.write(data) File "codecs.py", line 179, in write > > self.stream.write(data) IOError: [Errno 28] No space left on device > > Original log message: [Errno 28] No space left on device File > > "/dh/mailman/foreach/scripts/post", line 69, in ? main() File > > "/dh/mailman/foreach/scripts/post", line 64, in main tolist=1, > > _plaintext=1) File > "/dh/mailman/foreach/Mailman/Queue/Switchboard.py", > > line 138, in enqueue fp.write(msgsave) IOError: [Errno 28] No > space > > left on device > > Regards, > > Maciej > > > > _______________________________________________ > > osg-submissions mailing list > > [email protected] > > > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > > > > > > _______________________________________________ > osg-submissions mailing list > [email protected] > > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > > -- Regards, Maciej Krol
_______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
