ansys / ansys/api-eigen-example

vector serialization does not take into account endianness

Ouverte
#53 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
C++ gRPC Python
Langage dominant
Python
Étoiles
8
Forks
0
Merge moyen
11 h 54 min
PR mergées (30 j)
10

Description

The [gRPC protocol is defined](https://github.com/ansys/api-eigen-example/blob/108085fcaa860a9d1e27abbdc561c160a98e09e3/src/ansys/eigen/protos/grpcdemo.proto#L21) as sending over the bytes of arrays directly, but does not take into account endianness. This means the protocol will fail spectacularly (type 3 error, bad data with no error) if the client and server machines have different native endianness.

https://github.com/ansys/api-eigen-example/blob/108085fcaa860a9d1e27abbdc561c160a98e09e3/src/ansys/eigen/cpp/grpc/client/src/GRPCClient.cpp#L499

https://github.com/ansys/api-eigen-example/blob/108085fcaa860a9d1e27abbdc561c160a98e09e3/src/ansys/eigen/python/grpc/client.py#L280

Unless there is another reason, I recommend using gRPC arrays instead of bytes. gRPC can handle this for us.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par la définition référencée de grpcdemo.proto et les points de sérialisation dans src/ansys/eigen/cpp/grpc/client/src/GRPCClient.cpp et src/ansys/eigen/python/grpc/client.py. Comparez la représentation actuelle basée sur des octets avec les tableaux gRPC et déterminez le comportement entre différents ordres des octets qui doit être préservé. Le travail est terminé lorsque des clients et des serveurs ayant un ordre des octets natif différent échangent des données vectorielles sans corruption silencieuse.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cpp, grpc, python
Domaine
api, backend
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.