Permission denied using mmap on Windows
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 36k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug report
I have a Windows service that creates a memory mapped file using the global scope and a client that reads the global scope. The problem is that the current implementation calls CreateFileMapping() instead of OpenFileMapping(). So when the client tries to connect the global scope, its throws a permission error.
The expected behavior is: Only the server has the permission the create a global memory mapped file and any client can read the created memory mapped file.
Here is a sample code:
server.py
from mmap import mmap
from pickle import load, dump
mm = mmap(-1, 32, tagname=r'Global\test')
last_request_id = None
while True:
mm.seek(0)
try:
request_id = int(load(mm))
if request_id != last_request_id:
last_request_id = request_id
print(request_id)
except Exception:
pass
client.py
from mmap import mmap
from pickle import dump
with mmap(-1, 32, tagname='Global\test') as mm:
request_id = 1
dump(request_id, mm)
Your environment
- CPython versions tested on: 3.11
- Operating system and architecture: Windows 11 - Version 22H2 (OS Build 22621.819)
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 dans Modules/mmapmodule.c autour de la ligne 1531 et consultez la gestion de mmap sous Windows ainsi que la documentation de CreateFileMapping() et OpenFileMapping(). Reproduisez l’exemple server.py et client.py sous Windows 11. C’est terminé lorsque le serveur peut créer le mapping Global et que le client peut l’ouvrir et le lire sans erreur de permission.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- operating-systems
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 35/100