Diagnosticar un interbloqueo en un indexador multihilo en C
Visión general
De qué trata este proyecto.
Clona el repositorio del indexador (proporcionado), configura ThreadSanitizer y Helgrind, y produce un caso de prueba que reproduzca el interbloqueo en menos de 5 minutos. Diagnostica la violación de orden de cerrojos (pista: la caché de inodos y la cola adquieren cerrojos en órdenes opuestos en dos rutas distintas). Propón 2 correcciones candidatas — una de cambio mínimo y otra estructural — y recomienda cuál llevar a producción con justificación. Escribe un postmortem de 4 páginas con cronología, causa raíz, corrección y 3 mejoras de proceso que lo habrían detectado antes. Entrega la prueba de reproducción, el parche y el postmortem.
El Briefing
Lo que harás y lo que demostrarás.
Reproducir, diagnosticar y corregir un interbloqueo de hilos en un indexador de 4.000 líneas de C y escribir un postmortem que prevenga la misma clase de bug.
Earning criteria — what you'll demonstrate
- Aplicar las condiciones de Coffman para diagnosticar un interbloqueo del mundo real
- Usar ThreadSanitizer y Helgrind para sacar a la luz violaciones de orden de cerrojos
- Distinguir correcciones de cambio mínimo de correcciones estructurales y recomendar con honestidad
- Escribir un postmortem que impulse mejoras de proceso en lugar de buscar culpables
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
Carreras
Roles para los que esto te prepara.
Títulos reales. Puentes de habilidades reales. Elige el que más se acerque a tu trayectoria.
Trayectorias profesionales que esto construye
Roles canónicosIngeniero de Software
Diagnosticar un interbloqueo real con herramientas estándar y entregar un postmortem creíble es el tipo de evidencia de concurrencia que abre puertas en equipos de sistemas e infraestructura.
Este proyecto afina
- debugging
- concurrency
- incident-analysis
Ingeniero de Backend
Quien sabe leer trazas de cerrojos en C resuelve problemas de concurrencia equivalentes en lenguajes de mayor nivel sin perderse en el ruido.
Este proyecto afina
- synchronization
- concurrency
- debugging