dotnet / SqlClient

Microsoft.Data.SqlClient provides database connectivity to SQL Server for .NET applications.
MIT License
842 stars 281 forks source link

Fixed incorrect string format at event tracing when OutOfMemory exception thrown #2797

Open Markeli opened 1 month ago

Markeli commented 1 month ago

Due to incorrect string TryTraceEvent throws StringFormatException. I've remove redundant braces.

Example of stacktrace:

System.FormatException: Input string was not in a correct format. Failure to parse near offset 103. Expected an ASCII digit.
  ?, in void ValueStringBuilder.AppendFormatHelper(IFormatProvider provider, string format, ReadOnlySpan<object> args)
  ?, in string string.FormatHelper(IFormatProvider provider, string format, ReadOnlySpan<object> args)
  ?, in void SqlClientEventSource.TryTraceEvent<T0>(string message, T0 args0)
  ?, in void SqlConnection.Abort(Exception e)
  ?, in void SqlCommand.BeginExecuteNonQueryInternalReadStage(TaskCompletionSource<object> completion)
  ?, in IAsyncResult SqlCommand.BeginExecuteNonQueryInternal(CommandBehavior behavior, AsyncCallback callback, object stateObject, int timeout, bool inRetry, bool asyncWrite)
  ?, in Task<TResult> TaskFactory<TResult>.FromAsyncImpl(Func<AsyncCallback, object, IAsyncResult> beginMethod, Func<IAsyncResult, TResult> endFunction, Action<IAsyncResult> endAction, object state, TaskCreationOptions creationOptions)
  ?, in Task<int> SqlCommand.InternalExecuteNonQueryAsync(CancellationToken cancellationToken)
  File "/src/Mindbox.Database.EntityFramework.SqlServer/SqlServerRelationalDatabaseExtension.cs", line 319, col 3, in async Task SqlServerRelationalDatabaseExtension.SetSessionContextInfoAsync(IDbConnection connection, IDbTransaction transaction, string contextInfo) x 2
  File "Model/ModelContext.cs", line 195, col 3, in async Task ModelContext.ResetSessionContextInfoAsync()
  File "LongRunningTaskScheduler.cs", line 419, col 9, in async Task LongRunningTaskScheduler.TryLaunchTasksIsolatedAsync()+(?) => { }