Archived

This forum has been archived. Please start a new discussion on GitHub.

Compiling Ice 3.3.0 with Optimize=yes get runtime error

Hi,
i'm compiling Ice 3.3.0 on an Ubuntu 8.04 Intel Xeon Quad Core 64bit machine.
With OPTIMIZE flag disabled (as default) all test are passed, if I enable OPTIMIZE,
./cpp/allTests.py fails:

*** running tests 10/61 in /usr/src/Ice-3.3.0/cpp/test/Ice/operations
*** configuration: Default
*** test started: 05/22/08 16:52:52
tests with regular server.
starting server... ok
starting client... ok
testing twoway operations... Bus error
*** glibc detected *** /usr/src/Ice-3.3.0/cpp/test/Ice/operations/client: malloc(): memory corruption (fast): 0x00000000006c1250 ***
======= Backtrace: =========
/lib/libc.so.6[0x7fa0c3bc93b2]
/lib/libc.so.6(__libc_malloc+0x90)[0x7fa0c3bca360]
/usr/lib/libstdc++.so.6(_Znwm+0x1d)[0x7fa0c44095ed]
/usr/src/Ice-3.3.0/cpp/lib/libIce.so.33(_ZNK3Ice23ConnectionLostException9ice_cloneEv+0x13)[0x7fa0c4dffa03]
/usr/src/Ice-3.3.0/cpp/lib/libIce.so.33(_ZN3Ice11ConnectionI8setStateENS0_5StateERKNS_14LocalExceptionE+0x7e)[0x7fa0c4db2dee]
/usr/src/Ice-3.3.0/cpp/lib/libIce.so.33(_ZN3Ice11ConnectionI9exceptionERKNS_14LocalExceptionE+0xc2)[0x7fa0c4db4592]
/usr/src/Ice-3.3.0/cpp/lib/libIce.so.33(_ZN11IceInternal10ThreadPool3runEv+0x1d20)[0x7fa0c4ed0060]
/usr/src/Ice-3.3.0/cpp/lib/libIce.so.33(_ZN11IceInternal10ThreadPool18EventHandlerThread3runEv+0x52)[0x7fa0c4ed01e2]
/usr/src/Ice-3.3.0/cpp/lib/libIceUtil.so.33[0x7fa0c4aa2722]
/lib/libpthread.so.0[0x7fa0c485f3f7]
/lib/libc.so.6(clone+0x6d)[0x7fa0c3c2bb2d]
======= Memory map: ========
00400000-0049f000 r-xp 00000000 09:01 118850 /usr/src/Ice-3.3.0/cpp/test/Ice/operations/client
0069e000-006b9000 rw-p 0009e000 09:01 118850 /usr/src/Ice-3.3.0/cpp/test/Ice/operations/client
006b9000-006da000 rw-p 006b9000 00:00 0 [heap]
41f33000-41f34000 ---p 41f33000 00:00 0
41f34000-42734000 rw-p 41f34000 00:00 0
42734000-42735000 ---p 42734000 00:00 0
42735000-42f35000 rw-p 42735000 00:00 0
42f35000-42f36000 ---p 42f35000 00:00 0
42f36000-43736000 rw-p 42f36000 00:00 0
43736000-43737000 ---p 43736000 00:00 0
43737000-43f37000 rw-p 43737000 00:00 0
43f37000-43f38000 ---p 43f37000 00:00 0
43f38000-44738000 rw-p 43f38000 00:00 0
7fa0bc000000-7fa0bc021000 rw-p 7fa0bc000000 00:00 0
7fa0bc021000-7fa0c0000000 ---p 7fa0bc021000 00:00 0
7fa0c3740000-7fa0c3742000 r-xp 00000000 09:01 33896 /lib/libdl-2.7.so
7fa0c3742000-7fa0c3942000 ---p 00002000 09:01 33896 /lib/libdl-2.7.so
7fa0c3942000-7fa0c3944000 rw-p 00002000 09:01 33896 /lib/libdl-2.7.so
7fa0c3944000-7fa0c3953000 r-xp 00000000 09:01 4182 /lib/libbz2.so.1.0.4
7fa0c3953000-7fa0c3b52000 ---p 0000f000 09:01 4182 /lib/libbz2.so.1.0.4
7fa0c3b52000-7fa0c3b54000 rw-p 0000e000 09:01 4182 /lib/libbz2.so.1.0.4
7fa0c3b54000-7fa0c3cac000 r-xp 00000000 09:01 33892 /lib/libc-2.7.so
7fa0c3cac000-7fa0c3eac000 ---p 00158000 09:01 33892 /lib/libc-2.7.so
7fa0c3eac000-7fa0c3eaf000 r--p 00158000 09:01 33892 /lib/libc-2.7.so
7fa0c3eaf000-7fa0c3eb1000 rw-p 0015b000 09:01 33892 /lib/libc-2.7.so
7fa0c3eb1000-7fa0c3eb6000 rw-p 7fa0c3eb1000 00:00 0
7fa0c3eb6000-7fa0c3ec3000 r-xp 00000000 09:01 33202 /lib/libgcc_s.so.1
7fa0c3ec3000-7fa0c40c3000 ---p 0000d000 09:01 33202 /lib/libgcc_s.so.1
7fa0c40c3000-7fa0c40c4000 rw-p 0000d000 09:01 33202 /lib/libgcc_s.so.1
7fa0c40c4000-7fa0c4144000 r-xp 00000000 09:01 33897 /lib/libm-2.7.so
7fa0c4144000-7fa0c4343000 ---p 00080000 09:01 33897 /lib/libm-2.7.so
7fa0c4343000-7fa0c4345000 rw-p 0007f000 09:01 33897 /lib/libm-2.7.so
7fa0c4345000-7fa0c4434000 r-xp 00000000 09:01 33211 /usr/lib/libstdc++.so.6.0.9
7fa0c4434000-7fa0c4634000 ---p 000ef000 09:01 33211 /usr/lib/libstdc++.so.6.0.9
7fa0c4634000-7fa0c463a000 r--p 000ef000 09:01 33211 /usr/lib/libstdc++.so.6.0.9
7fa0c463a000-7fa0c463d000 rw-p 000f5000 09:01 33211 /usr/lib/libstdc++.so.6.0.9
7fa0c463d000-7fa0c4650000 rw-p 7fa0c463d000 00:00 0
7fa0c4650000-7fa0c4658000 r-xp 00000000 09:01 33910 /lib/librt-2.7.so
7fa0c4658000-7fa0c4857000 ---p 00008000 09:01 33910 /lib/librt-2.7.so
7fa0c4857000-7fa0c4859000 rw-p 00007000 09:01 33910 /lib/librt-2.7.so
7fa0c4859000-7fa0c486f000 r-xp 00000000 09:01 33908 /lib/libpthread-2.7.so
7fa0c486f000-7fa0c4a6f000 ---p 00016000 09:01 33908 /lib/libpthread-2.7.so
7fa0c4a6f000-7fa0c4a71000 rw-p 00016000 09:01 33908 /lib/libpthread-2.7.so
7fa0c4a71000-7fa0c4a75000 rw-p 7fa0c4a71000 00:00 0
7fa0c4a75000-7fa0c4ab1000 r-xp 00000000 09:01 66411 /usr/src/Ice-3.3.0/cpp/lib/libIceUtil.so.3.3.0
7fa0c4ab1000-7fa0c4cb1000 ---p 0003c000 09:01 66411 /usr/src/Ice-3.3.0/cpp/lib/libIceUtil.so.3.3.0
7fa0c4cb1000-7fa0c4cb3000 rw-p 0003c000 09:01 66411 /usr/src/Ice-3.3.0/cpp/lib/libIceUtil.so.3.3.0
7fa0c4cb3000-7fa0c4f48000 r-xp 00000000 09:01 118475 /usr/src/Ice-3.3.0/cpp/lib/libIce.so.3.3.0
7fa0c4f48000-7fa0c5147000 ---p 00295000 09:01 118475 /usr/src/Ice-3.3.0/cpp/lib/libIce.so.3.3.0
7fa0c5147000-7fa0c516b000 rw-p 00294000 09:01 118475 /usr/src/Ice-3.3.0/cpp/lib/libIce.so.3.3.0
7fa0c516b000-7fa0c516f000 rw-p 7fa0c516b000 00:00 0
7fa0c516f000-7fa0c518c000 r-xp 00000000 09:01 33889 /lib/ld-2.7.so
7fa0c537a000-7fa0c537f000 rw-p 7fa0c537a000 00:00 0
7fa0c5388000-7fa0c538c000 rw-p 7fa0c5388000 00:00 0
7fa0c538c000-7fa0c538e000 rw-p 0001d000 09:01 33889 /lib/ld-2.7.so
7fffcd379000-7fffcd38e000 rw-p 7ffffffea000 00:00 0 [stack]
7fffcd3fe000-7fffcd400000 r-xp 7fffcd3fe000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Aborted
('test in /usr/src/Ice-3.3.0/cpp/test/Ice/operations failed with exit status', 256)

