Results 1 to 8 of 8

Thread: When is IceInternal::LocalExceptionWrapper triggered?

  1. #1
    indisys is offline Registered User
    Name: Israel Perez de Tudela
    Organization: Intelligent Dialogue System S.L.
    Project: Intelligent virtual assistants
    Join Date
    Dec 2010
    Posts
    4

    When is IceInternal::LocalExceptionWrapper triggered?

    Hi,

    I am getting this error message from ICE:

    terminate called after throwing an instance of 'IceInternal::LocalExceptionWrapper'
    This exception is not catched by a catch(const Ice::Exception& ex), but it is catched by a catch(...).

    This exception is triggered when I create a direct proxy by checkedcast instruction and I wait for the conexion to be closed by ACM. The exception is triggered when I'm going to use the proxy.

    Code sample:

    Code:
      // Ice initialization
      int cl_argc = 4;
      char* cl_argv[4];
      cl_argv[0] = (char*) "myapp";
      cl_argv[1] = (char*) "--Ice.ACM.Client=4";
      cl_argv[2] = (char*) "--Ice.Trace.Protocol=2";
      cl_argv[3] = (char*) "--Ice.Trace.Network=3";
    
      Ice::CommunicatorPtr iceComm;
      try
      {
        iceComm = Ice::initialize(cl_argc, cl_argv);
      }
      catch (const Ice::Exception& oops)
      {
         cout << "Ice environment: Ice Exception '" << oops << "'";
      }
    
      DDLSIceServerInterfacePrx ddlsPrx = DDLSIceServerInterfacePrx::checkedCast(iceComm->stringToProxy("DDLSIceServer :default -h 10.30.101.111 -p 18001 -t 5000"));   // down-cast from ObjectPrx to DDLSLocuazInterfacePrx
      sleep(8);
      string result = ddlsPrx->getsDRule("", "DEFAULT"); // This instruction is not executed, exception is raised.
    I have tried to find information about IceInternal::LocalExceptionWrapper but I have not found anything.

    I'm using ICE 3.4.0 in Ubuntu 10.04.

    I would like to know:

    1- When/why is this exception triggered?
    2- Why this exception is not catched by a catch(const Ice::Exception& ex)?

    Thanks in advance!!!
    Last edited by indisys; 12-30-2010 at 08:09 AM.

  2. #2
    marc's Avatar
    marc is offline ZeroC Staff
    Name: Marc Laukien
    Organization: ZeroC, Inc.
    Project: The Internet Communications Engine
    Join Date
    Feb 2003
    Location
    Florida
    Posts
    1,860
    This is an internal exception, which should never escape to application code.

    I'm afraid without further information, it is not possible to say what might be wrong. We are not aware of any problems in Ice that might cause this, which means that it might be a memory corruption. Do you have a complete example that demonstrates the problem?

  3. #3
    marc's Avatar
    marc is offline ZeroC Staff
    Name: Marc Laukien
    Organization: ZeroC, Inc.
    Project: The Internet Communications Engine
    Join Date
    Feb 2003
    Location
    Florida
    Posts
    1,860
    Also, what compiler version and what hardware are you using?

  4. #4
    indisys is offline Registered User
    Name: Israel Perez de Tudela
    Organization: Intelligent Dialogue System S.L.
    Project: Intelligent virtual assistants
    Join Date
    Dec 2010
    Posts
    4
    Hi Marc!!!!

    Thanks for your answer.

    Our compiler is: gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5).

    Our hardware: Intel Core 2 Quad CPU Q9300 2.5Ghz - RAM 4Gb SO: 32b

    This is the log of our program:
    Code:
    -- 12/30/10 15:22:19.576 Network: trying to establish tcp connection to 10.30.101.111:18001
    -- 12/30/10 15:22:19.602 Network: tcp connection established
       local address = 10.0.2.15:41078
       remote address = 10.30.101.111:18001
    -- 12/30/10 15:22:19.603 Network: received 14 of 14 bytes via tcp
       local address = 10.0.2.15:41078
       remote address = 10.30.101.111:18001
    -- 12/30/10 15:22:19.603 Protocol: received validate connection 
       message type = 3 (validate connection)
       compression status = 0 (not compressed; do not compress response, if any)
       message size = 14
    -- 12/30/10 15:22:19.605 Protocol: sending request 
       message type = 0 (request)
       compression status = 0 (not compressed; do not compress response, if any)
       message size = 90
       request id = 1
       identity = DDLSIceServer
       facet = 
       operation = ice_isA
       mode = 1 (nonmutating)
       context = 
    -- 12/30/10 15:22:19.605 Network: sent 90 of 90 bytes via tcp
       local address = 10.0.2.15:41078
       remote address = 10.30.101.111:18001
    -- 12/30/10 15:22:19.606 Network: received 14 of 14 bytes via tcp
       local address = 10.0.2.15:41078
       remote address = 10.30.101.111:18001
    -- 12/30/10 15:22:19.606 Network: received 12 of 12 bytes via tcp
       local address = 10.0.2.15:41078
       remote address = 10.30.101.111:18001
    -- 12/30/10 15:22:19.606 Protocol: received reply 
       message type = 2 (reply)
       compression status = 0 (not compressed; do not compress response, if any)
       message size = 26
       request id = 1
       reply status = 0 (ok)
    
    General	Locuaz::Locuaz()	DDLS channel: Sleeping 8 seconds
    
    -- 12/30/10 15:22:24.570 Protocol: sending close connection 
       message type = 4 (close connection)
       compression status = 1 (not compressed; compress response, if any)
       message size = 14
    -- 12/30/10 15:22:24.570 Network: sent 14 of 14 bytes via tcp
       local address = 10.0.2.15:41078
       remote address = 10.30.101.111:18001
    -- 12/30/10 15:22:24.577 Network: closing tcp connection
       local address = 10.0.2.15:41078
       remote address = 10.30.101.111:18001
    
    General	Locuaz::Locuaz()	DDLS channel: calling to ddlsPrx->getsDRule
    
    terminate called after throwing an instance of 'IceInternal::LocalExceptionWrapper'
    In next days we will try to send a complete example.

    Thanks for all!!!!

  5. #5
    indisys is offline Registered User
    Name: Israel Perez de Tudela
    Organization: Intelligent Dialogue System S.L.
    Project: Intelligent virtual assistants
    Join Date
    Dec 2010
    Posts
    4
    Another thing: all your tests (defining in allTests.py) are completed with successfull in our hardware.

  6. #6
    xdm's Avatar
    xdm
    xdm is offline ZeroC Staff
    Name: Jose Gutierrez de la Concha
    Organization: ZeroC, Inc.
    Project: Ice Developer
    Join Date
    Sep 2003
    Location
    La Coruņa, Spain
    Posts
    588
    I noticed a minor issue with your code

    argv should be terminated with a 0, it could cause problems with some compilers.

    The correct code should be:

    Code:
      int cl_argc = 4;
      char* cl_argv[cl_argc + 1];
      cl_argv[0] = (char*) "myapp";
      cl_argv[1] = (char*) "--Ice.ACM.Client=4";
      cl_argv[2] = (char*) "--Ice.Trace.Protocol=2";
      cl_argv[3] = (char*) "--Ice.Trace.Network=3";
      cl_argv[4] = 0;
    Not sure if that is causing the problem you are seeing, actually i will prefer to not write code like that to initialize the communicator.

    Code:
     Ice::InitializationData initData;
     initData.properties = Ice::createProperties();
     initData.properties.setProperty("Ice.ACM.Client", 4);
    ....
      Ice::CommunicatorPtr ic;
      try
      {
        ic = Ice::initialize(initData);
      }
      catch (const Ice::Exception& ex)
      {
         ...
      }
    What Ice version are you using?

  7. #7
    indisys is offline Registered User
    Name: Israel Perez de Tudela
    Organization: Intelligent Dialogue System S.L.
    Project: Intelligent virtual assistants
    Join Date
    Dec 2010
    Posts
    4
    Hi Jose!

    I'm not at work now. But, in next week, I will change the code to use InitializationData.

    Answering to your question, we are using ICE 3.4.0

    Thanks for your answer, greetings from Seville :-) and happy new year to everybody.

  8. #8
    xdm's Avatar
    xdm
    xdm is offline ZeroC Staff
    Name: Jose Gutierrez de la Concha
    Organization: ZeroC, Inc.
    Project: Ice Developer
    Join Date
    Sep 2003
    Location
    La Coruņa, Spain
    Posts
    588
    It will be good to update to 3.4.1, that is the latest release, we only provide free support for the latest release.

    As 3.4.1 is binary compatible with 3.4.0 you don't need to change you code.

    Happy new year

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Visual Studio 2008 Plugin - Slice2cpp not triggered
    By guenter in forum Help Center
    Replies: 7
    Last Post: 06-15-2010, 07:14 AM
  2. Replies: 1
    Last Post: 04-05-2009, 08:49 AM
  3. bug in IceInternal.Outgoing in Ice 3.2.1
    By dhogan in forum Bug Reports
    Replies: 5
    Last Post: 02-17-2009, 03:03 PM
  4. IceInternal::incRef segmentation fault
    By xdm in forum Help Center
    Replies: 2
    Last Post: 06-02-2006, 02:44 PM
  5. IceInternal::Handle
    By RyanFogarty in forum Help Center
    Replies: 7
    Last Post: 12-18-2004, 12:27 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •