apache / apache/arrow-java

[Java] ArrowRecordBatch Body Length Computation Only Accounts for Last Buffer

Ouverte
#188 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Type: bug
Langage dominant
Java
Étoiles
94
Forks
152
Merge moyen
3 j 16 h
PR mergées (30 j)
11

Description

### Describe the bug, including details regarding any error messages, version, and platform.

Hi Arrow Community,

I believe `ArrowRecordBatch::computeBodyLength` has an implementation bug. It does the following

```
for (int i = 0; i < buffers.size(); i++) {
ArrowBuf buffer = buffers.get(i);
ArrowBuffer layout = buffersLayout.get(i);
size = layout.getOffset() + buffer.readableBytes();

// round up size to the next multiple of 8
size = DataSizeRoundingUtil.roundUpTo8Multiple(size);
}
return size;
```

Since `size` is being assigned and not incremented at first - does this mean computeBodyLength only accounts for the last buffer ?

### Component(s)

Java

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par ArrowRecordBatch::computeBodyLength et examinez comment la disposition des buffers et les octets lisibles contribuent à la valeur renvoyée. Reproduisez le calcul avec plusieurs buffers, puis vérifiez le code Java environnant ou les tests pour connaître la sémantique attendue de la longueur du corps. C’est terminé lorsque le calcul tient compte de chaque buffer et conserve l’arrondi requis à 8 octets.

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

Évaluation

Stack technique
java
Domaine
data-engineering
Type d'issue
Bug
Difficulté
2/5
Temps estimé
1-3 heures
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.