Intento escribir el código de la base de datos para asegurarme de que no esté sujeto a condiciones de carrera, para asegurarme de que he bloqueado las filas o tablas correctas. Pero a menudo me pregunto: ¿es correcto mi código? ¿Es posible forzar que se manifiesten las condiciones de carrera existentes? Quiero asegurarme de que si suceden en un entorno de producción, mi aplicación hará lo correcto.
En general, sé exactamente qué consulta simultánea puede causar un problema, pero no tengo idea de cómo obligarlos a ejecutarse simultáneamente para ver si ocurre el comportamiento correcto (por ejemplo, usé el tipo correcto de bloqueo), que los errores correctos son arrojado, etc.
Nota: Uso PostgreSQL y Perl, por lo que si esto no se puede responder genéricamente, probablemente debería volver a etiquetarse como tal.
Actualización: preferiría que la solución fuera programática. De esa manera puedo escribir pruebas automatizadas para asegurarme de que no haya regresiones.