[Java] Unexpected Allocator states created after allocating buffer whose AllocationManager has different size from the requested size
- Lenguaje dominante
- Java
- Estrellas
- 94
- Forks
- 152
- Merge medio
- 3 d 16 h
- PR fusionados (30 d)
- 11
Descripción
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.*
Guía de contribución
Línea de trabajo
Comienza con la documentación sobre el tamaño de AllocationManager enlazada en el issue y, después, sigue la contabilidad del allocator cuando se crea y se destruye un búfer. Revisa el PR apache/arrow#11182 para consultar el trabajo que ya está en curso. Se considera terminado cuando los tamaños personalizados de AllocationManager ya no dejan inconsistente la contabilidad del allocator entre la asignación y la liberación.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- backend
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 25/100