Improve reporting of broken CMs
@alsuren
Submitted by David Laban Assigned to Telepathy bugs list
Description
One of Telepathy's advantages is the ability to carry on/recover when one of the CMs dies and falls off the bus. Another potential failure mode for a CM is deadlocking. In this case, method calls will fail with a timeout, but most programs (read: Empathy) don't escalate these failures. Also, the CM falling off the bus isn't reported as such in empathy (should I report a bug for this there too?)
Proposal:
Extend Account.ConnectionStatusReason's enum (== Connection's Connection_Status_Reason enum) to include a value Local_Component_Failure
Define an equivalent error for putting in Account.ConnectionError
Have a method Account.Ping() which either succeeds, or [returns an error and] sets the above properties. This way, clients can call this method in response to all timeout failures, and the AccountManager will do the right thing. (or make the AccountManager prod the CMs periodically to check for lockups anyway)
Document that clients should probably not try to kill/restart locked up CMs without user confirmation, because this would make using gdb to debug CM problems impossible.
Version: git master