Open
Description
Since updating to 6.1.0-preview2.25178.5, I am seeing occassional exceptions with the following stack trace:
System.ArgumentException: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.
at System.Buffer.BlockCopy(Array src, Int32 srcOffset, Array dst, Int32 dstOffset, Int32 count)
at Microsoft.Data.SqlClient.TdsParserStateObject.TryReadPlpBytes(Byte[]& buff, Int32 offset, Int32 len, Int32& totalBytesRead, Boolean canContinue, Boolean writeDataSizeToSnapshot, Boolean compatibilityMode)
at Microsoft.Data.SqlClient.TdsParser.TryReadSqlStringValue(SqlBuffer value, Byte type, Int32 length, Encoding encoding, Boolean isPlp, TdsParserStateObject stateObj)
at Microsoft.Data.SqlClient.TdsParser.TryReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj, SqlCommandColumnEncryptionSetting columnEncryptionOverride, String columnName, SqlCommand command)
at Microsoft.Data.SqlClient.SqlDataReader.TryReadColumn(Int32 i, Boolean setTimeout, Boolean allowPartiallyReadColumn, Boolean forStreaming)
at Microsoft.Data.SqlClient.SqlDataReader.ReadAsyncExecute(Task task, Object state)
at Microsoft.Data.SqlClient.SqlDataReader.ContinueAsyncCall[T](Task task, SqlDataReaderBaseAsyncCallContext`1 context)
at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
at DSE.Content.Domain.Commands.GetResourceCommandHandler.DoExecuteAsync(GetResourceCommand command, ValueResultBuilder`1 builder, CancellationToken cancellationToken) in /_/src/content/src/DSE.Content.Domain/Commands/GetResourceCommandHandler.cs:line 81
at DSE.Framework.DomainModel.Commands.AsyncResultCommandHandler`3.DoExecuteAsync(TCommand command, CancellationToken cancellationToken) in /_/src/framework/src/DSE.Framework.DomainModel/Commands/AsyncResultCommandHandler.cs:line 97
Expected behavior
Read succeeds.
Further technical details
Microsoft.Data.SqlClient version: 6.1.0-preview2.25178.5
.NET target: .NET 9.0.6
SQL Server version: Azure SQL Server
Operating system: mcr.microsoft.com/dotnet/aspnet:9.0.6-noble-amd64
Additional context
Not seen with 6.0.2
Only seen with occasional results. Generally works. So far, I cannot spot a material difference between what works and what doesn't. (Any suggestions on what to look for?)