Memory leaks in OCIEnvCreate()

View: New views
3 Messages — Rating Filter:   Alert me  

Memory leaks in OCIEnvCreate()

by angela86 walczak :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I'm using Centos x64,  CPU Xeon, and gateway-1.4.3 with oracle DLR, sqlbox-0.7.2 on oracle, and OCI version:
oracle-instantclient-basic-10.2.0.3-1.x86_64.rpm
oracle-instantclient-devel-10.2.0.3-1.x86_64.rpm
oracle-instantclient-jdbc-10.2.0.3-1.x86_64.rpm
oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm

Application after compiling with OCI has a lot of memory leaks configure attached at the end of an e-mail
The application works by not communicating the problems but its size is increased from 12mb to 200mb for example, within a week.
This case is the same as http://www.orafaq.com/forum/t/62399/0/
Tested valgrind bearerbox sqlbox smsbox.
When the test turned off using the applications http://127.0.0.1:13000/shutdown?password=bar
Request for help how to compile applications that properly had no memory problems.
Itself after a long time I do not find a solution, once again please help can you met with such a problem once already.


/etc/init.d/kannel
#!/bin/sh

# Configuration file
CONF=/etc/kannel/kannel.conf
CONFSQL=/etc/kannel/sqlbox.conf
# Kannel boxes
BEARERBOX=/usr/local/sbin/bearerbox
SMSBOX=/usr/local/sbin/smsbox
SQLBOX=/usr/local/sbin/sqlbox

# Debug level: 0..4
DEBUGLEVEL=1

# Kannel user account
USER=kannel

# Check that boxes and config are ok
[ -x $BEARERBOX ] || exit 0
[ -x $SMSBOX ] || exit 0
[ -x $SQLBOX ] || exit 0
[ -f $CONF ] || exit 0

case "$1" in
start)
       ulimit -n 8192
       echo -n "Starting bearerbox... "
       #$BEARERBOX -v $DEBUGLEVEL --daemonize --user $USER $CONF &
       valgrind --tool=memcheck --log-file=/val/1.out -v $BEARERBOX -v $DEBUGLEVEL --user $USER $CONF &
       echo "done"
       echo -n
       sleep 5

       echo -n "Starting sqlbox... "
       #$SMSBOX -v $DEBUGLEVEL --daemonize --user $USER $CONF &
       valgrind --tool=memcheck --log-file=/val/2.out -v $SQLBOX -v $DEBUGLEVEL --user $USER $CONFSQL &

       echo "done"
       echo -n
       sleep 7

       echo -n "Starting smsbox... "
       #$SMSBOX -v $DEBUGLEVEL --daemonize --user $USER $CONF &
       valgrind --tool=memcheck --log-file=/val/3.out -v $SMSBOX -v $DEBUGLEVEL --user $USER $CONF &

       echo "done"

       ;;
stop)

       echo -n "Shutting down sqlbox... "
       killall sqlbox
       echo "done"
       echo -n "Shutting down smsbox... "
       killall smsbox

Summary of large logs have made a valgrind below.

EOF . 1.out

