Cloud wizard credentials for AWS, Azure and Google are not written through to the session store
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 79/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Área
- authentication, cloud
Línea de trabajo
Lee web/pgadmin/utils/session.py y compara las actualizaciones de los proveedores AWS, Azure y Google en rds/__init__.py, azure/__init__.py y google/__init__.py con el cambio del proveedor Starfleet en #10499. Sigue cómo las actualizaciones anidadas de sesión llegan a save_session y, después, comprueba que cada proveedor marque la sesión como modificada y fuerce una escritura en disco. El trabajo estará terminado cuando el estado actualizado de los proveedores se conserve para las siguientes solicitudes del asistente entre distintos workers.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The AWS, Azure and Google steps of the cloud deployment wizard store their verified credentials or authentication state in the Flask session, and the next wizard request (fetching regions, instance types and so on) expects to find it there. Under a deployment with more than one worker process, that request can fail as unauthenticated, because the session is never written to disk where another worker could read it. There are two causes:
FileBackedSessionManager.put(web/pgadmin/utils/session.py) skips the disk write if the session was last written withinPGADMIN_SESSION_DISK_WRITE_DELAY(10 seconds by default) unlesssession.force_writeis set, and none of the three providers set it.- The providers mostly mutate a nested dictionary, e.g.
session['aws']['secret'] = ...inrds/__init__.py,session['azure']['state']/['auth_type']/['azure_tenant_id']inazure/__init__.py, andsession['google']['client_config']/['state']ingoogle/__init__.py.ManagedSessionis aCallbackDict, which only notices top-level assignments, so when the provider's key already exists the session is not even marked modified andsave_sessiondoes not save it at all. The change survives only in the per-workerCachingSessionManagercache.
The configurations pgAdmin ships and documents all run a single worker, which is why this has gone unnoticed; it affects people who run more than one process, and also loses the state if the server restarts within the write-delay window.
The fix is to set session.force_write = True and session.modified = True after updating the provider's session state, as the pgEdge Starfleet provider does in #10499.
- Lenguaje dominante
- Python
- Estrellas
- 3.9k
- Forks
- 908
- Merge medio
- 1 d 6 h
- PR fusionados (30 d)
- 38
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de pgadmin-org/pgadmin4
-
Feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
pgadmin-org/pgadmin4#10426 · 3 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
pgadmin-org/pgadmin4#10361 ·
Los mantenedores suelen responder en 1 día
-
Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
pgadmin-org/pgadmin4#10272 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
Feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
pgadmin-org/pgadmin4#10157 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Feature
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
pgadmin-org/pgadmin4#10570 ·
Los mantenedores suelen responder en 1 día
Todos los issues de pgadmin-org/pgadmin4
Issues similares
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
btclib-org/btclib-node#1955 ·
Los mantenedores suelen responder en 1 día
-
documentation v0.9.2
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
khuisman/mcp-gee-sweet#1033 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ossf/cve-bin-tool#5966 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 2 días
-
write_iceberg ignores the table's write.parquet.compression-codec propertyPosiblemente ocupada @YuangGao la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Eventual-Inc/Daft#7606 ·
Los mantenedores suelen responder en 1 día