IceUtil::TimerTask::TimerTask() : Access violation reading location
For our project's migration purpose; from ice 3.5 to 3.7.3 (and Visual Studio 2010 to 2017), I'm facing the unexpected error 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF when trying to construct an CallbackOutgoing object in a _iceI_begin_myMethodName proxy's method ... :
::IceInternal::OutgoingAsyncPtr result = new ::IceInternal::CallbackOutgoing(this, iceC_castor_internal_CorePropertiesManager_newSession_name, del, cookie, sync);
Actually when calling the constructor CallbackOutgoing (in OutgoingAsync.h file, line 777), it creates an IceUtil::Shared part of the instance, and by watching this variable, I see that everything is fine and well defined:
But while debugging in the previous constructor, it goes up in the hierarchy to call the inherited class constructor: OutgoingAsync and I see in this variable that the inherited IceUtil::TimerTask part looses its IceUtil::Shared part, as shown here:
Then, the crash happens:
Do you have any idea why/how explain this unexpected error please ? Very weird
It happens only when the code is about to invoke our proxies's methods, but not ice's.
I'm using the same base code (Slice definitions) as when the app was running with ice 3.5, and have reading the doc's upgrade section, I didn't have to change something related to the problem above I think ...
Thanks per advance for your help