Results 1 to 8 of 8

Thread: IceGrid Admin session throws Ice::ObjectNotExistException after server act. timeout

  1. #1
    n2503v is offline Registered User
    Name: Alex Makarenko
    Organization: ACFR, University of Sydney
    Project: Orca
    Join Date
    Jun 2005
    Posts
    134

    IceGrid Admin session throws Ice::ObjectNotExistException after server act. timeout

    Hello, I have a question about the behavior of the IceGrid Admin session.

    After server activation times out, any call to the IceGrid Admin object seems to result in Ice::ObjectNotExistException.
    Does this makes sense? Is it possible to avoid this?

    Thanks,
    Alex

    Ice-3.4.1, Linux.

    Here's the log from the executable which talks to the Registry:

    [ 02/28/11 22:50:17.786 pulque/sysadmin: debug: NodeObserverI::updateServer:
    node: s
    updatedInfo:
    id: s.low
    state: ActivationTimedOut
    pid: 15418
    enabled: 1 ]

    [sorry, no time stamp here, but the traces are chronological] Outgoing.cpp:424: Ice::ObjectNotExistException:
    object does not exist:
    identity: `IceGrid/863E5A5B-C0C9-445F-A38A-93457F91E8A7'
    facet:
    operation: getServerState

    [ 02/28/11 22:50:18.132 Outgoing.cpp:424: Ice::ObjectNotExistException:
    object does not exist:
    identity: `IceGrid/2122DE2A-50B3-4C07-A6E5-4453901F68A7'
    facet:
    operation: keepAlive ]


    As can be seen from the icegridnode trace below, the Admin session does not time out until later, so the problem is not with failure to keep alive:'
    -- 02/28/11 22:49:50.120 icegridnode: Session: admin session `pulque/sysadmin-0' keep alive
    -- 02/28/11 22:49:57.122 icegridnode: Session: admin session `pulque/sysadmin-0' keep alive
    -- 02/28/11 22:50:04.123 icegridnode: Session: admin session `pulque/sysadmin-0' keep alive
    -- 02/28/11 22:50:11.125 icegridnode: Session: admin session `pulque/sysadmin-0' keep alive
    -- 02/28/11 22:51:10.930 icegridnode: Session: admin session `pulque/sysadmin-0' destroyed
    Alex Makarenko
    Marathon Robotics
    project: multi-robot systems

  2. #2
    benoit's Avatar
    benoit is offline ZeroC Staff
    Name: Benoit Foucher
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Rennes, France
    Posts
    2,196
    Hi Alex,

    Is something perhaps causing the connection to be dropped between your client and the IceGrid registry right after receiving the node observer update indicating the server activation timeout? I would enable network connection tracing to see if the connection is being dropped. If it's dropped, this would explain the Ice::ObjectNotExistException (the session is tight to the connection).

    Cheers,
    Benoit.

  3. #3
    n2503v is offline Registered User
    Name: Alex Makarenko
    Organization: ACFR, University of Sydney
    Project: Orca
    Join Date
    Jun 2005
    Posts
    134
    Thanks Benoit,
    your guess was correct: there was a disconnection due to a misconfiguration in timeouts:
    the server activation timeout (IceGrid.Node.WaitTime) was shorter than invocation timeout (Ice.Override.Timeout).

    This resulted in Ice::TimeoutException which I guess also closes the connection. Is this right?

    I've fixed that but I still sometimes get disconnections. I'll try to get to the bottom of this.

    Meanwhile, I try to re-establish a session and reset the IceGrid observers. I don't get any errors but the observers don't receive any updates after the re-connections. I'll get more details and probably ask more questions.

    Thanks for the support,
    Alex
    Alex Makarenko
    Marathon Robotics
    project: multi-robot systems

  4. #4
    benoit's Avatar
    benoit is offline ZeroC Staff
    Name: Benoit Foucher
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Rennes, France
    Posts
    2,196
    Hi Alex,

    How do you reset the IceGrid observers? If you're using bi-directional
    connections to receive observer updates, you will need to re-create the observer proxies with an object adapter which is associated to the new connection (the one used to create the session).

    Cheers,
    Benoit.

  5. #5
    n2503v is offline Registered User
    Name: Alex Makarenko
    Organization: ACFR, University of Sydney
    Project: Orca
    Join Date
    Jun 2005
    Posts
    134
    Benoit,

    to clarify...
    I have one adapter which is activated at the start of the execution.
    I create observer objects (once) and add them to the adapter with a UUID.
    Then I set the IceGrid observers with the proxy to the observer objects.

    After the session is reset, I try to set the observers again using the same proxies
    and catch IceGrid::ObserverAlreadyRegisteredException.
    This is what I'd expect so I assumed that it's ok.

    So do I need to re-create the proxies even though it's the same adapter?

    Cheers,
    Alex
    Alex Makarenko
    Marathon Robotics
    project: multi-robot systems

  6. #6
    benoit's Avatar
    benoit is offline ZeroC Staff
    Name: Benoit Foucher
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Rennes, France
    Posts
    2,196
    Is your object adapter listening on some endpoints (you configure the object adapter Endpoints property for example) or is it a bi-directional object adapter (you use connection->setAdapter() to associate the object adapter with a connection)?

    Do you register the observers with the setObservers or setObserversByIdentity method?

    In any case, while you should be able to re-use the same observers, I don't really recommend it. It's in general best to simply re-create new observer Ice objects (instantiate new servants and register them with a new identity). This ensures your new observers won't potentially receive updates from an old session.

    Cheers,
    Benoit.

  7. #7
    n2503v is offline Registered User
    Name: Alex Makarenko
    Organization: ACFR, University of Sydney
    Project: Orca
    Join Date
    Jun 2005
    Posts
    134
    Is your object adapter listening on some endpoints (you configure the object adapter Endpoints property for example) or is it a bi-directional object adapter (you use connection->setAdapter() to associate the object adapter with a connection)?
    object adapter with Endpoints property.

    Do you register the observers with the setObservers or setObserversByIdentity method?
    setObservers()

    In any case, while you should be able to re-use the same observers, I don't really recommend it. It's in general best to simply re-create new observer Ice objects (instantiate new servants and register them with a new identity). This ensures your new observers won't potentially receive updates from an old session.
    I see your point. I can change my code around to re-create the observers every time the session is created. I guess in this case they will receive initialization messages every time the observers are set?

    Thanks,
    Alex
    Alex Makarenko
    Marathon Robotics
    project: multi-robot systems

  8. #8
    benoit's Avatar
    benoit is offline ZeroC Staff
    Name: Benoit Foucher
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Rennes, France
    Posts
    2,196
    Hi Alex,

    Yes, you should get the initialization message when the observers are registered. This allows to catch up with the updates you might not have received while the connection was down.

    Cheers,
    Benoit.

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. IceGrid Server activation timeout error
    By dmm in forum Help Center
    Replies: 2
    Last Post: 11-05-2010, 12:46 PM
  2. IceGrid - Opening an admin session Ice 3.4
    By Laurent in forum Help Center
    Replies: 11
    Last Post: 03-31-2010, 02:17 PM
  3. Replies: 0
    Last Post: 02-26-2009, 10:04 AM
  4. Upgrade to ice 3.2 : problem with Icegrid admin session
    By Vivien Delage in forum Help Center
    Replies: 2
    Last Post: 10-15-2007, 04:13 AM
  5. Problem keeping IceGrid::Admin session alive
    By borax00 in forum Help Center
    Replies: 2
    Last Post: 05-03-2007, 03:55 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
  •