Community
Maya Forum
Welcome to Autodesk’s Maya Forums. Share your knowledge, ask questions, and explore popular Maya topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

TmultiSharedObject::singleRefCount

13 REPLIES 13
Reply
Message 1 of 14
BurkhardRammner
615 Views, 13 Replies

TmultiSharedObject::singleRefCount

There were two previous threads about crashes where the log file mentions the 'TmultiSharedObject::singleRefCount'.

Has there been done any work on that?
I have crashes for more than 2 years with that message (yes, I sent bug reports, but cannot share the files...well, I could, but their size is about 2 GB and they have lots of my own nodes. And obviously nobody at AD is willing to dig through them).
My crashes are reproducible and happen 8 out of 10 times.

 

edit:

Foundation!TmultiSharedObject::singleRefCount+0x6
Foundation!TdataLetter::unreference+0x19
Foundation!Tdata::makeWritable+0xa0
DependEngine!TdataHandle::deepCopy+0xec
DependEngine!TdependNode::processEval+0x175
DependEngine!TevaluationDebug::operator=+0x2c73
DependEngine!TevaluationDebug::operator=+0xb93
DependEngine!Tplug::evalConnectionValue+0xe3
DependEngine!Tplug::evaluateValue+0xf3
DependEngine!TdataBlockDG::evaluateValue+0x38
DependEngine!TdataBlockDG::value+0x2ac
DependEngine!TdependNode::computePlug+0x15
DataModel!TdagObject::computePlug+0x8c
DataModel!Ttransform::computePlug+0x258
DependEngine!TevaluationNode::evaluateInputDirtyPlugs+0x294
DependEngine!TevaluationNode::evaluate+0x193
EvaluationManager!em::SchedulingNode::connect_successor+0x18f
tbb!tbb::interface7::internal::isolate_within_arena+0x3799
tbb!tbb::interface7::internal::isolate_within_arena+0x6e0
tbb!tbb::task_scheduler_init::terminate+0x14f4
tbb!tbb::internal::thread_yield_v3+0x10d8
tbb!tbb::internal::thread_yield_v3+0x133b
ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x42
kernel32!BaseThreadInitThunk+0x14
ntdll!RtlUserThreadStart+0x21

13 REPLIES 13
Message 2 of 14

I am unable to proceed...any help?

Message 3 of 14

CONTEXT:  (.ecxr)rax=0000000000000000 rbx=000002325d9f6260 rcx=000002325d9f6260
rdx=0000000000000001 rsi=0000022cf8b1c3c0 rdi=0000000000000000
rip=00007ffb09ae6c66 rsp=0000003753bf3ea8 rbp=0000003753bf4010
 r8=0000000000000001  r9=0000000000000000 r10=0000000000000000
r11=fefecefffbfffffb r12=0000000000000000 r13=00007ffb0b8c00b0
r14=00007ffb10aefcf0 r15=0000003753bf4b58
iopl=0         nv up ei pl nz na pe nc
cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010202
Foundation!TmultiSharedObject::singleRefCount+0x6:
00007ffb`09ae6c66 8b0490          mov     eax,dword ptr [rax+rdx*4] ds:00000000`00000004=????????
Resetting default scope

EXCEPTION_RECORD:  (.exr -1)ExceptionAddress: 00007ffb09ae6c66 (Foundation!TmultiSharedObject::singleRefCount+0x0000000000000006)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 0000000000000000
   Parameter[1]: 0000000000000004
Attempt to read from address 0000000000000004

PROCESS_NAME:  maya.exe

READ_ADDRESS:  0000000000000004 

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.

EXCEPTION_CODE_STR:  c0000005

EXCEPTION_PARAMETER1:  0000000000000000

EXCEPTION_PARAMETER2:  0000000000000004

MISSING_CLR_SYMBOL: 0

