Announcements

Between mid-October and November, the content on AREA will be relocated to the Autodesk Community M&E Hub and the Autodesk Community Gallery. Learn more HERE.

Maya Hard Crash when connecting custom mesh to Bifrost node

Maya Hard Crash when connecting custom mesh to Bifrost node

jonathan_khao
Enthusiast Enthusiast
313 Views
1 Reply
Message 1 of 2

Maya Hard Crash when connecting custom mesh to Bifrost node

jonathan_khao
Enthusiast
Enthusiast

Hi, I have a customNode c++ node that outputs a single mesh (MFnMesh.create with MFnMeshData), and it seems to build a correct mesh. But when I plug it into a Bifrost graph, I get a hard crash (see below). 

 

What's odd is if I first generate the mesh, remove history (disconnect it from the custom node), Maya doesn't crash:

 

 

[CustoNode.outMesh] --> [Mesh]                     > OK 
[CustoNode.outMesh] --> [Mesh] --> [BifrostGraph]  > CRASH
                        [Mesh] --> [BifrostGraph]  > OK

 

 

If I replace CustomNode by a makeSphere, or another light custom node, it works properly.  

So I've edited CustomNode to output a simple cube (while still retaining its many inputs plugs and heavier computes), and it crashes back...

 

The top of the crash report seems to indicate there's an issue with getting Set members when the CustomNode is connected:

Crash ID 741299829

 

 

 

Exception code: C0000005: ACCESS_VIOLATION - illegal read at address 0xFFFFFFFF
Fault address:  F0FE60CB in C:\Program Files\Autodesk\Maya2024\bin\DataModel.dll
0001:003550CB Logical offset (see .map file for location)

Call stack:
    Module:  C:\Program Files\Autodesk\Maya2024\bin\DataModel.dll (-exported-)
    Location: DataModel.dllTobjectSet::getFlattenedMemberList + 4B bytes
    Decl: public: void __cdecl TobjectSet::getFlattenedMemberList(class TselectionList & __ptr64)const __ptr64
    Module:  C:\Program Files\Autodesk\Maya2024\bin\OpenMaya.dll (-exported-)
    Location: OpenMaya.dllAutodesk::Maya::OpenMaya20240000::MFnSet::getMembers + 59 bytes
    Decl: public: class Autodesk::Maya::OpenMaya20240000::MStatus __cdecl Autodesk::Maya::OpenMaya20240000::MFnSet::getMembers(class Autodesk::Maya::OpenMaya20240000::MSelectionList & __ptr64,bool)const __ptr64
    Module:  C:\Program Files\Autodesk\Bifrost\Maya2024\2.8.0.0\bifrost\bin\BifrostObjectBoardPlugin_2_8_0.dll (-exported-)
    Location: BifrostObjectBoardPlugin_2_8_0.dllmayaVectorArrayToObject + 549D8 bytes
    Decl: class Amino::Ptr<class Bifrost::Object> __cdecl mayaVectorArrayToObject(class Autodesk::Maya::OpenMaya20240000::MPlug const & __ptr64,class Autodesk::Maya::OpenMaya20240000::MDataHandle & __ptr64)
    Module:  C:\Program Files\Autodesk\Bifrost\Maya2024\2.8.0.0\bifrost\bin\BifrostObjectBoardPlugin_2_8_0.dll (-exported-)
    Location: BifrostObjectBoardPlugin_2_8_0.dllmayaVectorArrayToObject + 2516D bytes
    Decl: class Amino::Ptr<class Bifrost::Object> __cdecl mayaVectorArrayToObject(class Autodesk::Maya::OpenMaya20240000::MPlug const & __ptr64,class Autodesk::Maya::OpenMaya20240000::MDataHandle & __ptr64)
    Module:  C:\Program Files\Autodesk\Bifrost\Maya2024\2.8.0.0\bifrost\bin\BifrostObjectBoardPlugin_2_8_0.dll (-exported-)
    Location: BifrostObjectBoardPlugin_2_8_0.dllmayaVectorArrayToObject + 26F94 bytes
    Decl: class Amino::Ptr<class Bifrost::Object> __cdecl mayaVectorArrayToObject(class Autodesk::Maya::OpenMaya20240000::MPlug const & __ptr64,class Autodesk::Maya::OpenMaya20240000::MDataHandle & __ptr64)
    Module:  C:\Program Files\Autodesk\Bifrost\Maya2024\2.8.0.0\bifrost\bin\BifrostObjectBoardPlugin_2_8_0.dll (-exported-)
    Location: BifrostObjectBoardPlugin_2_8_0.dllmayaVectorArrayToObject + 1447A bytes
    Decl: class Amino::Ptr<class Bifrost::Object> __cdecl mayaVectorArrayToObject(class Autodesk::Maya::OpenMaya20240000::MPlug const & __ptr64,class Autodesk::Maya::OpenMaya20240000::MDataHandle & __ptr64)
    Module:  C:\Program Files\Autodesk\Bifrost\Maya2024\2.8.0.0\bifrost\bin\BifrostBoardExecutor_2_2_0.dll (-exported-)
    Location: BifrostBoardExecutor_2_2_0.dllBifrostBoardJob::Requirements::add + 38D064 bytes

 

 

 

I also compiled on linux to see if anything else popped up, and I didn't see any differences in the call stack, but on rare occasions, I saw a Qt related message: 

 

 

qobject::connect: cannot queue arguments of type 'tmodelnode' (make sure 'tmodelnode' is registered using qregistermetatype().)

 

 

I tried making sure the mesh is properly built, witht UVs, objectGroups, etc. Also tried connecting to the BifrostGraph via cmds.connectAttr or cmds.vnnNode, but still no luck. 

 

Any ideas on what could cause this ? I'm getting desperate here 😅 

0 Likes
Accepted solutions (1)
314 Views
1 Reply
Reply (1)
Message 2 of 2

jonathan_khao
Enthusiast
Enthusiast
Accepted solution

Nevermind, an upstream node was registered as an MPxParticleAttributeMapperNode instead of MPxNode. 

Including the wrongly registered node in the network that lead to BifrostGraph caused the crash. 

Updating the registration fixed the issue. 

 

0 Likes