Tenho RM/COBOL Runtime - Versão 7.10.00 em execução em uma caixa CentOS 6.5 (VM)
Este CentOS permite acesso SSH a determinados usuários de domínio, autenticando seu grupo com o controlador de domínio local. Esses usuários obtêm um diretório inicial que é criado automaticamente em /home/domainname/username, enquanto os usuários locais normais residem em /home/username
Os arquivos Cobol relevantes parecem residir em
/usr/bin/runcobol
<- um arquivo
/usr/bin/rmcobolso
<- um diretório, que parece estar vazio de acordo comls -a
De qualquer forma, aqui está o meu problema básico. Quando um usuário normal executa o comando
# runcobol
...que é apenas uma verificação básica para ver se o comando funciona...
Ele/ela recebe a resposta:
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]
Quando um dos usuários do meu domínio executa o comando
# runcobol
Ele/ela recebe a resposta:
Segmentation fault
O que poderia estar causando este problema?
Editar.1:
strace runcobol
do usuário do domínio. Últimas linhas incluídas:
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 são apenas as últimas linhas. As 20 linhas que precedem tudo isso parecem estar procurando por este libnss_winbind.so.2
arquivo, que EXISTE no meu servidor em /usr/lib64/libnss_winbind.so.2
(Sim, estou executando o CentOS 6.5 de 64 bits). Da primeira linha 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. ]
Então, estou supondo, mas não tenho certeza, que tenho uma versão de 64 bits libnss_winbind.so.2
instalada, mas runcobol
estou procurando uma versão de 32 bits. Então, por que meu usuário normal não tem problemas com runcobol
? Bem, olhando para strace
o usuário normal, ele não parece procurar libnss_winbind.so.2
nada. Acho que isso faz sentido, pois winbind
tem algo a ver com samba e autenticação de domínio, o que o usuário local não está fazendo.
Neste ponto, estou meio que preso novamente, pois não tenho muita experiência em depuração no Linux. Vejo três opções da minha suposição limitada:
Encontre e instale uma versão de 32 bits
libnss_winbind.so.2
em um dos locais queruncobol
você procura. Não tenho ideia de qual pacote instalar para isso no meu CentOS 6.5 de 64 bitsComece
runcobol
a correr sem procurarlibnss_winbind.so.2
. Não sei por que ele pretende rodar com isso, já que o usuário já está autenticado e no sistema CentOS. Não estou usando nenhum recurso de domínio após a autenticação, então nem parece uma etapa necessária.libnss_winbind.so.2
é uma pista falsa e não tem nada a ver com a falha de segmentação.
Editar.2
Resultados de gdb runcobol
então run
:
Do usuário 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
Do usuário do domínio
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