Tengo RM/COBOL Runtime - Versión 7.10.00 ejecutándose en una máquina CentOS 6.5 (VM)
Este CentOS permite el acceso SSH a ciertos usuarios de dominio autenticando su grupo con el controlador de dominio local. Estos usuarios obtienen un directorio de inicio que se crea automáticamente en /home/nombre de dominio/nombre de usuario, mientras que los usuarios locales normales residen en /home/nombre de usuario.
Los archivos Cobol relevantes parecen residir en
/usr/bin/runcobol
<- un archivo
/usr/bin/rmcobolso
<- un directorio, que parece estar vacío segúnls -a
De todos modos, aquí está mi problema básico. Cuando un usuario normal ejecuta el comando
# runcobol
...que es sólo una comprobación básica para ver si el comando funciona...
Recibe la respuesta:
RM/COBOL Runtime - Version 7.10.00 for Linux (Intel).
Configured for 50 users.
Copyright (c) 1985, 1986-2000 by Liant Software Corp. All rights reserved.
Registration Number: 7H-1054-00367-0050
Usage: RUNCOBOL name [options]
Options: [A=arguments] [B=buffersize] [C=configfile] [D] [I] [K]
[L=libname] [M] [S=switches] [T=sortsize] [V] [X=configmod]
Cuando uno de los usuarios de mi dominio ejecuta el comando
# runcobol
Recibe la respuesta:
Segmentation fault
¿Qué podría estar causando este problema?
Edición.1:
strace runcobol
del usuario del dominio. Las últimas líneas incluyen:
open("/usr/lib/libnss_winbind.so.2", O_RDONLY) = -1 ENOENT (No such file or direc
stat64("/usr/lib", {st_mode=S_IFDIR|0555, st_size=4096, ...}) = 0
munmap(0xf76fa000, 48317) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Estas son sólo las últimas líneas. Las 20 líneas que preceden a esto parecen estar buscando este libnss_winbind.so.2
archivo, que SÍ existe en mi servidor /usr/lib64/libnss_winbind.so.2
(Sí, estoy ejecutando CentOS 6.5 de 64 bits). Desde la primera línea destrace runcobol
[test.user.co@co1tu-sv-conta bin]$ strace runcobol
execve("/usr/bin/runcobol", ["runcobol"], [/* 26 vars */]) = 0
[ Process PID=14369 runs in 32 bit mode. ]
Entonces, supongo, pero no estoy seguro, que tengo libnss_winbind.so.2
instalada una versión de 64 bits, pero runcobol
estoy buscando una versión de 32 bits. Entonces, ¿por qué mi usuario normal no tiene ningún problema runcobol
? Bueno, si miramos strace
el usuario normal, no parece buscar libnss_winbind.so.2
nada. Supongo que esto tiene sentido, ya que winbind
tiene algo que ver con samba y la autenticación de dominio, algo que el usuario local no hace.
En este punto estoy atascado nuevamente porque no tengo mucha experiencia depurando en Linux. Veo tres opciones a partir de mis conjeturas limitadas:
Busque e instale una versión de 32 bits
libnss_winbind.so.2
en una de las ubicaciones queruncobol
esté buscando. No tengo idea de qué paquete instalar en mi CentOS 6.5 de 64 bitsPonte
runcobol
a correr sin buscarlibnss_winbind.so.2
. No estoy seguro de por qué busca ejecutar eso, ya que el usuario ya está autenticado y en el sistema CentOS. No estoy usando ningún recurso de dominio después de la autenticación, por lo que ni siquiera parece un paso necesario.libnss_winbind.so.2
es una pista falsa y no tiene nada que ver con la falla de segmentación.
Editar.2
Resultados de gdb runcobol
entonces run
:
De usuario local
Reading symbols from /usr/bin/runcobol...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/runcobol
RM/COBOL Runtime - Version 7.10.00 for Linux (Intel).
Configured for 50 users.
Copyright (c) 1985, 1986-2000 by Liant Software Corp. All rights reserved.
Registration Number: 7H-1054-00367-0050
Usage: RUNCOBOL name [options]
Options: [A=arguments] [B=buffersize] [C=configfile] [D] [I] [K]
[L=libname] [M] [S=switches] [T=sortsize] [V] [X=configmod]
Program exited with code 0373.
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.132.el6_5.4.i686
Del usuario del dominio
Reading symbols from /usr/bin/runcobol...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/runcobol
Program received signal SIGSEGV, Segmentation fault.
0x0805cc37 in OSINITIALIZE ()
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.132.el6_5.4.i686