STACK_TEXT:  
00000037`53bf3ea8 00007ffb`09b40eb9     : 0000022c`f8b1c400 00000037`53bf4f68 ffffffff`fffffffe 00000000`00022000 : Foundation!TmultiSharedObject::singleRefCount+0x6
00000037`53bf3eb0 00007ffb`09b3da60     : 00000220`0b10fdc0 00000220`0b10fdc0 00000037`53bf4f68 00000000`00000000 : Foundation!TdataLetter::unreference+0x19
00000037`53bf3ee0 00007ffb`107e76fc     : 00000037`53bf4f68 00000220`0b10fdc0 00007ffb`459cc370 00000000`00000010 : Foundation!Tdata::makeWritable+0xa0
00000037`53bf3f10 00007ffb`108e40b5     : 00000000`00000000 00000000`00000001 00000037`53bf4f00 00000220`2b0075e0 : DependEngine!TdataHandle::deepCopy+0xec
00000037`53bf4b20 00007ffb`10808d93     : 00000220`c05e8800 00000220`c05e8830 00000220`35c4b090 00000220`c05e8830 : DependEngine!TdependNode::processEval+0x175
00000037`53bf4ba0 00007ffb`10806cb3     : 00000220`c05e8830 00000220`2b008d20 00000037`53bf4cc0 00000220`c05e8830 : DependEngine!TevaluationDebug::operator=+0x2c73
00000037`53bf4c10 00007ffb`107c3d73     : 00000220`c05e8830 00000037`53bf4f68 00007ffb`10af61b0 00000220`2b008d20 : DependEngine!TevaluationDebug::operator=+0xb93
00000037`53bf4c70 00007ffb`107c3f53     : 00000037`53bf4f68 00000037`53bf4e20 00000000`00000000 00000000`00000000 : DependEngine!Tplug::evalConnectionValue+0xe3
00000037`53bf4d20 00007ffb`107fad48     : 00000220`2b008d20 00000037`53bf4f68 00000223`ffaaba50 00000000`00000000 : DependEngine!Tplug::evaluateValue+0xf3
00000037`53bf4f00 00007ffb`10801b3c     : 00000000`00000000 00000037`53bf4fb9 00000223`ffaaba00 00000223`ffaaba40 : DependEngine!TdataBlockDG::evaluateValue+0x38
00000037`53bf4f30 00007ffb`108dcac5     : 00000233`54b7e400 00000037`53bf5040 00000220`0b114b70 00007ffb`10af61b0 : DependEngine!TdataBlockDG::value+0x2ac
00000037`53bf5020 00007ffb`0b1dfbcc     : 00007ffb`0b89c308 00000220`02c826b0 00000000`00000000 00007ffb`1085c83d : DependEngine!TdependNode::computePlug+0x15
00000037`53bf5070 00007ffb`0b292128     : 00000220`2b008d20 00000223`ffaaba50 00000220`021796d0 00007ffb`10af61b0 : DataModel!TdagObject::computePlug+0x8c
00000037`53bf5160 00007ffb`1085e834     : 00000000`00000002 00000000`00000000 00000000`00000000 00000233`64d10018 : DataModel!Ttransform::computePlug+0x258
00000037`53bf5260 00007ffb`1085db63     : 00000000`ffffffff 00000233`64d0fe70 00000000`ffffffff 00000233`64d0fe70 : DependEngine!TevaluationNode::evaluateInputDirtyPlugs+0x294
00000037`53bf5350 00007ffb`421419df     : 0000021f`ffffffff 0000021f`bd7db640 0000021f`bd7bfe00 00000000`00000001 : DependEngine!TevaluationNode::evaluate+0x193
00000037`53bf53d0 00007ffb`4a01f719     : 0000021f`bd7db640 0000021f`bd7c3f28 00000000`00000000 0000021f`bd7bfe00 : EvaluationManager!em::SchedulingNode::connect_successor+0x18f
00000037`53bf5400 00007ffb`4a01c660     : 0000021f`bd7bfe00 0000021f`bd7c3f40 0000021f`bd7bfe02 0000021f`bd7db640 : tbb!tbb::interface7::internal::isolate_within_arena+0x3799
00000037`53bf54c0 00007ffb`4a017cd4     : 0000021f`bae99600 0000021f`bae99600 0000021f`bd7bfe00 00000000`00000000 : tbb!tbb::interface7::internal::isolate_within_arena+0x6e0
00000037`53bf5500 00007ffb`4a011498     : 00000000`00000001 0000021f`bd700780 0000021f`bd7bfe08 00000000`ffffffff : tbb!tbb::task_scheduler_init::terminate+0x14f4
00000037`53bf5530 00007ffb`4a0116fb     : 00000000`00001f35 0000021f`b9671650 00000037`53bffca0 00000000`00000000 : tbb!tbb::internal::thread_yield_v3+0x10d8
00000037`53bf5560 00007ffb`665714c2     : 0000021f`b9671650 00000000`00000000 00000000`00000000 00000000`00000000 : tbb!tbb::internal::thread_yield_v3+0x133b
00000037`53bffcc0 00007ffb`676c7034     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x42
00000037`53bffcf0 00007ffb`68e5cec1     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0x14
00000037`53bffd20 00000000`00000000     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21


SYMBOL_NAME:  Foundation!TmultiSharedObject::singleRefCount+6

MODULE_NAME: Foundation

IMAGE_NAME:  Foundation.dll

STACK_COMMAND:  ~81s ; .ecxr ; kb

FAILURE_BUCKET_ID:  NULL_CLASS_PTR_READ_c0000005_Foundation.dll!TmultiSharedObject::singleRefCount

