Hola sebastian, estuve viendo tus "log" y he observado lo siguiente
1) el descriptor 3--->/dev/tty
4--->/dev/ptyp0
Esto es algo anormal ya que el mc es llamado a traves de una ventana que
se conecta con un socket UNIX duplex al server por lo que el descriptor
que apunta a tty no deber'ia estar abierto. A menos que el MC sea llamdo
desde consola con lo cual el 4 deber'ia estar cerrado.
2) La secuencia
open("/dev/tty", O_RDWR) = 3
ioctl(3, TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(3, TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(3, SNDCTL_TMR_STOP, {B9600 -opost isig -icanon -echo ...}) = 0
sigprocmask(SIG_SETMASK, [], NULL) = 0
ioctl(3, TCGETS, {B9600 -opost isig -icanon -echo ...}) = 0
ioctl(3, SNDCTL_TMR_STOP, {B9600 -opost isig -icanon -echo ...}) = 0
ioctl(3, SNDCTL_TMR_START, {B9600 -opost isig -icanon -echo ...}) = 0
sigprocmask(SIG_BLOCK, [INT QUIT TSTP TTIN TTOU], []) = 0
brk(0x80dc000) = 0x80dc000
sigprocmask(SIG_SETMASK, [], NULL) = 0
sigaction(SIGINT, {0x807eb50, [], 0}, {SIG_DFL}) = 0
Refuerza el hecho de que a traves de la tty est'a leyendo algo, ya que
llamada ioctl apunta al descriptor 3, la macro TCGETS, le indica que lea
la informaci'on desde una terminal a 9600 baudios, etc..., SIG_BOCK coloca
la mascara de se~nales a bloqueo de se~nales y te entrampa el SIGINT que
es el "^C", lo curioso es saber que proceso lo gener'o? Pero lo resuelve
muy bien y sigue adelanmte con otras tareas el MC. Pens'a que de ahora en
mas tenes una terminal de consola abiera al LIMBO?
Fijate ahora
write(1, "qqqqqqqqqqqqqqqqqqqqqqqqqqqj\33["..., 254) = 254
gettimeofday({949967514, 536688}, NULL) = 0
sigaction(SIGINT, {0x807eb50, [], 0}, NULL) = 0
select(1024, [3 4], NULL, NULL, NULL) = 1 (in [4])
sigaction(SIGINT, {SIG_IGN}, NULL) = 0
select(1024, [4], NULL, NULL, {0, 0}) = 1 (in [4], left {0, 0})
read(4, "[root@Hercules sebas]# ", 100) = 23
select(1024, [4], NULL, NULL, {0, 0}) = 0 (Timeout)
write(1, "\33[m[root@Hercules sebas]#\33[2"..., 33) = 33
sigaction(SIGINT, {0x807eb50, [], 0}, NULL) = 0
select(1024, [3 4], NULL, NULL, NULL) = 1 (in [3])
sigaction(SIGINT, {SIG_IGN}, NULL) = 0
select(1024, [3 4], NULL, NULL, NULL) = 1 (in [3])
select(4, [3], NULL, NULL, {10, 0}) = 1 (in [3], left {10, 0})
read(3, "\t", 1) = 1
time(NULL) = 949967516
chdir("/usr/local/apache/conf") = 0
write(4, " cd ", 4) = 4
write(4, "/usr/local/apache/conf", 22) = 22
write(4, "\n", 1) = 1
--- SIGCHLD (Child exited) ---
Resuelve la patologi'ia del repetitivo "^C" por el descriptor 4 (asociado
a la ventana que abriste) matando a un proceso hijo, que muy
probablemente sea un SubShell. La lamada select() indica que el estado del
descriptor 3 camb'io por el ingreso de datos, del LIMBO? y del descriptor
4. Esto se repite en muchos lugares del log.
Finalmente
--- SIGCHLD (Child exited) ---
wait4(629, [WIFEXITED(s) && WEXITSTATUS(s) == 0], WNOHANG|WUNTRACED, NULL)
= 629
wait4(628, 0xbffffb94, WNOHANG|WUNTRACED, NULL) = -1 ECHILD (No child
processes)
sigreturn() = ? (mask now [])
1) sigaction(SIGINT, {SIG_IGN}, NULL) = 0
2) sigaction(SIGINT, {0x807eb50, [], 0}, NULL) = 0
3) select(1024, [3 4], NULL, NULL, NULL) = 1 (in [4])
4) sigaction(SIGINT, {SIG_IGN}, NULL) = 0
sigaction(SIGINT, {0x807eb50, [], 0}, NULL) = 0
select(1024, [3 4], NULL, NULL, NULL) = 1 (in [4])
sigaction(SIGINT, {SIG_IGN}, NULL) = 0
sigaction(SIGINT, {0x807eb50, [], 0}, NULL) = 0
select(1024, [3 4], NULL, NULL, NULL) = 1 (in [4])
sigaction(SIGINT, {SIG_IGN}, NULL) = 0
sigaction(SIGINT, {0x807eb50, [], 0}, NULL) = 0
Ultima muerte del hijo, vacia la mascara de captura de se~nales y el
bucle infinito significa
1) Detecto la se~nal ^C (SIGINT), la ignoro {SIG_IGN}
2) Detecto de vuelta, la manipulo
3) Me mandaron datos por el descriptor 4
4) Otra ves detecto la se~nal ^C y la ignoro
y asi hasta el infinitum.
Esto no es normal y segun veo la se~nal viene por la ventana que est'as
usando.
Por lo que concluyo que el problema no es del mc sino del server que le
env'ia patol'ogicamente se~nales al MC y este pierde el tiempo
manipulandolas.
Mir'a no se porque pasa esto pero la consecuencia es esa, usa tiempo de
micro en manipular se~nales patol'ogicas. Otra a donde apunta la termila
LIMBICA?
Horacio Castellini, Dpto de F'isica, Facultad de Ingenier'ia,
Ciencias Exactas y Agrimensura, Pellegrini 250, 2000 Rosario
Argentina, Usuario Linux Registrado #53602
Correo-e:[EMAIL PROTECTED] ICQ: 52244442