Ha habido mucho a lo largo de los años.
La crisis más cara, no estoy seguro de si fue “producción” como sucedió en las unidades enviadas, no en un centro de datos, fue cuando un cliente envió un teléfono móvil utilizando nuestra base de datos. Se vendió como hotcakes en China y Japón, con más de 40 millones de unidades vendidas finalmente de ese modelo.
Desafortunadamente, comenzamos a recibir informes de corrupción de la base de datos desde el campo. Recuperamos algunos archivos y, después de un análisis rápido, me di cuenta de que las áreas defectuosas tenían exactamente 1024 bytes de longitud o múltiplos exactos de las mismas, y estaban llenas de todos los 0xFF (8 bits iguales a 1 para aquellos que no pueden leer hexadecimal). :).
- Cómo implementar mi aplicación web en mi propio dominio
- ¿Qué está haciendo Google para combatir la idea errónea popular de que las aplicaciones de la Tienda Web son "solo marcadores"?
- Cómo hacer que las personas se registren en una plataforma cuando el público objetivo no es experto en tecnología o no está dispuesto a llenar formularios
- ¿Cómo se crea un entorno de mundo virtual en línea que la gente realmente usará?
- ¿Cómo externalizo la interfaz de usuario de una aplicación web dinámica?
Dado que no había forma física de que nuestro software escribiera kilobytes exactos de 0xFF (habían configurado nuestro tamaño de página para que fuera más grande que eso), trabajamos con el proveedor y descubrimos que había un error en su controlador Flash que ocasionalmente “olvidaba”. “para escribir bloques en el almacenamiento, dejando los Flash 0xFF en su lugar sin completar las escrituras en situaciones excepcionales, especialmente si el teléfono cambió de contexto en un momento crucial.
Sucedió en aproximadamente el 0.01% de los teléfonos, pero esto fue suficiente para un retiro del producto.
Para ayudar con el retiro, escribí una utilidad para que la base de datos leyera los datos no incorrectos para que pudieran salvarse y guardarse en otro archivo (normalmente, detectaría la corrupción y se cerraría).
En general, pasé unas 40 horas seguidas tratando de descubrir qué demonios estaba pasando, demostrando que no podría ser nuestro material y codificando la utilidad de recuperación de datos. Como el cliente estaba en Japón, el acceso al hardware físico no iba a suceder, así que tuve que hacer mucho de esto por teléfono.