Archived

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

Installing Ice 3.4.2 on Ubuntu 12.04: test 42 fails

Dear All,

I am new to Ice.
Our group is linux based, we use Ubuntu 12.04. For a cooperation, we need to install Ice 3.4.2. We want to develop in C++. I use a 64 bit Ubuntu 12.04 op system, g++ 4.6.3 as compiler.

We tried several things, let me sketch some of those.

We tried to build ice from source. After installing the third party sources we do the following.
The first run of make (in the cpp folder) complains : ptrdiff_t does not name a type. We added a line
# include <cstddef>
in file Ice/Config.h
(We also tried to compile with g++-4.5, where this hack is not needed: the result is the same.)
Then make goes through without an error, but make test fails with the following error:

*******************************************************************
*** running tests 42/74 in /home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/cpp/test/IceSSL/configuration
*** configuration: Default
*** test started: 03/25/14 14:49:43
starting server... ok
starting client... ok
testing manual initialization... ok
testing certificate verification... ok
testing custom certificate verifier... ok
testing protocols... failed!
AllTests.cpp:774: assertion `false' failed
unexpected exit status: expected: 0, got -6
-! 03/25/14 14:49:44.739 warning: connection exception:
TcpTransceiver.cpp:221: Ice::ConnectionLostException:
connection lost: recv() returned zero
local address = 127.0.0.1:12010
remote address = 127.0.0.1:38015
-! 03/25/14 14:49:44.742 warning: connection exception:
TcpTransceiver.cpp:221: Ice::ConnectionLostException:
connection lost: recv() returned zero
local address = 127.0.0.1:12010
remote address = 127.0.0.1:38047
Traceback (most recent call last):
File "/home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/cpp/test/IceSSL/configuration/run.py", line 23, in <module>
TestUtil.clientServerTest(additionalClientOptions = '"%s"' % os.getcwd())
File "/home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/scripts/TestUtil.py", line 1185, in clientServerTest
clientProc.waitTestSuccess()
File "/home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/scripts/Expect.py", line 540, in waitTestSuccess
test(self.exitstatus, exitstatus)
File "/home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/scripts/Expect.py", line 525, in test
assert False
AssertionError
('test in /home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/cpp/test/IceSSL/configuration failed with exit status', 256)
*******************************************************************


Can you help me sort this out, please?

Attila

Comments

  • xdm
    xdm La Coruña, Spain
    In the test case that's failing, the client specifies IceSSL.Protocols=ssl3 and the server specifies IceSSL.Protocols=tls1; the test expects the connection to fail because they have no protocol in common.

    That failure happens because new protocols were added to OpenSSL, IceSSL.Protocols doesn't know how to filter the new protocols. The issue has been fixed in Ice 3.5.

    It shouldn't be a problem if you aren't using IceSSL.Protocols but should be better to upgrade to 3.5.1.
  • Dear Jose,

    Thank you for your answer.
    The problem is that our partner has a windows based project that we want to cooperate with, and they use Ice 3.4.2. We started our component with Ice 3.5.1 (which compiled smoothly under linux, tests succeeded, too), but when we tried to communicate with the other component (using Ice 3.4.2 under windows) we got the error:
    ******************************************************
    warning: dispatch exception: ..\..\include\Ice/BasicStr
    eam.h:175: Ice::UnsupportedEncodingException:
    protocol error: unsupported encoding version: 1.1
    (can only support encodings compatible with version 1.1)
    identity: VircaStreamViewer
    facet:
    operation: ice_isA
    remote host: 172.29.1.147 remote port: 32793
    -! 03/14/14 14:03:44.282 warning: dispatch exception: ..\..\include\Ice/BasicStr
    eam.h:175: Ice::UnsupportedEncodingException:
    protocol error: unsupported encoding version: 1.1
    (can only support encodings compatible with version 1.1)
    identity: VircaStreamViewer
    facet:
    operation: ice_isA
    remote host: 172.29.1.147 remote port: 32793
    ************************************************
    We arrived at the conclusion that we both should use Ice 3.4.2 (our partner is not ready to switch to 3.5.1). Is there really such an incompatibility between these 2 versions, or we are missing something?

    I also started to wonder whether the other tests go through, so I disabled the first 42 tests, and ran make test. I got a failure with IceGrid.
    *********************************************************************
    *** running tests 17/32 in /home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/cpp/test/IceGrid/deployer
    *** configuration: Default
    *** test started: 03/26/14 11:55:26
    starting icegrid registry... ok
    starting icegrid replica-1... ok
    starting icegrid node... ok
    adding application... ok
    starting client... ok
    testing server registration... ok
    testing adapter registration... ok
    testing object registration... ok
    pinging server objects... ok
    testing server configuration... ok
    testing service configuration... ok
    testing server options... ok
    testing variables... ok
    testing parameters... ok
    testing descriptions... ok
    testing property sets...ok
    testing validation... ok
    testing stderr/stdout/log files... failed!
    AllTests.cpp:219: assertion `it->read(1024, lines) && lines.empty()' failed
    unexpected exit status: expected: 0, got -6
    -! 03/26/14 11:55:30.722 Server1: warning: connection exception:
    TcpTransceiver.cpp:221: Ice::ConnectionLostException:
    Traceback (most recent call last):
    connection lost: recv() returned zero
    File "/home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/cpp/test/IceGrid/deployer/run.py", line 25, in <module>
    IceGridAdmin.iceGridTest("application.xml", '--TestDir="%s"' % os.getcwd(), "icebox.exe='%s'" % TestUtil.getIceBox())
    File "/home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/scripts/IceGridAdmin.py", line 253, in iceGridTest
    clientProc.waitTestSuccess()
    File "/home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/scripts/Expect.py", line 540, in waitTestSuccess
    local address = 127.0.0.1:50158
    remote address = 127.0.0.1:52295-! 03/26/14 11:55:30.722 Server2: warning: connection exception:
    test(self.exitstatus, exitstatus)
    File "/home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/scripts/Expect.py", line 525, in test
    assert False
    AssertionError
    TcpTransceiver.cpp:221: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    local address = 127.0.0.1:55225
    remote address = 127.0.0.1:50973-! 03/26/14 11:55:30.722 IceBox1-Service1: warning: connection exception:
    TcpTransceiver.cpp:221: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    local address = 127.0.0.1:48867
    remote address = 127.0.0.1:44643


    -! 03/26/14 11:55:30.725 IceBox1-Service2: warning: connection exception:
    TcpTransceiver.cpp:221: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    local address = 127.0.0.1:40527
    remote address = 127.0.0.1:34810
    -! 03/26/14 11:55:30.725 SimpleServer: warning: connection exception:
    TcpTransceiver.cpp:221: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    local address = 127.0.0.1:54799
    remote address = 127.0.0.1:48939
    -! 03/26/14 11:55:30.727 IceBox2-Service1: warning: connection exception:
    TcpTransceiver.cpp:221: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    local address = 127.0.0.1:35368
    remote address = 127.0.0.1:36274
    -! 03/26/14 11:55:30.729 IceBox1-Service4: warning: connection exception:
    TcpTransceiver.cpp:221: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    local address = 127.0.0.1:51469
    remote address = 127.0.0.1:38654
    -! 03/26/14 11:55:30.730 SimpleIceBox-SimpleService: warning: connection exception:
    TcpTransceiver.cpp:221: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    local address = 127.0.0.1:43739
    remote address = 127.0.0.1:54241
    -! 03/26/14 11:55:30.734 IceBox2-Service4: warning: connection exception:
    TcpTransceiver.cpp:221: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    local address = 127.0.0.1:46386
    remote address = 127.0.0.1:44600
    -! 03/26/14 11:55:30.737 IceBox2-Service2: warning: connection exception:
    TcpTransceiver.cpp:221: Ice::ConnectionLostException:
    connection lost: recv() returned zero
    local address = 127.0.0.1:35764
    remote address = 127.0.0.1:59506
    ('test in /home/athos/install_virca/install/ICE_342_sources/Ice-3.4.2/cpp/test/IceGrid/deployer failed with exit status', 256)
    *********************************************************************

    Is this again something fixed in Ice 3.5?

    Attila
  • xdm
    xdm La Coruña, Spain
    Hi,

    Regarding your problem with 3.4.2 and 3.5 interoperability read this Interoperability between Ice 3.5 and prior releases.

    Regarding to the IceGrid/deployer test failure that issue was fixed in 3.5 too, the failure was related to different behavior of getline under gcc-4.6, that compiler isn't a supported platform for Ice-3.4.2.