Status: New
Owner:
justinn...@gmail.com
CC:
maz...@gmail.com,
alex.nic...@soartech.com
Labels: Type-Defect Priority-High
New issue 154 by
marin...@gmail.com: inconsistent crash on epmem query
http://code.google.com/p/soar/issues/detail?id=154
I have a complex agent that uses epmem. On windows, sometimes when epmem is
queried, Soar crashes. We've also run this code on linux and do not see the
crash there, although it's possible that it's just more rare. I can't
publicly provide specific code to reproduce this problem, but I can give
details of where the crash is occurring in the kernel. (On windows it
usually crashes, but not always.)
We are using a build off the trunk, r13955. Windows 7 pro w/Visual Studio
2013 Express and Linux Mint 13 Maya.
The nature of the episodes is that there is a multi-valued attribute. The
query contains one of the possible values in the multi-valued attribute. (I
don't know if this is relevant, but it could be.)
When the crash occurs, windows gives this error message:
According to Visual Studio, the line of code causing the crash is line 4170
in episodic_memory.cpp:
for (epmem_node_pair_set::iterator node_iter = child_lit->matches.begin();
node_iter != child_lit->matches.end(); node_iter++) {
The issue may be that somehow node_iter is already at the end and then it's
being incremented. This could be the case if the matches collection is
being modified inside the loop (which appears to be a recursive call to the
function that contains this loop). There appear to be several checks in the
function to make sure matches is not 0 length before doing some operations,
so whoever wrote this was aware that this could happen, but it appears that
at least one codepath is still making it through somehow.
While I can't share the code here, if it would help, someone could come to
SoarTech and we could demonstrate the issue there.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings