Currently when a .put() operation fails early, the controller continues sending chunks.
Additionally, the remote side will send a traceback for each chunk it receives after the first failure. This causes a KeyError on the controller.
To recover gracefully from this, the remote side should disregard uploaded chunks until it receives an acknowledgement from the controller that the upload has been aborted.
Currently when a .put() operation fails early, the controller continues sending chunks.
Additionally, the remote side will send a traceback for each chunk it receives after the first failure. This causes a KeyError on the controller.
To recover gracefully from this, the remote side should disregard uploaded chunks until it receives an acknowledgement from the controller that the upload has been aborted.