OS_VERSION:  10.0.19041.1

BUILDLAB_STR:  vb_release

OSPLATFORM_TYPE:  x64

OSNAME:  Windows 10

IMAGE_VERSION:  20.3.0.1431

FAILURE_ID_HASH:  {9f1c00ce-7413-0973-dfe5-e604b6c1f0ab}

Followup:     MachineOwner
---------
Message 4 of 14

me: Hey Burkhard,

why are you still posting here, even if just nobody (and nobody also from AD) has an answer for you?

me: I had hopes that maybe someone from AD would understand that I am having non-trivial problems with Maya and would try to help me (like Sean Heasley, way back in better forum days).

me: Yes, soo, but no help now, right?

me: Yes, right. but what can I do? This forum helped killing the CGTalk Maya forum (well, yes, it was already in decline), so there`s no place to go. I thought the main point of this forum was that also AD developers (I mean people with deeper insight) would also drop by and give some help. But as this is obviously not the case, actually the forum can close again.

me: Yes, I think so, too. On CGTalk, you were more free to express what you really think about your software. Also, it does not happen that people leave from one day to the other and nobody explains why (Sean Heasley).

me: ... Looks like you are left alone with this digital thing that you are making your living with...

me: Yes, dark times

Message 5 of 14

me: Burkhard, how come this thing called 'nodeEditor' exists since 2012, but is still in a rudimentary status and cannot even work properly with container nodes? Its not rocket science to program such an editor, right?

me: Well, yes, cannot explain this myself. But...aaaaah...look behind you: a three headed dragon!

Message 6 of 14

yes, yes, I know, it makes no sense to post here, however..I had some luck and Maya did not crash immediately and so gave me some seconds to get more debug info, here is the call stack (using windbg):

('instancerData' is my own node)

The last call to my own node is 'instancerData::outputMultiData'. Here, my calculated data are given to a multi attribute of type 'MFnData::kDynArrayAttrs'. The target node is then of type 'instancer'.

 

ADDITIONAL_XML: 1

OS_BUILD_LAYERS: 1

NTGLOBALFLAG:  0

PROCESS_BAM_CURRENT_THROTTLED: 0

PROCESS_BAM_PREVIOUS_THROTTLED: 0

APPLICATION_VERIFIER_FLAGS:  0

EXCEPTION_RECORD:  (.exr -1)ExceptionAddress: 0000000000000000
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 0

FAULTING_THREAD:  0000682c

PROCESS_NAME:  maya.exe

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.

EXCEPTION_CODE_STR:  80000003

MISSING_CLR_SYMBOL: 0

STACK_TEXT:  
00000075`853e06d8 00007ff8`ca5d078e     : 000001d5`7ae56a60 000001d5`7b3405b0 00000000`00000000 00000000`00000000 : win32u!NtUserMsgWaitForMultipleObjectsEx+0x14
00000075`853e06e0 00007ff8`69fb19a6     : 000001d5`7b3405b0 000001d5`00000003 00000000`00000000 000001d5`7ae56b00 : user32!RealMsgWaitForMultipleObjectsEx+0x1e
00000075`853e0720 00007ff8`5e20d719     : 000001d5`7b3405b0 00000000`00000024 000001d5`79942000 000001e7`f2fc7a00 : Qt5Core!QEventDispatcherWin32::processEvents+0x626
00000075`853e3890 00007ff8`69f63e8b     : 00000000`00000040 00000075`00000014 000001e7`f2fc7a70 000001d5`7adf95c1 : qwindows!qt_plugin_query_metadata+0x1e99
00000075`853e38c0 00007ff8`6af7d004     : 000001d5`7adfd840 00000000`00000001 00000000`ffffffff 00000075`853e3ad8 : Qt5Core!QEventLoop::exec+0x1fb
00000075`853e3940 00007ff8`6b6f099a     : 00000075`00000040 00000075`853e3ad8 00007ff8`aa826a80 00000000`00000003 : Qt5Widgets!QDialog::exec+0x164
00000075`853e39c0 00007ff8`6b6bebb3     : 00000075`853e3aa8 00000075`00000000 00000075`853e3be8 00000000`00000000 : ExtensionLayer!QmayaMessageBox::exec+0x4a
00000075`853e39f0 00007ff8`6b6be43d     : 000001e7`f2fc8010 00007ff8`c8f6f540 000001e7`f2fc8010 00007ff8`c8f6f540 : ExtensionLayer!Tapplication::handlePlatformInitialisation+0x553
00000075`853e3b80 00007ff8`6b6b87c9     : 00000000`00000000 00000075`853e4400 000001e6`e5a913a0 00000075`853e4400 : ExtensionLayer!Tapplication::handleCrashFileInfo+0x51d
00000075`853e3d50 00007ff8`b7d8a1c4     : 00000000`000aa000 00000000`00000000 00007ff8`6b6b84d0 00000000`ffffffff : ExtensionLayer!TpanelPtrArray::`default constructor closure'+0xbf9
00000075`853e4240 00007ff8`c87bc247     : 00000000`00000000 00000075`853ff960 00007ff8`b7d8a180 00007ff8`bd0f2efa : mscoreei!InternalUnhandledExceptionFilter+0x41
00000075`853e4270 00007ff8`cb014b63     : 00000075`853e44b0 00007ff8`cb0b65c0 00000000`00000000 00000075`853e4448 : KERNELBASE!UnhandledExceptionFilter+0x1e7
00000075`853e4390 00007ff8`caffbb16     : 00007ff8`cb0e39a0 00007ff8`caf70000 00000075`853e44b0 00007ff8`caf9225b : ntdll!RtlUserThreadStart$filt$0+0xa2
00000075`853e43d0 00007ff8`cb01130f     : 00000000`00000000 00000075`853e49b0 00000075`853e5070 00000000`00000000 : ntdll!_C_specific_handler+0x96
00000075`853e4440 00007ff8`cafbb5e4     : 00000000`00000000 00000075`853e49b0 00000075`853e5070 00000000`00000000 : ntdll!RtlpExecuteHandlerForException+0xf
00000075`853e4470 00007ff8`cb00fe3e     : 40c11043`f887df20 40b26780`3ccbc5c0 000001e7`cf317480 3ff00000`00000000 : ntdll!RtlDispatchException+0x244
00000075`853e4b80 00007ff8`6a3d6e56     : 00007ff8`6a431899 00000000`00000000 00007ff8`6a3ddbce 000001d5`762790a0 : ntdll!KiUserExceptionDispatch+0x2e
00000075`853e5958 00007ff8`6a431899     : 00000000`00000000 00007ff8`6a3ddbce 000001d5`762790a0 000001d5`73832b50 : Foundation!TmultiSharedObject::singleRefCount+0x6
00000075`853e5960 00007ff8`6a42eadb     : 000001d5`81553a18 00007ff8`6a3770eb 000001d9`33d3b380 00007ff8`6a376c54 : Foundation!TdataLetter::unreference+0x19
00000075`853e5990 00007ff8`6a42b3cd     : 000001d9`33d3b360 000001d5`a2fde1b0 00000243`000002d5 00007ff8`6a376b9a : Foundation!Tdata::reset+0x6b
00000075`853e59d0 00007ff8`7f63ea83     : 00000000`00000000 cccccccc`00000201 00000075`853e5a58 000001d5`a2fde1b0 : Foundation!Tdata::operator=+0x17d
00000075`853e5a00 00007ff8`5dc523c0     : cccc0001`000002d5 cccccccc`cccccccc 00000075`853eb1d0 000001d5`73832b50 : DependEngine!TdataHandle::set+0x23
00000075`853e5a30 000001d5`5da5ccbc     : 00007ff8`7f945550 00000000`00000008 000001d5`7301ff00 00000000`00000000 : OpenMaya!Autodesk::Maya::OpenMaya20200000::MDataHandle::set+0x50
00000075`853e5a80 000001d5`5d955185     : 000001d5`83f9d960 00000075`853f76c8 00000075`853f14f8 00000075`853f1528 : instancerData!InstancerData::outputMultiData+0x1651c
00000075`853f0b40 000001d5`5d959ddb     : 000001d5`83f9d960 00000075`853f53c0 00000075`853f76d8 00000075`853f76c8 : instancerData!InstancerData::computeInputData+0x9525
00000075`853f4e50 000001d5`5d949ae5     : 000001d5`83f9d960 00000075`853f68e0 00000075`853f76d8 00000075`853f76c8 : instancerData!InstancerData::computeOutputInstanceData+0x110b
00000075`853f5e40 00007ff8`5dbe04eb     : 000001d5`83f9d960 00000075`853f7700 00000075`853f76d8 00000075`853f76c8 : instancerData!InstancerData::compute+0x2f35
00000075`853f76a0 00007ff8`7f72d269     : 00007ff8`7f945550 00007ff8`7f945550 00000075`853f7ab0 000001d5`a2fde1b0 : OpenMaya!THdependNode::computePlug+0x6b
00000075`853f7700 00007ff8`7f739f59     : 000001d5`00006800 00000075`853f7ab0 00000075`853f9300 00007ff8`7f636e25 : DependEngine!TdependNode::dbEvaluate+0x3f9
00000075`853f78d0 00007ff8`7f732604     : 00000075`853f7ab0 00000075`853f7ab0 000001d5`b2b1ec00 00007ff8`6a9dc701 : DependEngine!TdependNode::stackSafeDbEvaluate+0xb9
00000075`853f7930 00007ff8`7f733391     : 000001d5`a2fde1b0 000001d5`2af6b2e8 000001d5`939eb580 000001e7`d6751f20 : DependEngine!TdependNode::mpSafeDbEvaluate+0x34
00000075`853f7980 00007ff8`7f65598b     : 000001d6`0f98d5d0 000001d5`a2fdd970 00000075`853f7ab0 000001d6`0f98d5d0 : DependEngine!TdependNode::processEval+0x1b1
00000075`853f7a00 00007ff8`7f612a63     : 000001d6`0f98d5d0 00000075`853f7e48 00007ff8`7f945550 000001d5`a2fdd970 : DependEngine!TevaluationDebug::operator=+0xb5b
00000075`853f7a60 00007ff8`7f612c43     : 00000075`853f7e48 00000075`853f7c10 00000000`00000000 00000000`00000000 : DependEngine!Tplug::evalConnectionValue+0xe3
00000075`853f7b10 00007ff8`7f649a78     : 00000075`853f7d90 00000075`853f7e48 000001d8`80b743b0 000001d5`82749920 : DependEngine!Tplug::evaluateValue+0xf3
00000075`853f7cf0 00007ff8`7f650439     : 000001d5`82749920 00007ff8`6c538260 000001d8`80b74300 000001d8`80b743b0 : DependEngine!TdataBlockDG::evaluateValue+0x38
00000075`853f7d20 00007ff8`6bf8697c     : 00000000`00000000 000001d5`71a3e5a0 00000075`853f7ee9 ffffffff`ffffffff : DependEngine!TdataBlockDG::value+0x179
00000075`853f7e20 00007ff8`6bf852aa     : 000001d5`71a3e5a0 00000075`853f7ee9 000001d8`80b743b0 00000000`ffffffff : DataModel!TdnInstancer::getInputPointData+0x2c
00000075`853f7ea0 00007ff8`7f72d269     : 00007ff8`7f945550 00007ff8`7f945550 00007ff8`7f945550 00007ff8`6ae35e89 : DataModel!TdnInstancer::fillArrays+0xda
00000075`853f7f50 00007ff8`6be5168b     : 000001d5`71a3e500 00000075`853f8250 00000075`853f8200 00000075`853f8250 : DependEngine!TdependNode::dbEvaluate+0x3f9
00000075`853f8120 00007ff8`7f739f59     : 000001d5`71a3e5a0 00000075`853f8530 00000075`853f8c70 00000000`00000201 : DataModel!TdagObject::dbEvaluate+0x1b
00000075`853f8150 00007ff8`7f7326ec     : 00000075`853f8530 00000000`00000000 00000000`00000000 fffefffe`fffeff01 : DependEngine!TdependNode::stackSafeDbEvaluate+0xb9
00000075`853f81b0 00007ff8`7f5fecc1     : 00000000`00000000 00000075`853f83b0 00000075`853f8530 00007ff8`7f61401b : DependEngine!TdependNode::mpSafeDbEvaluateWithSet+0x8c
00000075`853f8220 00007ff8`7f612ff5     : 00000075`853f8600 ffffffff`fffffffe 00000000`00000000 00000000`00000000 : DependEngine!Tplug::processEval+0x71
00000075`853f82b0 00007ff8`7f649a78     : 00000075`853f8530 00000075`853f8600 000001d8`80b743b0 000001d5`82749988 : DependEngine!Tplug::evaluateValue+0x4a5
00000075`853f8490 00007ff8`7f650439     : 000001d5`82749988 00007ff8`6c538c38 00000075`853f9800 000001d8`80b743b0 : DependEngine!TdataBlockDG::evaluateValue+0x38
00000075`853f84c0 00007ff8`6bf83b0e     : ffffffff`ffffff00 000001d8`80b743b0 00000075`853f8930 00000075`853f9880 : DependEngine!TdataBlockDG::value+0x179
00000075`853f85c0 00007ff8`7f72d269     : 00007ff8`7f945550 00007ff8`7f945550 00000075`853f8930 00007ff8`7f61bf4f : DataModel!TdnInstancer::computeInstanceCount+0x5e
00000075`853f8630 00007ff8`6be5168b     : 000001d5`71a3e500 00000075`853f8930 00000075`853f8900 00000075`853f8930 : DependEngine!TdependNode::dbEvaluate+0x3f9
00000075`853f8800 00007ff8`7f739f59     : 000001d5`71a3e5a0 00000075`853f9880 00000075`853f9250 00000075`853f8ca0 : DataModel!TdagObject::dbEvaluate+0x1b
00000075`853f8830 00007ff8`7f7326ec     : 00000075`853f9880 00000000`00000000 00000075`853f9200 00007ff8`7f647701 : DependEngine!TdependNode::stackSafeDbEvaluate+0xb9
00000075`853f8890 00007ff8`7f5fecc1     : 00000000`00000000 00000075`853f8a90 00007ff8`7f945550 00000000`ffffffff : DependEngine!TdependNode::mpSafeDbEvaluateWithSet+0x8c
00000075`853f8900 00007ff8`7f615a5c     : 00000000`00000001 00000000`00000001 00007ff8`7f945550 00000000`00000000 : DependEngine!Tplug::processEval+0x71
00000075`853f8990 00007ff8`7f730e16     : 00000075`853f9880 00000075`853f9810 00000000`00000000 ffffffff`ffffff01 : DependEngine!Tplug::getValue+0xb0c
00000075`853f8d70 00007ff8`7f73453d     : 00000075`853f9840 00000075`853f9290 00000000`00000200 000001d5`8515af40 : DependEngine!TdependNode::getPlugValue+0x166
00000075`853f8e30 00007ff8`6be573f2     : 000001d5`71a3e5a0 fffefffe`fffeff00 000001d5`04ae5bf0 00000075`853f9880 : DependEngine!TdependNode::processMessage+0x116d
00000075`853f9190 00007ff8`7f6f051e     : 00000075`853f9a30 00000075`853f9840 00000075`853f9840 00000000`00000000 : DataModel!TdagObject::processMessage+0x3f2
00000075`853f97a0 00007ff8`6bc1db79     : 00000075`853f9840 00007ff8`6bf117f5 000001d5`71a3e5a0 00000075`853f9940 : DependEngine!TmsgPlugValue::send+0x1e
00000075`853f97f0 00007ff8`6bf8370c     : 000001d5`71a3fa38 000001e6`e4545640 00000075`853f99c9 00007ff8`00000045 : DataModel!Ttransform::xformCache+0x139
00000075`853f98f0 00007ff8`6bf14957     : 00000000`00000000 00000075`853f9a50 000001d5`71a3e5a0 00000000`00000000 : DataModel!TdnInstancer::boundingBox+0xbc
00000075`853f9a30 00007ff8`6eef22cf     : 00007ff8`7de43550 00007ff8`6eee76a8 000001e6`caf215b0 00000000`00000000 : DataModel!Ttransform::isBounded+0x17
00000075`853f9a90 00007ff8`6eef1c60     : 00007ff8`7f945550 000001e6`e4545640 00000000`00000001 00007ff8`6ede50c7 : OGSMayaBridge!OGSMayaDagObjectEvaluator::getDGBoundingBox+0x5f
00000075`853f9b20 00007ff8`6eeccd24     : 000001e6`e4545640 000001e7`95cb2708 000001e6`e4545640 00000000`00000010 : OGSMayaBridge!OGSMayaDagObjectEvaluator::doDGBoundingBox+0x1f0
00000075`853f9ba0 00007ff8`6eef093f     : 00000000`00000000 000001e7`d6498ac0 000001e6`e6dc2450 00007ff8`6eef1805 : OGSMayaBridge!OGSMayaInstancerNodeInfo::OGSMayaInstancerNodeInfo+0x3514
00000075`853f9c30 00007ff8`6ee7decd     : 00000000`ffffffff 00000000`ffffff00 000001e6`ec7e6650 00000000`00000000 : OGSMayaBridge!OGSMayaDagObjectEvaluator::PushBoundsFromDG+0x10f
00000075`853f9c80 00007ff8`6ee773b5     : 00000075`853f9f60 00007ff8`ffffffff 000001d5`ffffffff 000001d5`939ea880 : OGSMayaBridge!Ttask::syncExecuteChildren+0x8c1d
00000075`853f9d40 00007ff8`6ee75b13     : 00000075`853f9ee0 00000075`ffffffff 00000075`ffffffff 000001d5`ffffffff : OGSMayaBridge!Ttask::syncExecuteChildren+0x2105
00000075`853f9ea0 00007ff8`6ee1f3fd     : 00000075`853f9ef8 00000000`00000000 00000000`00000000 3ff00000`00000000 : OGSMayaBridge!Ttask::syncExecuteChildren+0x863
00000075`853fa080 00007ff8`6ee6a573     : 000001d5`0bc595e0 00000000`ffffff01 000001d5`0abe97e0 00000000`ffffffff : OGSMayaBridge!OGSApplicationBridge::UpdateScene+0x12d
00000075`853fa0e0 00007ff8`6ee6f480     : 00000000`ffffffff 00000000`ffffffff 00000000`00000000 00000000`00000000 : OGSMayaBridge!OGSMayaRenderer::updateScene+0x1a3
00000075`853fa140 00007ff8`6ee5e608     : 00000075`ffffffff 000001d5`298b6980 00000000`007a0790 000001d5`298b6980 : OGSMayaBridge!OGSMayaBaseRenderer::performSceneRender+0x110
00000075`853fa1b0 00007ff8`6ee5f3ce     : 000001d5`049281a8 000001d5`049281a8 000001d5`049281a8 000001d5`296e5790 : OGSMayaBridge!OGSMayaStrokePainter::isViewInfoLegal+0x658
00000075`853fa390 00007ff8`6c0078f1     : 000001d5`298f8010 000001d5`298f8010 00000075`853fa4c0 000001d5`049281a8 : OGSMayaBridge!OGSMayaStrokePainter::isViewInfoLegal+0x141e
00000075`853fa3c0 00007ff8`6c005f31     : 00000000`00000001 00000000`00000002 000001d5`298f8010 00000000`00000000 : DataModel!TidleRefreshCmd::refreshOGSRender+0x481
00000075`853fa7e0 00007ff8`6c00548f     : 000001d5`298f8000 00000000`00000000 00000000`00000001 000001d5`298b7601 : DataModel!TidleRefreshCmd::refresh+0x2b1

 

