Hay veces que con los programas y los ordenadores suceden cosas extrañas. En ocasiones estos problemas le aparecen a un usuario sin experiencia y le cuesta explicar lo que pasa. Muchas veces en el otro lado, el técnico va oyendo al usuario y va pensando que no le dicen la verdad, que están haciendo otras cosa que no cuentan, ya que la aplicación lleva 4 años sin fallas y ese módulo está más que probado.
Pero hay veces que los fenómenos extraños le pasan a un usuario experimentado… y en un entorno controlado. Y amigos aquí si que las cosas se complican. Y esto es lo que nos está pasando a nosotros mismos los últimos días en la tienda, que vamos cazando moscas y las moscas todavía nos ganan la guerra.
Hace un mes el PC desde el que llevamos la facturación de la tienda nos dio un pequeño susto. Como además queríamos tener un MiniPC con placa Mini Itx de demostración, pues decidimos cambiar el PC. Montamos un Core2Duo 5200, con una placa base Zotac Mini Itx en una SuperCase M 800 muy pequeña y mona. Al estar a la vista de los clientes, pensamos que podría fomentar la venta de este tipo de PCs. Hace dos fines de semana llevamos a cabo la migración. No tuvimos ningún problema digno de mención. Copia de seguridad extra al servidor por si acaso. Instalamos Windows Vista en el nuevo PC, instalamos el Firefox, el Thunderbird, el OpenOfficce y nos traemos las copias de los datos. Luego instalamos la impresora. El escaner nos dio guerra (lo contaré otro día si tengo tiempo) porque decidimos poner un Vista de 64 bits y no se llevaban bien. Y al final copiamos el programa de facturación. Este programa no necesita ni siquiera instalación, se copia al directorio y a funcionar.
A los tres días de estar trabajando con el nuevo PC, me llama mi socio, no puede dar factura de proveedores de alta en el programa. Como el programa lo confeccione yo, me acerco a mirar y veo la base de datos de proveedores corrupta. Un error que en los 8 años que tiene el programa nunca nos había pasado. Tiro de copia de seguridad y seguimos trabajando. Al día siguiente, la base de datos de artículos aparece con un error en los ficheros de índice. Reconstruyo los índices y problema resuelto. Luego tengo que hacer un abono de una factura ya hecha y aparece un error y el programa se cierra. Y aquí ya empezamos a mosquearnos.
El programa llevaba funcionando con el PC antiguo también con Windows Vista desde hacía más de dos años y ninguno de estos problemas nos había aparecido. Al final, pensando que tal vez al copiar el directorio alguna DLL quedó corrupta, decido volver a recompilar todo. Además como quería hacer un par de arreglos en el programa, pues aprovecho para hacerlo.
El compilador lo tengo en un equipo con Windows Vista Bussines (la misma que el equipo de facturación) y hago los cambios, recompilo y no falla nada en el PC donde compilo el programa. Todo funciona, no falla nada. Así que genero un instalador nuevo y reinstalo todo en el PC de la tienda. Me voy a la factura que había que abonar… y el mismo error. Vuelvo al compilador, le pongo un log al módulo que parece que falla, vuelvo al PC de la tienda y a ejecutar ese módulo. Captura el log y a buscar en la red. Al final, se trata de un error indeterminado que no saben porque aparece, ni como se resuelve. Como siempre le echan la culpa al controlador de memoria, a algún puntero que se ha salido de madre… pero encuentro a varios programadores con el mismo error que yo… en el PC del programador el error no aparece y en algún PC del cliente aparece. Pero con Windows Vista, con XP, con 98….
Claro, al principio yo le decía a mi socio que estaba haciendo algo mal. Pero no pude mantener esa posición mucho tiempo, porque cuando yo usaba el programa me hacía lo mismo… ya desesperados ayer por la tarde montamos otro PC casi igual, instalamos el mismo Vista… y el error no aparece. Y ahora voy a formatear el PC original, a ver si tampoco aparece o es algo del hardware (la placa base no tiene el mismo chipset).
Pero menos mal que nos está pasando a nosotros y con todo el entorno nuevo y controlado, que si nos pasa con un cliente donde no controlamos el entorno….
9 Comentarios
Comentarios Cerrados
Jue, se parece a un usuario que tengo yo, que haga lo que haga, reinstale lo que reinstale y le de el equipo que el de, peta 🙁
Cuando pasan estas cosas me acuerdo de la película “Yo Robot” concretamente en la parte en la que dicen
“Siempre han existido fantasmas en la maquinas. segmentos aleatoreos de codigo, que se agrupan para formar protocolos inesperados.
Sin aviso, estos radicales libres generan una especie de voluntad propia, creatividad, algo muy parecido a lo que llamamos “alma”.
Porque cuando se deja cierto grupo de robots en la oscuridad, estos buscan la luz?
Que impulsa a los robots almacenados en un espacio vacio a reunirse en vez de quedarse solos?
Como explicamos esta conducta? Segmentos aleatorios de codigo? O es algo mas?
Cuando se convierte en conciencia un diagrama perceptual?
Cuando se convierte un sensor diferencial en la busqueda de la verdad?
Cuando se convierte un simulador de personalidad, en una dolorosa particula del alma?…”
Qué seria de nosotros sin estos expedientes X ¿y lo bien que nos lo pasamos? bueno, o igual no tanto.
Tendero, eso que te pasa a ti es bastante común, sobre todo en el desarrollo de sistemas. En general se trata de un bug del programa que se da en según qué configuraciones de equipo. La solución pasa por enchufar el remote debugger en el ordenador fallante y depurar sobre el remoto y seguro que descubres el problema, que suele ser memoria usada sin asignar, problemas de sincronización (sobre todo si desarrollas en un mononúcleo y luego pasas a doble o si desarrollas en un dual y luego pasas a un quad) y ficheros con bloqueos…
Te puedo asegurar que no es ningún “fantasma” del sistema operativo y sí una falla del programa en cuestión. Por experiencia propia.
Uhmm. Yo no descartaria error fisico leve , un modulo de memoria con alguna zona mal, el disco duro dando problemas intermitentes… A veces, solo una base de datos, que le gusta “expandirse” por la memoria, es capaz de provocar el fallo.
Esos fallos fisicos son muy puñeteros…
¿puede ser un fallo de red?
en un momento dado, que el servidor entra en standby, que se bloquee la tarjeta de red…
El error mas jxxxx que recuerdo fue un programa de gestón desarrollado en clipper (ficheros indexados) que pasé de monousuario a multiusuario.
Todas mis pruebas en desarrollo ok (no era el primer multiusuario con esa herramienta). Pero cuando lo instalo y pruebo en el cliente (estaciones w98 + servidor nt) el alta de registros hace cosas “raras”
Sinceramente, acojonado. Sobre todo, por las repercusiones sobre otros sistemas: si el algoritmo es el mismo y en la instalación X falla ¿por qué no puede fallar en los demás? ¿puede haber algún flaw que se me ha escapado y tengo una bomba potencial?
Después de un fin de semana de infierno, reproduciendo la instalación hard del cliente y probando la aplicación, veo la luz: leo sobre un error del redirector de red de w98 que puede informar mal de la longitud de un fichero compartido (y, con clipper, se añaden registros “al final” con lo que ese dato es crítico)
Apliqué el dichoso parche de m$ a las estaciones y todo comenzó a funcionar. Menudo infierno hasta que lo descubrí.
batallitas, batallitas, batallitas
No sera problema de la versión 64 Bits¿?