Hi,
On Tue, 2007-04-24 at 16:15 -0500, [EMAIL PROTECTED] wrote:
> Fix for an especially insidious bug that led to random seg faults and memory
> protection crashes in the ContainerChangeEntry processing.
>
> The cause is a bit complex, but the basic idea is this.
>
> - ContainerChangeEntries are stored in a pool in the ChangeList class and
> reused.
> - When an entry is reused the clear() method is called to reset it to a
> "good" state.
> - One of the things stored in the ContainerChangeEntry was a reference to the
> uncommittedChanges flags inside the relevant field container
> - This value was never cleared because it was a reference
>
> In some cases what would happen is:
> - A ContainerChangeEntry would be allocated to point at a fc fcA with
> uncommitedFlags set to point at fcA
> - fcA would be deallocated and the change entry put back into the pool
> - A new change would happen for a new fc fcB that would not require setting
> the uncommitedFlags reference
> - When that ContainerChangeEntry was processed it would still reference the
> uncommitedFlags for fcA and thus reference invalid memory
> - When this variable was used, poof, crash, bang, badness.
I understand the problem, what I would be interested in would be how did
you manage to trigger it because that seems to be the real problem.
Especially how did you manage to get the following:
'- A new change would happen for a new fc fcB that would not require
setting the uncommitedFlags reference'
A changed entry with an invalid flag reference should have never been
processed in a way that the invalid reference is touched.
The only time I found this to happen was during ChangeList::dump.
So the 'real' bug is still out there.
gerrit
--
It's Emergent[*], you see.
[*] [adj] A word favored by computer nerds; mandatory for DARPA research
applications; on recent evidence, a synonym for 'doomed'.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users