Message 7 of 14
lucericr
in reply to: BurkhardRammner

The call stack seems to indicate a crash be caused by a node being freed twice and may be due to a piece a code that is not thread-safe.  Since Maya 2016, Maya evaluates the DG in parallel threads.  If you haven't overridden schedulingType()  in your custom node, though, you're not going to be called in parallel (the default is "serial", which means no threading), so that wouldn't be the problem.  You can try to turn off parallel evaluation to rule out this possibility:
https://knowledge.autodesk.com/support/maya/getting-started/caas/CloudHelp/cloudhelp/2019/ENU/Maya-C...

If you're interested in how threading works in Maya, there is a huge article here:

https://download.autodesk.com/us/company/files/2018/UsingParallelMaya.html

 

Message 8 of 14
BurkhardRammner
in reply to: lucericr

@lucericr 

 

nice to hear from you, last time we talked was way back on CGTalk in 2012 : )

 

I had tested the parallel thing already without a change in behavior.

Today, I had already given up, but by pure chance, got another full dump which pointed me to an old candidate (I have been fighting with this bug for nearly 2 years, again and again thinking that its gone because of different changes in my code, but it always came back...). It told me that I would have a vector out of range subscript (which is impossible).

It is a vector for MVectorArrays. And the MVectorArrays are the return values of MFnArrayAttrsData::vectorArray() calls (the resulting data going to a instancer node).

