When using the Blob API of the 1.5.20830.1814 SDK (VS 2010 Tools 1.5.40909.1602), we are experiencing frequent deadlock scenarios when uploading blobs in parallel (typically, invoked via Task.Factory.Start wrappers that ultimately call the synchronous UploadFromStream
method). Here is an example stack trace from DevStorage:
3/13/2012 11:54:45 PM [Error_debug] Exception raised during processing of request. Microsoft.Cis.Services.Nephos.Common.Protocols.Rest.FatalServerCrashingException:
The fatal unexpected exception 'Transaction (Process ID 55) was deadlocked on lock resources
with another process and has been chosen as the deadlock victim. Rerun the transaction.' encountered during processing of request. ---> System.Data.SqlClient.SqlException: Transaction (Process ID 55) was deadlocked on lock resources with another
process and has been chosen as the deadlock victim. Rerun the transaction.
at Microsoft.Cis.Services.Nephos.Common.Protocols.Rest.BasicHttpProcessorWithAuthAndAccountContainer`1.EndPerformOperation(IAsyncResult ar)
at Microsoft.Cis.Services.Nephos.Common.Protocols.Rest.BasicHttpProcessorWithAuthAndAccountContainer`1.<ProcessImpl>d__4.MoveNext()
--- End of inner exception stack trace ---
According to a previous post from back in the 1.2 days [1], this was reportedly to be fixed in "a future version"...any ideas on why we're still able to cause this?
[1]: http://social.msdn.microsoft.com/Forums/en-US/windowsazuredata/thread/7ac51103-3d41-483d-84a1-0d70dfa1177e