[FUG-BR] chunk already is free()

Rodrigo Salvador rodrigo_salvador em allnet.com.br
Segunda Março 26 09:42:32 BRT 2007


Caros,

tenho um programa escrito em c++, que utiliza Threads com a lib 
ulxmlrpcpp e é executado como WebService em um FreeBSD 6.1. Tenho também 
inúmeras classes que definem as funções publicadas para o WebService, e 
essas classes manipulam arquivos e algumas vezes executam um comando no 
shell (via system()).

Entretando algumas vezes o programa quebra com a mensagem "chunk already 
is free()", e não estou conseguindo identificar o ponto onde isso ocorre.

Tomei o cuidado de colocar log em todas as linhas para rastrear o ponto 
da falha, mas não tive resultado.
A edição de arquivos é feita usando um esquema de lock para concorrência 
de edição de arquivo.
Aloquei todos os objetos usando "new" e "delete", mas também não resolveu.

Procurei inúmeras vezes no google sobre a origem desta falha, mas ainda 
não achei. Alguém pode me dar uma luz e apontar onde devo olhar ?!
Segue o conteúdo do core gerado.

gdb /usr/sbin/flydnsd flydnsd.core
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...(no debugging symbols 
found)...
Core was generated by `flydnsd'.
Program terminated with signal 6, Aborted.
Reading symbols from /lib/libmd.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libmd.so.2
Reading symbols from /usr/local/lib/libulxmlrpcpp.so.13...(no debugging 
symbols found)...done.
Loaded symbols for /usr/local/lib/libulxmlrpcpp.so.13
Reading symbols from /usr/lib/libstdc++.so.4...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libstdc++.so.4
Reading symbols from /lib/libm.so.3...(no debugging symbols found)...done.
Loaded symbols for /lib/libm.so.3
Reading symbols from /lib/libc.so.5...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.5
Reading symbols from /usr/lib/libpthread.so.1...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libpthread.so.1
Reading symbols from /usr/local/lib/libexpat.so.6...(no debugging 
symbols found)...done.
Loaded symbols for /usr/local/lib/libexpat.so.6
Reading symbols from /lib/libcrypto.so.3...(no debugging symbols 
found)...done.
Loaded symbols for /lib/libcrypto.so.3
Reading symbols from /usr/lib/libssl.so.3...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libssl.so.3
Reading symbols from /libexec/ld-elf.so.1...(no debugging symbols 
found)...done.
Loaded symbols for /libexec/ld-elf.so.1
#0  0x2833f31b in pthread_testcancel () from /usr/lib/libpthread.so.1
(gdb) where
#0  0x2833f31b in pthread_testcancel () from /usr/lib/libpthread.so.1
#1  0x2832e54b in sigaction () from /usr/lib/libpthread.so.1
#2  0x2832e260 in sigaction () from /usr/lib/libpthread.so.1
#3  0x28337902 in pthread_mutexattr_init () from /usr/lib/libpthread.so.1
#4  0x00000000 in ?? ()
(gdb)


vlw

Rodrigo



Mais detalhes sobre a lista de discussão freebsd