[Bug] Cluster rewrite closes the shared IOManager, breaking later spills of the same write
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- java, spark
- Domaine
- data-engineering
Piste de recherche
Commencez par Sorter.close() et le chemin clusterRewrite, puis suivez la propriété partagée de IOManager et du buffer du sorter. Vérifiez la fin du traitement en exécutant un bucketed append-only clustering qui déborde sur plusieurs groupes sans FileNotFoundException, et confirmez que le RecordReaderIterator d’entrée est fermé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Search before asking
- I searched in the issues and found nothing similar.
Paimon version
master
Compute Engine
Flink / Spark (bucketed append-only table clustering)
Minimal reproduce step
On a bucketed append-only table with clustering enabled, trigger a compaction whose write instance clusters more than one (partition, bucket) group, and give the sort buffer enough data to spill (a small write-buffer-size / small page size, or enough rows). The first group's clustering succeeds. The second one throws java.io.FileNotFoundException: .../paimon-io-*/....channel (No such file or directory) as soon as its sort buffer spills.
What doesn't meet your expectations?
Sorter.close() closes the IOManager it was handed. That IOManager belongs to the write and is shared by everything the write does, and its spill directories are created once, when the manager is constructed. Closing it deletes those directories, so after the first clustering round any later spill of the same write instance fails with FileNotFoundException.
Expected: clustering a table whose write spills across more than one group does not fail.
Anything else?
Fix direction: Sorter must not close the caller-owned IOManager. The sorter's own resources are released by buffer.clear(), which deletes its spill channels through the buffer's private SpillChannelManager, so nothing sorter-owned leaks. Separately, the sorter's input RecordReaderIterator was never closed by clusterRewrite; close it in Sorter.close().
Are you willing to submit a PR?
- I'm willing to submit a PR!
- Langage dominant
- Java
- Étoiles
- 3.4k
- Forks
- 1.4k
- Merge moyen
- 1 j 14 h
- PR mergées (30 j)
- 468
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/paimon
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
[Bug] [Hive] IndexOutOfBoundsException when converting an unavailable dynamic BETWEEN predicate Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Toutes les issues de apache/paimon
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
infinispan/infinispan#18150 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
-
untriaged
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
opensearch-project/k-NN#3597 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100