Symptoms
When a SQL Server 2012 or SQL Server 2014 database contains a large transaction log file, you cannot restore the database in the Microsoft Azure binary large objects (BLOB) storage service. For example, if the transaction log file is so large that it takes longer than 3 minutes to restore it, you cannot restore the database.
For example: If you backup a very large database to URL and it may fail with the following error message:<DateTime> Backup Error: 3041, Severity: 16, State: 1.
<DateTime> Backup BACKUP failed to complete the command BACKUP DATABASE BravoII_AS_PROD WITH DIFFERENTIAL. Check the backup application log for detailed messages. <DateTime> spid55 Error: 18210, Severity: 16, State: 1.<DateTime> spid55 BackupVirtualDeviceFile::RequestDurableMedia: Flush failure on backup device 'https://xxx.blob.core.windows.net/production/yyy.bck'. Operating system error Error could not be gathered from Remote Endpoint.And if you enable the backup to URL trace flag (DBCC TRACEON(3004, 3051, 3212,3014, 3605, 1816, -1)) you may receive the information that resembles the following in backuptoUrL log:
<DateTime>: HTTP status code 201, HTTP Status Message Created
<DateTime>: Payload: Start 7319191552, Cmd Size 1048576, Payload Size 1048576, starttime 84313.5811126, endtime 84313.6281149, duration 47.0023 ms, attempts 1, Callback executed? True <DateTime>: HTTP status code 201, HTTP Status Message Created <DateTime>: IO Completion has changed the allowed parallel operations to 64, throttle count Delta of 63 threads was computed <DateTime>: A timeout occurred on GetCommand, timeout length of 20000, will retry <DateTime>: A timeout occurred on GetCommand, timeout length of 20000, will retry <DateTime>: A timeout occurred on GetCommand, timeout length of 20000, will retry <DateTime>: A timeout occurred on GetCommand, timeout length of 20000, will retry <DateTime>: A timeout occurred on GetCommand, timeout length of 20000, will retry <DateTime>: A timeout occurred on GetCommand, timeout length of 20000, will retry <DateTime>: A timeout occurred on GetCommand, timeout length of 20000, will retry <DateTime>: A timeout occurred on GetCommand, timeout length of 20000, will retry <DateTime>: A timeout occurred on GetCommand, timeout length of 20000, will retry <DateTime>: Backup communication with SqlServr failed, hr = 0x80770003 <DateTime>: A fatal error occurred during Engine Communication, exception information follows <DateTime>: Exception Info: An error occurred during data transfer operations with SqlServer, HRESULT: 0x80770003 <DateTime>: Stack: at Microsoft.SqlServer.VdiInterface.VDI.PerformPageDataTransfer(CloudPageBlob pageBlob, AccessCondition leaseCondition, Boolean forBackup) at BackupToUrl.Program.MainInternal(String[] args)
Resolution
The issue was first fixed in the following cumulative update of SQL Server.
Cumulative Update 1 for SQL Server 2014 SP1 /en-us/help/3067839
Cumulative Update 6 for SQL Server 2012 SP2
Cumulative Update 16 for SQL Server 2012 SP1 /en-us/help/3052476
Cumulative Update 7 for SQL Server 2014 /en-us/help/3046038
Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.