When the node is called the first time, all is fine, but at the second call, I get the crash.

When I will be back at work tomorrow, I will do further tests.

Maybe somehow, the std::vector has problems dealing with the MVectorArrays, which are connected to the MFnAttayAttrsData?!?

Message 9 of 14

Soooo:

The vector 'subscript out of range' error cannot happen (I create the vector and set the correct size, then, with exactly that size value, I run a loop where I create the MVectorArray data:

theVec[i] = MFnArrayAttrsData::vectorArray("positon");

However, it crashes, saying the subscript were out of range. But there were all kinds of other error messages during the last months, all of which did not reflect the real problem, obviously...

When I now just do a '::reserve()' with the vector and than ::push_back() in the loop, the crash is gone....

BUT:

Now Maya refuses to correctly give the out plugs their values, so just 40 or so out of the ~300 instancers display their data...

I will have to investigate further, but it is obvious that something really strange goes on behind the scenes.

I can correctly take all the relevant data and create 'nParticles' with them, who are in turn connected to the instancers -> absolutely no problem..

I have just no idea how I could submit a bug, the old website is gone and all Maya offers is a 'report a problem' and the website says


PRODUCT FEEDBACK

Tell us what you think about our products and any improvements you would like to see.

 

Where is the old bug report site?

Message 10 of 14

I had a look at whats going on when the node does not output all data:

 

When there is too much data (maybe more than 50000 points, I don't know exactly), Maya tells me the content of the 'MFnArrayAttrsData'  would have zero length.

 

some pseudocode:

vector<MFnArrayAttrsData> arrayAttrDataFn(size);
vector<MVectorArray> positionVec;
positionVec.reserve(size);

for( someRange < size )
{
	MObject outM = arrayAttrDataFn.at(idx).create();
	positionVec.push_back( arrayAttrDataFn[idx].vectorArray("position") );
	(...other array data...)

	for( dataRange )
	{
		positionVec.back().set(value, id);
		(...fill other data...)
	}
}

 

When I then ask the 'MfnArrayAttrsData' :

 arrayAttrDataFn[idx].getVectorData("position").length()

Maya tells me it would be zero...

So, this is obviously wrong.

As I already said above: when there is not too much data, Maya tells me the correct size and also outputs the data.

Any help???

 

Message 11 of 14

So, this is my last post concerning this 'std::vector'-'MFnArrayAttrsData' thing.

 

I start with some basics:

You may know that, in order to output data to a instancer node, you need to create data with an object of the 'MFnArrayAttrsData' class.

MFnArrayAttrsData arrayAttrDataFn;

You add position and other data to it.

MVectorArray positions  = arrayAttrDataFn.vectorArray("position");
...add data to 'positions' and other relevant instancer data...

But when you use a std::vector container for the resulting Maya M*Arrays, Maya gets crazy and f*c*s up the container.

vector<MVectorArray> positionVec;
positionVec.reserve(4);
vector<unsigned> counts = {200, 50, 49, 85};

for( unsigned i=0; i<4; i++ )
{
	positionVec.push_back( arrayAttrDataFn.vectorArray("position") ); );

	positionVec.back().setLength(counts[i]);
	for( unsigned k=0; k<counts[i], k++ )
	{positionVec.back().set(positionValue);}
}

 As already said, at some point, Maya decides to set the content at all container indices to zero.

for( size_t i=0, l=positionVec.size(); i<l; i++ )
{cout << i << " len: " << positionVec[i].length();}

output: 
0 len: 0
1 len: 0
2 len: 0
3 len: 0 ...

And no, I did not tell Maya to do so...

 

An alternative would be to use pointers:

vector<MVectorArray*> positionVec;
positionVec.reserve(4);

But the result is also weird.

Lets say I would have 4 outputs to instancer nodes (as above), so I would create a std::vector with 4 MVectorArray pointers for the position data as a result of the 'vectorArray' method of 'MFnArrayAttrsData' (ah, yes, I need to have std::vector for other operations).

The point count for the 4 outputs should be: 200, 50, 49, 85.

I fill the MVectorArrays with the respective data.

When I then look at the content of the std::vector, all indices have the same size: 85!

vector<MVectorArray*> positionVec;
positionVec.reserve(4);
vector<unsigned> counts = {200, 50, 49, 85};

for( unsigned i=0; i<4; i++ )
{
	MVectorArray arr = arrayAttrDataFn.vectorArray("position");
	positionVec.push_back( &arr );

	positionVec.back().setLength(counts[i]);
	for( unsigned k=0; k<counts[i], k++ )
	{positionVec.back()->set(positionValue, k);}
}

for( size_t i=0, l=positionVec.size(); i<l; i++ )
{cout << i << " len: " << positionVec[i].length();}

output: 
0 len: 85
1 len: 85
2 len: 85
3 len: 85 ...

And no, I do NOT override data at the indices. Somehow, Maya does it!

(I didn`t know if that would work at all, because the 'MVectorArray arr' is created within the loop, but obviously, the data are kept alive by 'MFnArrayAttrsData')

 

So, I hope this example was clear enough.

Can anyone comment on this?

this is a bug, right?

And:  can anyone tell me where I can submit my bugs, ANYONE?

 

Message 12 of 14
lucericr
in reply to: BurkhardRammner

I migh be misreading your code sample here, but in the last example, you are calling  vectorArray("position") four times.  That method returns a proxy object used to modify an array that in Maya's data structure, not four different arrays.

 

Therefore, it makes sense that all of them are of length 85 at the end: all four objects are pointing to the same "position" array in Maya. It's the last call to setLength() that won.

 

As for putting the MVectorArray directly in an stl vector, I don't think the code handle that (i.e. there is no reference counting) and it ends creating a copy of the vector, that is no longer attached to the 'real" data.

Message 13 of 14
BurkhardRammner
in reply to: lucericr

sorry for not being precise enough....

The MFnArrayAttrsData object is created within the loop. So its always a new object.

 

std::vector : as I said earlier, Maya did not crash with smaller point counts. Also, the first ::compute call for higher counts never crashes, its the following calls to ::compute.

 

There is no alternative but to tell me how I can submit that bug.

 

Thanks for your help.

Message 14 of 14
lucericr
in reply to: BurkhardRammner

I'm thinking that if your plugin is consuming a lot of memory (for example by copying large arrays) Maya may running out of ram during evalation.  But there are also various gotchas we can run into writing plugins, for example missing dependencies, not pulling data, or other isssues. 

the form to submit Maya bugs is in Maya, in the Help->Speak Back menu.  It leads here:
https://www.autodesk.com/company/contact-us/product-feedback
You can't attach a file in there, but you should send the source code of your plugin and some way repro it, otherwise it's nearly impossible to investigate.  You should put a link in there to a .zip file with all the info we might need on dropbox for example.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report