2 solicitudes concurrentes se mezclan en la aplicación Node.js

Estoy completamente perplejo por lo que noté hoy en mi aplicación.

Tengo una aplicación escrita en node.js que se ejecuta en nginx con mongodb en el backend. Tengo un calificador ‘authenticateUser’ que admite un nombre de usuario y una contraseña. A continuación, consulta a mongodb para recuperar el documento de los usuarios y comprueba si la contraseña coincide.

Escribimos un script que básicamente llama ‘authenticateUser’ en un bucle 100 veces. Funcionó bien Sin errores. Ahora ejecutamos el mismo script desde 2 terminales, uno para la factura del usuario y el otro para el usuario sam. Comenzamos a ver fallas en ambos terminales. Yo diría que alrededor del 10% de las solicitudes fallaron con errores de contraseña no válidos.

Cuando inspeccionamos los archivos de registro, nos sorprendió completamente que el nombre de usuario de Bill se confundiera con la contraseña de sam. No tenemos idea de lo que está pasando? Debemos estar haciendo algo obviamente mal. ¿Qué es? ¿No están las 2 peticiones completamente aisladas unas de otras?

Cualquier ayuda es muy apreciada.

¡Muchas gracias! SU

¿Usas variables globales a menudo? Falta de var es una causa común de tales errores.

Y sí, me gustaría ver un código fuente …