A veces nos encontramos errores técnicos en aplicaciones, scripts, etc. y los resolvemos pero no guardamos en ningún lado la solución y los síntomas. Quise hacer una especie de repositorio de problemas/soluciones, y tener disponibles mis experiencias para todos. Espero no volver a decir "¡esto ya me había pasado, pero no me acuerdo cómo lo resolví!" [temas: Oracle DB, korn shell scripts, Oracle App Server, Oracle Collaboration Suite, Windows, Linux, ...]

martes, agosto 12, 2008

mensaje *** glibc detected *** malloc(): memory corruption: 0x081a2f80 *** sale al editar archivos con vi.

Era uno de esos días en que pienso "pa'qué diablos me levanté hoy" (en realidad no pensé eso de "diablos", sino otra cosa, pero mejor ahí la dejamos). Me disponía a generar unos scripts de ldap y me conecté a nuestro servidor linux SUSE9, con el usuario "oracle", e intenté abrir un archivo nuevo con el vi, cuando de pronto, ¡oh, sorpresa! Que sale el siguiente mensaje:

*** glibc detected *** malloc(): memory corruption: 0x081a2f80 ***

y pa'colmo de males, se quedó congelado el asunto, es decir, no volvió el "prompt". Guardé la calma y tranquilamente le di un "Cltr-C" para ver si volvía, y... ¡nada! Abrí otra sesión y le tuve que dar "kill -9" a mi proceso de vi. (Después descubrí que con Ctrl-Z me podía salir y luego ejecutar el kill desde esa misma sesión)

Fue un largo día, sin nada bueno qué recordar. Terminó al fin, y me fui a dormir.

En otro día menos nefasto, buscando en internet me encontré con un sitio donde recomendaban definir una variable de ambiente llamada MALLOC_CHECK_. Así procedí, pués:

export MALLOC_CHECK_=1

y volví a abrir el vi, el cual ya abrió y pude ver un archivo de prueba. Entonces, al cerrar el vi, salió el siguiente mensaje:

E138: Can't write viminfo file

el cual busqué de nuevo en internet, y me encontré con lo siguiente:

When you get error "E138: Can't write viminfo file"
check that no old temp files were left behind (e.g.
~/.viminf*) and that you can write in the directory of
the .viminfo file.
(http://www.mydatabasesupport.com/forums/shell/176820-vi-error.html)

Así que busqué en el home del usuario oracle los dichosos archivos .viminf*:

ls -ltra

y los borré todos (excepto .viminfo, si mal no recuerdo... o quizá ese también... mmm, pos mejor respáldenlo, por si acaso). Hecho esto, volví a abrir el vi y voilà!! Ya no hubo errores. Luego de terminada la misión, quité la variable MALLOC_CHECK_ (unset MALLOCK_CHECK_).

Listones.

Let's vi the world!

1 Comments:

Blogger Pedro Osorio G. said...

Gracias por estos tip. En mi caso me ha pasado lo mismo que comentas; ocurren errores y no los he comentado, y luego me topo con ellos nuevamente y no recuerdo como los resolví.. Tomaré tu consejo y crearé mi propio regristro de errores y sus soluciones.

Acabo de ocupar una de tus ayudas para resolver el problema del:
E138: ¡No se puede cambiar el fichero viminfo [NULL]!

7:08 a.m.

 

Publicar un comentario

<< Home