Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] [DSF] timeouts

I think that's a very accurate dissection of the issue.

The challenge to specifying a timeout is equally present in MI and DSF, though. Generally speaking it's no more easier predicting a reasonable timeout for an MI command as it is for a DSF operation. You're trying to get the list of local variables. How much patience should you have for that? Does the answer really matter all that much if the locals are being queried via gdb/mi or some other backend API? The answer is much more likely to vary based on other factors (local vs remote debugging and debugger engine load, e.g.). So, one needs to wonder if pushing the burden down to the backend accomplishes anything other than keeping DSF cleaner.

I'm not arguing for any particular solution. I think this is a very tricky matter and one that is unlikely to have a solution everyone will be very happy with.


At 10:17 AM 6/23/2010, Pawel Piech wrote:
There are two issues here:
1) Should there be a timeout mechanism for MI commands that do not complete in a timely fashion. 2) Fault tolerance for asynchronous calls not being completed due to programming errors.

For first issue a timeout seems like an appropriate solution. The timeout could be specified at command creation and handled by the command control service. In other cases a timeout at the query may be appropriate as well. For the second issue we definitely need some improvement, though I'm not sure if timeouts are an appropriate solution. The problem with timeout is that you have to specify a timeout value that is large enough that it won't get triggered accidentally on a heavily loaded systems, but small enough that it won't appear as if the UI was hanging. Another option to add fault tolerance for async calls would be to instrument the DSF executor better to detect when a request monitor is being orphaned due to a runtime exception. This wouldn't be a complete fix, but it would probably cover most of the cases of uncompleted async. calls we see now. Finally the best way to add fault tolerance is to improve the automated testing ;-)


On 06/23/2010 06:53 AM, Marc Khouzam wrote:
Yes, I'm starting to be concerned about our lack
of 'timeout' support.

This is a question for DSF in general I believe.

Currently, most calls are asynchronous and are left to
complete whenever they do, if at all.

However, some calls are done within a synchronous DSF
Query, and executed in the UI-thread.  If any of those
don't complete, we are in trouble.  The Query class
provides with a get(long timeout, TimeUnit unit)
which we should probably use in those cases.

Outside those UI-thread cases, I believe we could
still hang a view if a command never complete and
the update.done() is never called.  Isn't that the case?


-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx
[mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of John Cortell
Sent: Wednesday, June 23, 2010 8:11 AM
To: CDT General developers list.; 'cdt-dev@xxxxxxxxxxx'
Subject: Re: [cdt-dev] [DSF] timeouts


This is a discussion we tabled until after Helios. Maybe now is a
good time to return to it.


At 04:53 AM 6/23/2010, Vladimir Prus wrote:

Does DSF have a mechanism to timeout when a command takes too much
time? One case I've run into right now is failure to call done on
a request monitor. Another viable case is when a target is stuck
for whatever reason. I could not find any provisious for marking
an operation failed after a while -- have I missed something?


Vladimir Prus
(650) 331-3385 x722
cdt-dev mailing list

cdt-dev mailing list

cdt-dev mailing list

cdt-dev mailing list

Back to the top