JavaWebStack / JavaWebStack/orm
Queue.take in SQLPool can produce deadlock
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 7
- Forks
- 1
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
Describe the Bug
In SQLPool we use take on the queue to wait for a connection to become available. If no connections become available (for example if a single thread is using up all connections) it produces a deadlock causing a lockup of the entire application since all database queries will run into a deadlock
To Reproduce
Steps to reproduce the behavior:
- Set the pool size to 1
- Call get once
- Call get a second time -> gets stuck
Expected behavior
The pool should use poll instead and throw an Exception after a reasonable amount of waiting time preventing a lockup of the entire application
Environment Information:
- Java Language Level 8
- Version 1.0.3
Additional Context
The root cause of this might be a different issue since the pool shouldn't have ran out of connections in the first place. We can check this issue once proper exceptions are thrown.
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.
Piste de recherche
Commencez par le chemin SQLPool qui utilise Queue.take, puis reproduisez le problème avec une taille de pool de 1 en appelant get deux fois. Comparez le comportement de blocage actuel avec l’attente temporisée et l’exception attendues, et vérifiez que l’application ne reste plus bloquée lorsqu’aucune connexion ne devient disponible.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- databases
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100