apache / apache/arrow-java

[Java] Unexpected Allocator states created after allocating buffer whose AllocationManager has different size from the requested size

Offen
#257 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Type: bug
Vorherrschende Sprache
Java
Sterne
94
Forks
152
Ø Merge
3 T. 16 Std.
Gemergte PRs (30 T.)
11

Beschreibung

If a buffer with altered AllocationManager size (which means, the size is different from request size) is created from a Allocator, then allocator still adds the request size rather than the altered size to its accountant. As a result inconsistency will be made once the buffer is getting destroyed because at that time the actual buffer size is used for releasing.

The predefined AllocationManager implementations don't make such inconsistencies since they always grant chunks within the request size. However we have [documented](https://github.com/apache/arrow/blob/e5f3e04b4b80c9b9c53f1f0f71f39d9f8308dced/java/memory/memory-core/src/main/java/org/apache/arrow/memory/AllocationManager.java#L184-L191) that the actual size can be altered from request size in custom implementations of AllocationManager. So this kind of customization should be supported.

**Reporter**: [Hongze Zhang](https://issues.apache.org/jira/browse/ARROW-14034) / @zhztheplayer
**Assignee**: [Hongze Zhang](https://issues.apache.org/jira/browse/ARROW-14034) / @zhztheplayer
#### PRs and other links:
- [GitHub Pull Request apache/arrow#11182](https://github.com/apache/arrow/pull/11182)

**Note**: *This issue was originally created as [ARROW-14034](https://issues.apache.org/jira/browse/ARROW-14034). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit der im Issue verlinkten Dokumentation zur Größe von AllocationManager und verfolge dann die Abrechnung des Allocators, wenn ein Puffer erstellt und zerstört wird. Sieh dir PR apache/arrow#11182 für die bereits laufenden Arbeiten an. Als erledigt gilt die Aufgabe, wenn benutzerdefinierte AllocationManager-Größen die Abrechnung des Allocators bei Allokation und Freigabe nicht mehr inkonsistent machen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.