Saltar al contenido

Volver al blog

Curiosidad

El bug de rendimiento más caro de la historia

· 8 min

El 1 de agosto de 2012, Knight Capital Group, uno de los mayores market makers de la bolsa de Nueva York en aquel momento, desplegó un software nuevo de negociación poco antes de la apertura del mercado. Cuarenta y cinco minutos después, la empresa casi quiebra.

Ilustración de un insecto, símbolo de bug de software

Un deploy en 8 servidores, pero solo 7 recibieron el código nuevo

El deploy se hizo en 8 servidores de producción, pero uno de ellos no recibió realmente la actualización, siguió ejecutando código antiguo, ligado a una funcionalidad llamada "Power Peg" que llevaba desactivada y sin uso casi ocho años.

Una flag reutilizada despertó el código muerto

El software nuevo reutilizó una flag que el código antiguo y dormido de ese octavo servidor todavía interpretaba como disparador de su propia lógica obsoleta. En cuanto el mercado abrió y empezó a llegar el flujo real de órdenes, ese único servidor se puso a ejecutar la rutina antigua sobre órdenes reales.

45 minutos sin ninguna salvaguarda que lo detuviera a tiempo

El código muerto compró y vendió acciones de cerca de 150 empresas repetidamente, de forma rápida y errática, y el equipo tardó unos 45 minutos en identificar el origen y lograr detener el proceso, ninguna salvaguarda automática de los propios sistemas de Knight detectó el problema a tiempo.

El costo: cerca de 440 millones de dólares antes de impuestos

Knight Capital reportó una pérdida de aproximadamente 440 millones de dólares antes de impuestos por el incidente, suficiente para poner en riesgo la solvencia de la empresa y llevar a su adquisición pocos meses después, poniendo fin a su trayectoria como empresa independiente.

La lección que sobrevive al caso concreto

La falla no fue un bug de lógica en el código nuevo, fue un proceso de deploy que permitió un estado inconsistente entre servidores (uno de cada ocho ejecutando código distinto al de los demás) sin ningún paso de verificación capaz de detectar esa divergencia antes de que tocara tráfico real. Este tipo de falla no tiene nada que ver con el mercado financiero en particular, y todo que ver con cómo se verifican los deploys.