MultiThreadedRendezvous Error in Pymechanical

CollinsJnr
CollinsJnr Member Posts: 17
10 Comments Name Dropper
**
edited March 5 in Structures

I am using Pymechanical and I keep getting this error

_MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with: status = StatusCode.RESOURCE_EXHAUSTED details = "to-be-sent trailing metadata size exceeds peer limit" debug_error_string = "UNKNOWN:Error received from peer {grpc_message:"to-be-sent trailing metadata size exceeds peer limit", grpc_status:8, created_time:"2024-01-30T14:31:15.8037186+00:00"}" >

My Code:

nodes = mechanical.run_python_script(""" 
import json                                                  
mesh_data = ExtAPI.DataModel.Project.Model.Analyses[0].MeshData
output_faceMesh = mesh_data.MeshRegionById(26) #26 is the Id of the surface 
input_faceMesh = mesh_data.MeshRegionById(28)  #28 is the Id of the surface 
output_nodes = output_faceMesh.NodeIds
input_nodes = input_faceMesh.NodeIds
nodes = {'output_nodes' : output_nodes,
         'input_nodes' : input_nodes    
        }
json.dumps(nodes)
            """)

I suspect this is data transfer limit problem in the gRPC framework in Pymechanical.
Particularly because I am dumping json which is larger in size compared to the protocol buffers.

If this is the case, is there a better way to extract the data?
If not, what then is the problem?

Thank you in advance

Tagged:

Answers

  • CollinsJnr
    CollinsJnr Member Posts: 17
    10 Comments Name Dropper
    **

    For anyone who has this problem in the future.
    The best way to dump large amounts of data from mechanical to Python through Pymechanical is to convert your data to strings or text.

    Strings and texts have very small data sizes, so you don't exceed the meta data limit.
    Cheers

  • Pernelle Marone-Hitz
    Pernelle Marone-Hitz Member, Moderator, Employee Posts: 871
    100 Answers 500 Comments 250 Likes First Anniversary
    ✭✭✭✭

    Hi @CollinsJnr , sorry for the late answer on this. Glad you found a workaround, but I believe this is something that should be better handled from PyMechanical, even though gRPC will have some limitations over the size limit of what can be returned (~2Gb) for security reasons. Could you please open an enhancement request by opening an issue in the PyMechanical Github repo? Many thanks