I'm using mcpp 2.7 patched as suggested

Comments

  • matthew
    matthew NL, Canada
    What version of gcc are you using? It certainly works with optimization on our officially supported versions of Linux (for example, gcc 4.1.2 on SLES 10 x64).
  • gcc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
  • matthew
    matthew NL, Canada
    Ok, its sounds like later versions of gcc have something broken in their optimizer! We'll take a look.
  • After running allTests.py, it seems test 10 is passed in my environment, but test 45 faild:(

    [root@localhost cpp]# gcc -v
    Using built-in specs.
    Target: i686-pc-linux-gnu
    Configured with: ../gcc-4.3.0/configure --prefix=/opt --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++
    Thread model: posix
    gcc version 4.3.0 (GCC)


    starting icestorm replicas... 0 1 2 ok
    creating topic... ok
    running subscriber... ok
    running publisher... ok
    stopping replica 2 (0, 1 running)... ok
    starting 2, stopping 0 (1, 2 running)... ok
    starting 0, stopping 1 (0, 2 running)... ok
    starting 1 (all running)... ok
    stopping replica 2 (0, 1 running)... ok
    starting 2, stopping 0 (1, 2 running)... ok
    starting 0, stopping 1 (0, 2 running)... ok
    starting 1 (all running)... ok
    stopping replica 2 (0, 1 running)... ok
    starting 2, stopping 0 (1, 2 running)... ok
    starting 0, stopping 1 (0, 2 running)... ok
    starting 1 (all running)... ok
    stopping publisher... ok
    stopping replicas... ok
    stopping subscriber... ok
    publisher published 3814 events, subscriber received 3814 events

    *** running tests 45/61 in /root/Ice-3.3.0/cpp/test/FreezeScript/dbmap
    *** configuration: Default
    *** test started: 06/04/08 18:23:50
    testing error detection... failed! (1)
    ('test in /root/Ice-3.3.0/cpp/test/FreezeScript/dbmap failed with exit status', 256)
  • matthew
    matthew NL, Canada
    Do the other tests all work? You can skip that test with

    ./allTests.py --start=46

    What version of BerkeleyDB are you using?
  • ./allTests.py --start=46 finished normally:)
    and the Berkeley version is as the followings;
    [root@localhost ~]# rpm -qi db4
    Name : db4 Relocations: (not relocatable)
    Version : 4.3.29 Vendor: CentOS
    Release : 9.fc6 Build Date: Sun Jan 7 17:45:01 2007
    Install Date: Tue Jun 5 04:13:50 2007 Build Host: builder1.centos.org
    Group : System Environment/Libraries Source RPM: db4-4.3.29-9.fc6.src.rpm
    Size : 2123554 License: GPL
    Signature : DSA/SHA1, Wed Apr 4 08:20:46 2007, Key ID a8a447dce8562897
    URL : berkeley-db.html
    Summary : The Berkeley DB database library (version 4) for C.
    Description :
    The Berkeley Database (Berkeley DB) is a programmatic toolkit that
    provides embedded database support for both traditional and
    client/server applications. The Berkeley DB includes B+tree, Extended
    Linear Hashing, Fixed and Variable-length record access methods,
    transactions, locking, logging, shared memory caching, and database
    recovery. The Berkeley DB supports C, C++, Java, and Perl APIs. It is
    used by many applications, including Python and Perl, so this should
    be installed on all systems.
  • bernard
    bernard Jupiter, FL
    Please try with Berkeley DB 4.6; that's the only Berkeley DB version we support and test with.

    You should be able to build the DB 4.6 RPMs for your distribution using the Berkeley DB 4.6.21 source RPM on our download page.

    Cheers,
    Bernard
  • xdm
    xdm La Coruña, Spain
    Hi,

    I have run the complete test suite under ubuntu gcc-4.2.3 and not found any
    problems.

    Ice-3.3.0 was compiled from sources with OPTIMIZED enabled and all dependencies where compiled from the ZeroC third party packages.

    Here is the system configuration i used to run test suite:
    root@ubuntu:/home/ubuntu/src/Ice-3.3.0/cpp# gcc -v
    Using built-in specs.
    Target: i486-linux-gnu
    Configured with: ../src/configure -v
    --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
    --enable-shared --with-system-zlib --libexecdir=/usr/lib
    --without-included-gettext --enable-threads=posix --enable-nls
    --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2
    --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr
    --enable-targets=all --enable-checking=release --build=i486-linux-gnu
    --host=i486-linux-gnu --target=i486-linux-gnu
    Thread model: posix
    gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
    root@ubuntu:/home/ubuntu/src/Ice-3.3.0/cpp# echo $OPTIMIZE
    yes
    root@ubuntu:/home/ubuntu/src/Ice-3.3.0/cpp# echo $LD_LIBRARY_PATH
    :/opt/db/lib:/opt/mcpp/lib:/opt/bzip2/lib:/opt/expat/lib:/opt/openssl/lib
    root@ubuntu:/home/ubuntu/src/Ice-3.3.0/cpp# uname -a
    Linux ubuntu 2.6.24-17-generic #1 SMP Thu May 1 14:31:33 UTC 2008 i686
    GNU/Linux
    root@ubuntu:/home/ubuntu/src/Ice-3.3.0/cpp#
    

    Regards,
    José