BUG: locks not working as expected
Personne n'a encore pris cette issue.
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.2k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
Description
The following code:
<?php
$arquivo_lock = fopen("test.txt","a");
if (flock($arquivo_lock,LOCK_EX|LOCK_NB)) {
echo "Yes";
} else {
echo "No";
}
sleep(10);
fclose($arquivo_lock);
?>
Save the simple code above to the file test.php, for example. Now, in less than 10 seconds apart, open 2 (or more) tabs on your browser calling the file test.php and you will see every tab will show you Yes after some seconds. It should show Yes only on the first tab, all the other should return immediatly with No because I am using LOCK_NB flag.
This bug is pretty simple to reproduce and other people also confirmed it on Stackoverflow when I reported there.
PHP Version
8.x
Operating System
Confirmed at least on centos 9 stream and windows 11
Guide de contribution
Ouvrir le guide de contribution
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 exécuter la reproduction à deux onglets de test.php avec PHP 8.x dans les environnements signalés CentOS 9 Stream et Windows 11, en vous concentrant sur flock avec LOCK_EX|LOCK_NB. Suivez le point d’entrée de flock et le comportement du verrouillage spécifique à chaque plateforme ; le travail est terminé lorsque la première requête signale Yes tandis que les requêtes qui se chevauchent renvoient immédiatement No, avec une couverture des environnements confirmés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- php
- Domaine
- operating-systems
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100