- edited description
persona_scope destructor corrupts active_with_caller()
Issue #205
resolved
The persona_scope::~persona_scope()
destructor is not properly setting the metadata for the exiting persona if that persona was already present deeper in the stack. This will lead persona::active_with_caller()
to mis-report false, which could affect many asserts littered throughout the codebase.
This will incorrectly fail:
{
upcxx::persona_scope ps1(upcxx::master_persona());
{ upcxx::persona_scope ps2(upcxx::master_persona()); }
UPCXX_ASSERT_ALWAYS(upcxx::master_persona().active_with_caller());
}
Comments (3)
-
reporter -
- changed status to resolved
fix issue
#205: incorrect metadata handling in ~persona_scope()persona_scope::~persona_scope()
wasn't properly resetting metadata that would lead to thepersona::active_with_caller()
query to fail. This may have been responsible for some confusing mis-ASSERT's in SEQ mode.→ <<cset 83277c8e659d>>
-
Merge pull request #79 into develop
- copy_and_persona_fix:
Fix a bug in upcxx::copy for PAR mode
Update ChangeLog for issue
#205fix issue#205: incorrect metadata handling in ~persona_scope()
→ <<cset d3e9ba4e04a0>>
- copy_and_persona_fix:
Fix a bug in upcxx::copy for PAR mode
Update ChangeLog for issue
- Log in to comment