• Views
  • Iteration Report
  • My Iteration Report
  •  
OMERO.server
  • Login
  • Help/Guide
  • About Trac
  • Preferences
  • Wiki
  • Timeline
  • Roadmap
  • Browse Source
  • View Tickets
  • Search

Context Navigation

  • ← Previous Ticket
  • Next Ticket →

Ticket #1078 (new defect)

Opened 3 months ago

Deadlocks in client when talking to Blitz

Reported by: jmoore Owned by: jmoore
Priority: critical Milestone: OMERO-Beta4
Component: Client Version: 3.0-M1
Keywords: blitz, sdk, ice, deadlock Cc: callan, atarkowska, donald, cblackburn

Description

Related to OmeroThrottling, there are cases (server-side bugs) in which the client can hang. Many of these have been fixed, and are related to missing try/finally blocks preventing ice_response() and ice_exception() from being called.

In general, such issues can be corrected by using the `Ice.Override.Timeout` on a client-wide basis or setting the timeout on a particular proxy:

   proxy = proxy.ice_timeout(secs)

See http://zeroc.com/doc/Ice-3.3.0/manual/Adv_server.29.12.html for more, especially information on the fatality of timeouts:

"You should also be aware that timeouts are considered fatal error conditions by the Ice run time and result in connection closure on the client side. Furthermore, any other requests pending on the same connection also fail with an exception. Timeouts are meant to be used to prevent a client from blocking indefinitely in case something has gone wrong with the server; they are not meant as a mechanism to routinely abort requests that take longer than intended."

Please report any instances which you see. One in particular from Chris:

11:15:28  chris@jabber: If you get Ice.ConnectionException anywhere and then try and do anything with a service you're deadlocked.
...
11:16:36  chris@jabber: Last night when I had a running Python interpreter for testing I of course left it too long, then did s.createSession() again, hit a service I had before and then boom, deadlock.
...
11:17:40  chris@jabber: Basically:
11:17:49  chris@jabber: s = c.createSession("root", "ome")
11:18:01  chris@jabber: query = s.getQueryService()
11:18:07  chris@jabber: ... wait some time
11:18:21  chris@jabber: query.findAllByQuery(...)
11:18:40  chris@jabber: Ice.ConnectionException (ie. session timeout)
11:18:56  chris@jabber: s = c.createSession("root", "ome")
11:19:07  chris@jabber: query.findAllByQuery(...)
11:19:13  chris@jabber: ... wait forever
Note: See TracTickets for help on using tickets.

Download in other formats:

  • Comma-delimited Text
  • Tab-delimited Text
  • RSS Feed

Trac Powered

Powered by Trac 0.11
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/