Per discussion with dshi@, autotest RPC clients have a socket timeout that is relatively short, however RPC requests often outlive this on the server and may even still be in flight when the client retries their request. This can lead to incorrect behavior such as duplication of run_suite calls.
Have the clients pass in an rpc timeout or expiration time that is slightly shorter than their own socket timeout, to ensure that calls are either killed or simply not tried if they are already expired by the time they reach the rpc handler.
Comment 1 by autumn@chromium.org
, Mar 28 2016