ansys / ansys/api-eigen-example

vector serialization does not take into account endianness

Abierto
#53 4 comentarios 0 reacciones 0 asignados Ver en GitHub
C++ gRPC Python
Lenguaje dominante
Python
Estrellas
8
Forks
0
Merge medio
11 h 54 min
PR fusionados (30 d)
10

Descripción

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.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comience con la definición referenciada de grpcdemo.proto y los puntos de serialización en src/ansys/eigen/cpp/grpc/client/src/GRPCClient.cpp y src/ansys/eigen/python/grpc/client.py. Compare la representación actual basada en bytes con los arrays de gRPC y determine el comportamiento entre diferentes endianness que debe conservarse. Se considera terminado cuando los clientes y servidores con diferente endianness nativo intercambian datos vectoriales sin corrupción silenciosa.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cpp, grpc, python
Área
api, backend
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.