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

Responder a