==12915==
==12915== 860 errors in context 255 of 255:
==12915== Conditional jump or move depends on uninitialised value(s)
==12915==    at 0x644907A: CMP_BitLengthOfCMPInt (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12915==    by 0x644ADB7: CMP_CMPIntToFixedLenOctetStr (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12915==    by 0x6446067: A_X931RandomGenerateBytes (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12915==    by 0x5503D21: ztcr2rnd (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12915==    by 0x559577D: ztcsh (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12915==    by 0x5207FB4: kpusattr (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12915==    by 0x51BC959: kpulon (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12915==    by 0x52EAA3F: OCILogon (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12915==    by 0x4727D1: oracle_open_conn (dbpool_oracle.c:199)
==12915==    by 0x471689: dbpool_increase (dbpool.c:186)
==12915==    by 0x471AF3: dbpool_create (dbpool.c:152)
==12915==    by 0x41C683: dlr_init_oracle (dlr_oracle.c:470)
==12915==
--12915--
--12915-- used_suppression:      7 dl-hack3
==12915==
==12915== ERROR SUMMARY: 9369 errors from 255 contexts (suppressed: 7 from 7)


EOF 2.out

==12917== 303 errors in context 254 of 254:
==12917== Conditional jump or move depends on uninitialised value(s)
==12917==    at 0x644907A: CMP_BitLengthOfCMPInt (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12917==    by 0x644ADB7: CMP_CMPIntToFixedLenOctetStr (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12917==    by 0x6446067: A_X931RandomGenerateBytes (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12917==    by 0x5503D21: ztcr2rnd (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12917==    by 0x559577D: ztcsh (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12917==    by 0x5207FB4: kpusattr (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12917==    by 0x51BC959: kpulon (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12917==    by 0x52EAA3F: OCILogon (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12917==    by 0x41AA41: oracle_open_conn (dbpool_oracle.c:199)
==12917==    by 0x4198F9: dbpool_increase (dbpool.c:186)
==12917==    by 0x419D63: dbpool_create (dbpool.c:152)
==12917==    by 0x40B01D: sqlbox_init_oracle (sqlbox_oracle.c:302)
==12917==
--12917--
--12917-- used_suppression:      7 dl-hack3
==12917==
==12917== ERROR SUMMARY: 3735 errors from 254 contexts (suppressed: 7 from 7)


EOF 3.out

==12930== LEAK SUMMARY:
==12930==    definitely lost: 0 bytes in 0 blocks
==12930==    indirectly lost: 0 bytes in 0 blocks
==12930==      possibly lost: 0 bytes in 0 blocks
==12930==    still reachable: 2,064 bytes in 35 blocks
==12930==         suppressed: 0 bytes in 0 blocks
==12930== Rerun with --leak-check=full to see details of leaked memory
==12930==
==12930== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 4 from 4)
==12930==
==12930== 1 errors in context 1 of 1:
==12930== Invalid free() / delete / delete[]
==12930==    at 0x4A05A31: free (vg_replace_malloc.c:325)
==12930==    by 0x3959109B6A: ??? (in /lib64/libc-2.5.so)
==12930==    by 0x3959109761: ??? (in /lib64/libc-2.5.so)
==12930==    by 0x48024E8: _vgnU_freeres (vg_preloaded.c:62)
==12930==    by 0x3959033324: exit (in /lib64/libc-2.5.so)
==12930==    by 0x395901D97A: (below main) (in /lib64/libc-2.5.so)
==12930==  Address 0x62b05a0 is not stack'd, malloc'd or (recently) free'd
==12930==
--12930--
--12930-- used_suppression:      4 dl-hack3
==12930==
==12930== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 4 from 4)


./configure --with-oracle --with-oracle-includes=/usr/include/oracle/10.2.0.3/client64 --with-oracle-libs=/usr/lib/oracle/10.2.0.3/client64/lib --enable-ssl --enable-start-stop-daemon --enable-debug

Configuring for Kannel gateway version 1.4.3 ...

Running system checks ...
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for gcc option to accept ISO C99... -std=gnu99
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking for bison... no
checking for byacc... no
checking for flex... no
checking for lex... no
checking for ar... ar
checking for convert... /usr/bin/convert
checking for perl... /usr/bin/perl
checking for inline... inline
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking size of short... 2
checking size of int... 4
checking size of long... 8
checking size of long long... 8
checking for log in -lm... yes
checking for accept in -lsocket... no
checking for inet_ntoa in -lnsl... yes
checking for inet_ntop in -lresolv... yes
checking for inet_ntop in -lbind... no
checking for pthread_exit in -lpthread... yes
checking for libiconv in -liconv... yes
checking for ANSI C header files... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for sys/types.h... (cached) yes
checking for unistd.h... (cached) yes
checking sys/poll.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking for stdlib.h... (cached) yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/sockio.h usability... no
checking sys/sockio.h presence... no
checking for sys/sockio.h... no
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking for net/if.h... yes
checking for gettimeofday... yes
checking for select... yes
checking for socket... yes
checking for strdup... yes
checking for getopt_long... yes
checking for localtime_r... yes
checking for gmtime_r... yes
checking for backtrace... yes
checking for srandom... yes
checking for getopt... yes
checking for gethostbyname_r... yes
checking for which type of gethostbyname_r... 6
checking for socklen_t in <sys/socket.h>... yes
checking for getopt in <stdio.h>... no
checking for getopt in <unistd.h>... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking for regcomp... yes

Checking for POSIX threads support ...
checking for working pthreads... yes
checking for pthread_spinlock support... yes
checking for pthread_rwlock support... yes
checking for sem_init in -lrt... yes
checking for semaphore support... yes

Checking for libxml2 support ...
checking for xml2-config... /usr/bin/xml2-config
checking libxml version... 2.6.26

Configuring for PCRE support ...
checking whether to compile with PCRE support... disabled

Configuring DocBook support ...
checking for jade... no
checking for jadetex... no
checking for pdfjadetex... pdfjadetex
checking for dvips... dvips
checking for fig2dev... no
checking for convert... /usr/bin/convert
checking for /usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/html/docbook.dsl... no
checking for /usr/lib/sgml/stylesheets/nwalsh-modular/html/docbook.dsl... no
checking for /usr/share/sgml/docbook/dsssl-stylesheets-1.79/html/docbook.dsl... yes
checking for /usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/print/docbook.dsl... no
checking for /usr/lib/sgml/stylesheets/nwalsh-modular/print/docbook.dsl... no
checking for /usr/share/sgml/docbook/dsssl-stylesheets-1.79/print/docbook.dsl... yes
Not building documentation.

Configuring parameters ...
checking which malloc to use... native malloc
enabling WMLScript compiler debugging
enabling local time
enabling cookies
enabling HTTP/1.1 keep-alive

Configuring OpenSSL support ...
checking whether to compile with SSL support... trying /usr/lib64 /usr/include/openssl
checking for openssl... /usr/bin/openssl
checking for CRYPTO_lock in -lcrypto... yes
checking for SSL_library_init in -lssl... yes
checking for SSL_connect in -lssl... yes
checking openssl/x509.h usability... yes
checking openssl/x509.h presence... yes
checking for openssl/x509.h... yes
checking openssl/rsa.h usability... yes
checking openssl/rsa.h presence... yes
checking for openssl/rsa.h... yes
checking openssl/crypto.h usability... yes
checking openssl/crypto.h presence... yes
checking for openssl/crypto.h... yes
checking openssl/pem.h usability... yes
checking openssl/pem.h presence... yes
checking for openssl/pem.h... yes
checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking openssl/err.h usability... yes
checking openssl/err.h presence... yes
checking for openssl/err.h... yes
checking openssl/hmac.h usability... yes
checking openssl/hmac.h presence... yes
checking for openssl/hmac.h... yes
checking whether the OpenSSL library is multithread-enabled... yes
checking whether to compile with SSL support... yes

Configuring DB support ...
checking whether to compile with MySQL support... disabled
checking whether to compile with LibSDB support... disabled
checking whether to compile with SQLite2 support... disabled
checking whether to compile with SQLite3 support... disabled
checking whether to compile with Oracle support... searching
checking for oci.h ... yes
checking for OCIEnvCreate in -lclntsh... yes
checking for wtcstu in -lwtc8... no
checking for wtcstu in -lwtc9... no
checking whether to compile with Oracle support... yes
checking whether to compile with PostgresSQL support... disabled

Generating output files ...
configure: creating ./config.status
config.status: creating gwlib/gw_uuid_types.h
config.status: creating Makefile
config.status: creating gw-config.h
config.status: gw-config.h is unchanged

License information ...
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the Kannel Software License, available |
| in this distribution in the file LICENSE. By continuing this       |
| installation process, you are bound by the terms of this license   |
| agreement. If you do not agree with the terms of this license, you |
| must abort the installation process at this point.                 |
|                                                                    |
|                      The Kannel Group <http://www.kannel.org/>     |
+--------------------------------------------------------------------+


Re: Memory leaks in OCIEnvCreate()

by Nikos Balkanas :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.
Hi,
 
Valgrind's memcheck will report suspected leaks and corruprions. Some of them lie in system libraries, like your invalid delete, which kannel can do nothing about. In such a case you should run it and if experiencing runtime issues look for updates or fora for the suspected library. Some of them may be just constructs that valgrind doesn't understand, especially in uninitialized jumps.
 
Kannel is regularly checked against valgrind, but as you know it depends heavily on the scenario you use. Therefore, it would be helpful to:
 
1) Descibe command line execution (component + arguments).
2) Describe scenario used (i.e. http://localhost:port/cgi-bin/sendsms) so that it can be recreated.
3) Include all the relevant valgrind lines, not only where the uninitialized jump occurs, but also where the unitialization is created.
 
BR,
Nikos
----- Original Message -----
Sent: Tuesday, October 13, 2009 6:16 PM
Subject: Memory leaks in OCIEnvCreate()

Hi,

I'm using Centos x64,  CPU Xeon, and gateway-1.4.3 with oracle DLR, sqlbox-0.7.2 on oracle, and OCI version:
oracle-instantclient-basic-10.2.0.3-1.x86_64.rpm
oracle-instantclient-devel-10.2.0.3-1.x86_64.rpm
oracle-instantclient-jdbc-10.2.0.3-1.x86_64.rpm
oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm

Application after compiling with OCI has a lot of memory leaks configure attached at the end of an e-mail
The application works by not communicating the problems but its size is increased from 12mb to 200mb for example, within a week.
This case is the same as http://www.orafaq.com/forum/t/62399/0/
Tested valgrind bearerbox sqlbox smsbox.
When the test turned off using the applications http://127.0.0.1:13000/shutdown?password=bar
Request for help how to compile applications that properly had no memory problems.
Itself after a long time I do not find a solution, once again please help can you met with such a problem once already.


/etc/init.d/kannel
#!/bin/sh

# Configuration file
CONF=/etc/kannel/kannel.conf
CONFSQL=/etc/kannel/sqlbox.conf
# Kannel boxes
BEARERBOX=/usr/local/sbin/bearerbox
SMSBOX=/usr/local/sbin/smsbox
SQLBOX=/usr/local/sbin/sqlbox

# Debug level: 0..4
DEBUGLEVEL=1

# Kannel user account
USER=kannel

# Check that boxes and config are ok
[ -x $BEARERBOX ] || exit 0
[ -x $SMSBOX ] || exit 0
[ -x $SQLBOX ] || exit 0
[ -f $CONF ] || exit 0

case "$1" in
start)
       ulimit -n 8192
       echo -n "Starting bearerbox... "
       #$BEARERBOX -v $DEBUGLEVEL --daemonize --user $USER $CONF &
       valgrind --tool=memcheck --log-file=/val/1.out -v $BEARERBOX -v $DEBUGLEVEL --user $USER $CONF &
       echo "done"
       echo -n
       sleep 5

       echo -n "Starting sqlbox... "
       #$SMSBOX -v $DEBUGLEVEL --daemonize --user $USER $CONF &
       valgrind --tool=memcheck --log-file=/val/2.out -v $SQLBOX -v $DEBUGLEVEL --user $USER $CONFSQL &

       echo "done"
       echo -n
       sleep 7

       echo -n "Starting smsbox... "
       #$SMSBOX -v $DEBUGLEVEL --daemonize --user $USER $CONF &
       valgrind --tool=memcheck --log-file=/val/3.out -v $SMSBOX -v $DEBUGLEVEL --user $USER $CONF &

       echo "done"

       ;;
stop)

       echo -n "Shutting down sqlbox... "
       killall sqlbox
       echo "done"
       echo -n "Shutting down smsbox... "
       killall smsbox

Summary of large logs have made a valgrind below.

EOF . 1.out

==12915==
==12915== 860 errors in context 255 of 255:
==12915== Conditional jump or move depends on uninitialised value(s)
==12915==    at 0x644907A: CMP_BitLengthOfCMPInt (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12915==    by 0x644ADB7: CMP_CMPIntToFixedLenOctetStr (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12915==    by 0x6446067: A_X931RandomGenerateBytes (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12915==    by 0x5503D21: ztcr2rnd (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12915==    by 0x559577D: ztcsh (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12915==    by 0x5207FB4: kpusattr (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12915==    by 0x51BC959: kpulon (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12915==    by 0x52EAA3F: OCILogon (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12915==    by 0x4727D1: oracle_open_conn (dbpool_oracle.c:199)
==12915==    by 0x471689: dbpool_increase (dbpool.c:186)
==12915==    by 0x471AF3: dbpool_create (dbpool.c:152)
==12915==    by 0x41C683: dlr_init_oracle (dlr_oracle.c:470)
==12915==
--12915--
--12915-- used_suppression:      7 dl-hack3
==12915==
==12915== ERROR SUMMARY: 9369 errors from 255 contexts (suppressed: 7 from 7)


EOF 2.out

==12917== 303 errors in context 254 of 254:
==12917== Conditional jump or move depends on uninitialised value(s)
==12917==    at 0x644907A: CMP_BitLengthOfCMPInt (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12917==    by 0x644ADB7: CMP_CMPIntToFixedLenOctetStr (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12917==    by 0x6446067: A_X931RandomGenerateBytes (in /usr/lib/oracle/10.2.0.3/client64/lib/libnnz10.so)
==12917==    by 0x5503D21: ztcr2rnd (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12917==    by 0x559577D: ztcsh (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12917==    by 0x5207FB4: kpusattr (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12917==    by 0x51BC959: kpulon (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12917==    by 0x52EAA3F: OCILogon (in /usr/lib/oracle/10.2.0.3/client64/lib/libclntsh.so.10.1)
==12917==    by 0x41AA41: oracle_open_conn (dbpool_oracle.c:199)
==12917==    by 0x4198F9: dbpool_increase (dbpool.c:186)
==12917==    by 0x419D63: dbpool_create (dbpool.c:152)
==12917==    by 0x40B01D: sqlbox_init_oracle (sqlbox_oracle.c:302)
==12917==
--12917--
--12917-- used_suppression:      7 dl-hack3
==12917==
==12917== ERROR SUMMARY: 3735 errors from 254 contexts (suppressed: 7 from 7)


EOF 3.out

==12930== LEAK SUMMARY:
==12930==    definitely lost: 0 bytes in 0 blocks
==12930==    indirectly lost: 0 bytes in 0 blocks
==12930==      possibly lost: 0 bytes in 0 blocks
==12930==    still reachable: 2,064 bytes in 35 blocks
==12930==         suppressed: 0 bytes in 0 blocks
==12930== Rerun with --leak-check=full to see details of leaked memory
==12930==
==12930== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 4 from 4)
==12930==
==12930== 1 errors in context 1 of 1:
==12930== Invalid free() / delete / delete[]
==12930==    at 0x4A05A31: free (vg_replace_malloc.c:325)
==12930==    by 0x3959109B6A: ??? (in /lib64/libc-2.5.so)
==12930==    by 0x3959109761: ??? (in /lib64/libc-2.5.so)
==12930==    by 0x48024E8: _vgnU_freeres (vg_preloaded.c:62)
==12930==    by 0x3959033324: exit (in /lib64/libc-2.5.so)
==12930==    by 0x395901D97A: (below main) (in /lib64/libc-2.5.so)
==12930==  Address 0x62b05a0 is not stack'd, malloc'd or (recently) free'd
==12930==
--12930--
--12930-- used_suppression:      4 dl-hack3
==12930==
==12930== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 4 from 4)


./configure --with-oracle --with-oracle-includes=/usr/include/oracle/10.2.0.3/client64 --with-oracle-libs=/usr/lib/oracle/10.2.0.3/client64/lib --enable-ssl --enable-start-stop-daemon --enable-debug

Configuring for Kannel gateway version 1.4.3 ...

Running system checks ...
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for gcc option to accept ISO C99... -std=gnu99
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking for bison... no
checking for byacc... no
checking for flex... no
checking for lex... no
checking for ar... ar
checking for convert... /usr/bin/convert
checking for perl... /usr/bin/perl
checking for inline... inline
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking size of short... 2
checking size of int... 4
checking size of long... 8
checking size of long long... 8
checking for log in -lm... yes
checking for accept in -lsocket... no
checking for inet_ntoa in -lnsl... yes
checking for inet_ntop in -lresolv... yes
checking for inet_ntop in -lbind... no
checking for pthread_exit in -lpthread... yes
checking for libiconv in -liconv... yes
checking for ANSI C header files... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for sys/types.h... (cached) yes
checking for unistd.h... (cached) yes
checking sys/poll.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking for stdlib.h... (cached) yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/sockio.h usability... no
checking sys/sockio.h presence... no
checking for sys/sockio.h... no
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking for net/if.h... yes
checking for gettimeofday... yes
checking for select... yes
checking for socket... yes
checking for strdup... yes
checking for getopt_long... yes
checking for localtime_r... yes
checking for gmtime_r... yes
checking for backtrace... yes
checking for srandom... yes
checking for getopt... yes
checking for gethostbyname_r... yes
checking for which type of gethostbyname_r... 6
checking for socklen_t in <sys/socket.h>... yes
checking for getopt in <stdio.h>... no
checking for getopt in <unistd.h>... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking for regcomp... yes

Checking for POSIX threads support ...
checking for working pthreads... yes
checking for pthread_spinlock support... yes
checking for pthread_rwlock support... yes
checking for sem_init in -lrt... yes
checking for semaphore support... yes

Checking for libxml2 support ...
checking for xml2-config... /usr/bin/xml2-config
checking libxml version... 2.6.26

Configuring for PCRE support ...
checking whether to compile with PCRE support... disabled

Configuring DocBook support ...
checking for jade... no
checking for jadetex... no
checking for pdfjadetex... pdfjadetex
checking for dvips... dvips
checking for fig2dev... no
checking for convert... /usr/bin/convert
checking for /usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/html/docbook.dsl... no
checking for /usr/lib/sgml/stylesheets/nwalsh-modular/html/docbook.dsl... no
checking for /usr/share/sgml/docbook/dsssl-stylesheets-1.79/html/docbook.dsl... yes
checking for /usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/print/docbook.dsl... no
checking for /usr/lib/sgml/stylesheets/nwalsh-modular/print/docbook.dsl... no
checking for /usr/share/sgml/docbook/dsssl-stylesheets-1.79/print/docbook.dsl... yes
Not building documentation.

Configuring parameters ...
checking which malloc to use... native malloc
enabling WMLScript compiler debugging
enabling local time
enabling cookies
enabling HTTP/1.1 keep-alive

Configuring OpenSSL support ...
checking whether to compile with SSL support... trying /usr/lib64 /usr/include/openssl
checking for openssl... /usr/bin/openssl
checking for CRYPTO_lock in -lcrypto... yes
checking for SSL_library_init in -lssl... yes
checking for SSL_connect in -lssl... yes
checking openssl/x509.h usability... yes
checking openssl/x509.h presence... yes
checking for openssl/x509.h... yes
checking openssl/rsa.h usability... yes
checking openssl/rsa.h presence... yes
checking for openssl/rsa.h... yes
checking openssl/crypto.h usability... yes
checking openssl/crypto.h presence... yes
checking for openssl/crypto.h... yes
checking openssl/pem.h usability... yes
checking openssl/pem.h presence... yes
checking for openssl/pem.h... yes
checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking openssl/err.h usability... yes
checking openssl/err.h presence... yes
checking for openssl/err.h... yes
checking openssl/hmac.h usability... yes
checking openssl/hmac.h presence... yes
checking for openssl/hmac.h... yes
checking whether the OpenSSL library is multithread-enabled... yes
checking whether to compile with SSL support... yes

Configuring DB support ...
checking whether to compile with MySQL support... disabled
checking whether to compile with LibSDB support... disabled
checking whether to compile with SQLite2 support... disabled
checking whether to compile with SQLite3 support... disabled
checking whether to compile with Oracle support... searching
checking for oci.h ... yes
checking for OCIEnvCreate in -lclntsh... yes
checking for wtcstu in -lwtc8... no
checking for wtcstu in -lwtc9... no
checking whether to compile with Oracle support... yes
checking whether to compile with PostgresSQL support... disabled

Generating output files ...
configure: creating ./config.status
config.status: creating gwlib/gw_uuid_types.h
config.status: creating Makefile
config.status: creating gw-config.h
config.status: gw-config.h is unchanged

License information ...
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the Kannel Software License, available |
| in this distribution in the file LICENSE. By continuing this       |
| installation process, you are bound by the terms of this license   |
| agreement. If you do not agree with the terms of this license, you |
| must abort the installation process at this point.                 |
|                                                                    |
|                      The Kannel Group <http://www.kannel.org/>     |
+--------------------------------------------------------------------+


Re: Memory leaks in OCIEnvCreate()

by Stipe Tolj :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

angela86 walczak schrieb:

> Hi,
>
> I'm using Centos x64,  CPU Xeon, and gateway-1.4.3 with oracle DLR,
> sqlbox-0.7.2 on oracle, and OCI version:
> oracle-instantclient-basic-10.2.0.3-1.x86_64.rpm
> oracle-instantclient-devel-10.2.0.3-1.x86_64.rpm
> oracle-instantclient-jdbc-10.2.0.3-1.x86_64.rpm
> oracle-instantclient-sqlplus-10.2.0.3-1.x86_64.rpm
>
> Application after compiling with OCI has a lot of memory leaks configure
> attached at the end of an e-mail
> The application works by not communicating the problems but its size is
> increased from 12mb to 200mb for example, within a week.
> This case is the same as http://www.orafaq.com/forum/t/62399/0/
> Tested valgrind bearerbox sqlbox smsbox.
> When the test turned off using the applications
> http://127.0.0.1:13000/shutdown?password=bar
> Request for help how to compile applications that properly had no memory
> problems.
> Itself after a long time I do not find a solution, once again please
> help can you met with such a problem once already.

Hi,

absolutely agreeing to Nikos here. There are no memory leaks literally here
reported by valgrind, but

 "Conditional jump or move depends on uninitialised value(s)"

this is usually a false-positive here, since: some variable is used without
literal code initialization for a random generation. Ie. openssl parts have
these kind of valgrind reports. But they are false-positive. You can add so
called "suppression definitions" to the valgrind call to "filter out" such known
false-positive reports.

Stipe

--
-------------------------------------------------------------------
Kölner Landstrasse 419
40589 Düsseldorf, NRW, Germany

tolj.org system architecture      Kannel Software Foundation (KSF)
http://www.tolj.org/              http://www.kannel.org/

mailto:st_{at}_tolj.org           mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------