You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Visual Studio Enterprise 2015 v14.0.25123.00 Update 2
Roslyn Insider v1.3.0.60510 from nightly feed
Steps to Reproduce:
Several crashes of Visual Studio 2015 Update 2 when editing file.
Expected Behavior:
Visual Studio 2015 should not crash
Actual Behavior:
Anwendung: devenv.exe
Frameworkversion: v4.0.30319
Beschreibung: Die Anwendung forderte die Beendigung des Prozesses durch System.Environment.FailFast(Zeichenfolgenmeldung) an.
Meldung: System.AggregateException: One or more errors occurred. ---> System.ArgumentException: SyntaxTree 'namespace App.Uap10.Services.DataSources
{
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using App.Uap10.Services.DataSources.Base;
using App.Commons.Annotations;
using App.Commons.Logging;
using App.Commons.Template10;
public class BackgroundLoadingObservableCollection<T> : BaseDataSourceObservableCollection<T>
{
private static readonly ILogger logger = LogManager.GetLogger<BackgroundLoadingObservableCollection<T>>();
private readonly TaskCompletionSource<int> firstPageCompletionSource;
private readonly TaskCompletionSource<int> loadingTaskCompletionSource;
/// <summary>
/// Initializes a new instance of the <see cref="BackgroundLoadingObservableCollection{T}"/> class.
/// </summary>
public BackgroundLoadingObservableCollection()
{
this.firstPageCompletionSource = new TaskCompletionSource<int>();
this.loadingTaskCompletionSource = new TaskCompletionSource<int>();
}
/// <summary>
/// Initializes a new instance of the <see cref="BackgroundLoadingObservableCollection{T}"/> class.
/// </summary>
public BackgroundLoadingObservableCollection(BaseIncrementalLoadingDataSource<T> dataSource)
: this()
{
// Do not pass DataSource to base constructor to make sure that loadingTaskCompletionSource is initialized!
this.DataSource = dataSource;
}
/// <summary>
/// Gets the first page task.
/// </summary>
[PublicAPI]
public Task<int> FirstPageTask
{
[DebuggerStepThrough]
get { return this.firstPageCompletionSource.Task; }
}
/// <summary>
/// Gets the loading task.
/// </summary>
[PublicAPI]
public Task<int> LoadingTask
{
[DebuggerStepThrough]
get { return this.loadingTaskCompletionSource.Task; }
}
/// <summary>
/// Waits for loading completed.
/// </summary>
[PublicAPI]
public async Task<int> WaitForLoadingCompleted()
{
return await this.loadingTaskCompletionSource.Task.ConfigureAwait(false);
}
#region Overrides of BaseDataSourceObservableCollection<T>
/// <summary>
/// Called when the data source was updated.
/// </summary>
protected override void UpdateDataSource()
{
base.UpdateDataSource();
Task.Run(async delegate
{
int count = 0;
bool isFirstPage = true;
try
{
while (this.DataSource.HasMoreItems)
{
count = count + await this.DataSource.DoLoadMoreItemsAsync(this.Items).ConfigureAwait(false);
if ((count > 0) && isFirstPage)
{
isFirstPage = false;
await this.NotifyChangedAsync(this.DataSource).ConfigureAwait(f);
this.firstPageCompletionSource.TrySetResult(count);
}
await Task.Delay(1);
}
this.loadingTaskCompletionSource.TrySetResult(count);
}
catch (Exception ex)
{
if (!ex.IsOperationCanceledException())
{
logger.WarnException(ex.Message, ex);
this.loadingTaskCompletionSource.TrySetException(ex);
if (isFirstPage)
{
this.NotifyChanged(this.DataSource);
this.firstPageCompletionSource.TrySetException(ex);
}
}
else
{
this.loadingTaskCompletionSource.TrySetResult(count);
if (isFirstPage)
{
this.NotifyChanged(this.DataSource);
this.firstPageCompletionSource.TrySetResult(count);
}
}
}
});
}
#endregion
}
}' not found to remove
Parameter name: syntaxTree
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetSemanticModel(SyntaxTree syntaxTree, Boolean ignoreAccessibility)
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CommonGetSemanticModel(SyntaxTree syntaxTree, Boolean ignoreAccessibility)
at Microsoft.CodeAnalysis.SymbolId.GetInteriorSymbols(ISymbol containingSymbol, List`1 symbols)
at Microsoft.CodeAnalysis.SymbolId.GetInteriorSymbolOccurrence(ISymbol symbol)
at Microsoft.CodeAnalysis.SymbolId.Generator.VisitLocal(ILocalSymbol symbol)
at Microsoft.CodeAnalysis.SymbolId.Generator.Visit(ISymbol symbol)
at Microsoft.CodeAnalysis.SymbolId.CreateId(ISymbol symbol)
at Microsoft.CodeAnalysis.Completion.Providers.SymbolCompletionItem.EncodeSymbols(IReadOnlyList`1 symbols)
at Microsoft.CodeAnalysis.Completion.Providers.SymbolCompletionItem.Create(String displayText, TextSpan span, IReadOnlyList`1 symbols, Int32 contextPosition, Int32 descriptionPosition, String sortText, String insertionText, Nullable`1 glyph, String filterText, Boolean preselect, SupportedPlatformData supportedPlatforms, Boolean isArgumentName, ImmutableDictionary`2 properties, ImmutableArray`1 tags, CompletionItemRules rules)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.CreateItem(String displayText, String insertionText, Int32 position, List`1 symbols, AbstractSyntaxContext context, TextSpan span, Boolean preselect, SupportedPlatformData supportedPlatformData)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.CreateItem(String displayText, String insertionText, Int32 position, List`1 symbols, AbstractSyntaxContext context, TextSpan span, Dictionary`2 invalidProjectMap, List`1 totalProjects, Boolean preselect)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.<>c__DisplayClass6_0.<CreateItems>b__3(IGrouping`2 g)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.CreateItems(Int32 position, IEnumerable`1 symbols, TextSpan span, AbstractSyntaxContext context, Dictionary`2 invalidProjectMap, List`1 totalProjects, Boolean preselect)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.<GetItemsWorkerAsync>d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.<ProvideCompletionsAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Completion.CompletionServiceWithProviders.<GetProviderCompletionsAsync>d__24.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at Microsoft.CodeAnalysis.Completion.CompletionServiceWithProviders.<GetCompletionsAsync>d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.Completion.Controller.Session.ModelComputer.<GetCompletionListAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.Completion.Controller.Session.ModelComputer.<DoInBackgroundAsync>d__13.MoveNext()
--- End of inner exception stack trace ---
---> (Inner Exception #0) System.ArgumentException: SyntaxTree 'namespace App.Uap10.Services.DataSources
{
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using App.Uap10.Services.DataSources.Base;
using App.Commons.Annotations;
using App.Commons.Logging;
using App.Commons.Template10;
public class BackgroundLoadingObservableCollection<T> : BaseDataSourceObservableCollection<T>
{
private static readonly ILogger logger = LogManager.GetLogger<BackgroundLoadingObservableCollection<T>>();
private readonly TaskCompletionSource<int> firstPageCompletionSource;
private readonly TaskCompletionSource<int> loadingTaskCompletionSource;
/// <summary>
/// Initializes a new instance of the <see cref="BackgroundLoadingObservableCollection{T}"/> class.
/// </summary>
public BackgroundLoadingObservableCollection()
{
this.firstPageCompletionSource = new TaskCompletionSource<int>();
this.loadingTaskCompletionSource = new TaskCompletionSource<int>();
}
/// <summary>
/// Initializes a new instance of the <see cref="BackgroundLoadingObservableCollection{T}"/> class.
/// </summary>
public BackgroundLoadingObservableCollection(BaseIncrementalLoadingDataSource<T> dataSource)
: this()
{
// Do not pass DataSource to base constructor to make sure that loadingTaskCompletionSource is initialized!
this.DataSource = dataSource;
}
/// <summary>
/// Gets the first page task.
/// </summary>
[PublicAPI]
public Task<int> FirstPageTask
{
[DebuggerStepThrough]
get { return this.firstPageCompletionSource.Task; }
}
/// <summary>
/// Gets the loading task.
/// </summary>
[PublicAPI]
public Task<int> LoadingTask
{
[DebuggerStepThrough]
get { return this.loadingTaskCompletionSource.Task; }
}
/// <summary>
/// Waits for loading completed.
/// </summary>
[PublicAPI]
public async Task<int> WaitForLoadingCompleted()
{
return await this.loadingTaskCompletionSource.Task.ConfigureAwait(false);
}
#region Overrides of BaseDataSourceObservableCollection<T>
/// <summary>
/// Called when the data source was updated.
/// </summary>
protected override void UpdateDataSource()
{
base.UpdateDataSource();
Task.Run(async delegate
{
int count = 0;
bool isFirstPage = true;
try
{
while (this.DataSource.HasMoreItems)
{
count = count + await this.DataSource.DoLoadMoreItemsAsync(this.Items).ConfigureAwait(false);
if ((count > 0) && isFirstPage)
{
isFirstPage = false;
await this.NotifyChangedAsync(this.DataSource).ConfigureAwait(f);
this.firstPageCompletionSource.TrySetResult(count);
}
await Task.Delay(1);
}
this.loadingTaskCompletionSource.TrySetResult(count);
}
catch (Exception ex)
{
if (!ex.IsOperationCanceledException())
{
logger.WarnException(ex.Message, ex);
this.loadingTaskCompletionSource.TrySetException(ex);
if (isFirstPage)
{
this.NotifyChanged(this.DataSource);
this.firstPageCompletionSource.TrySetException(ex);
}
}
else
{
this.loadingTaskCompletionSource.TrySetResult(count);
if (isFirstPage)
{
this.NotifyChanged(this.DataSource);
this.firstPageCompletionSource.TrySetResult(count);
}
}
}
});
}
#endregion
}
}' not found to remove
Parameter name: syntaxTree
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetSemanticModel(SyntaxTree syntaxTree, Boolean ignoreAccessibility)
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CommonGetSemanticModel(SyntaxTree syntaxTree, Boolean ignoreAccessibility)
at Microsoft.CodeAnalysis.SymbolId.GetInteriorSymbols(ISymbol containingSymbol, List`1 symbols)
at Microsoft.CodeAnalysis.SymbolId.GetInteriorSymbolOccurrence(ISymbol symbol)
at Microsoft.CodeAnalysis.SymbolId.Generator.VisitLocal(ILocalSymbol symbol)
at Microsoft.CodeAnalysis.SymbolId.Generator.Visit(ISymbol symbol)
at Microsoft.CodeAnalysis.SymbolId.CreateId(ISymbol symbol)
at Microsoft.CodeAnalysis.Completion.Providers.SymbolCompletionItem.EncodeSymbols(IReadOnlyList`1 symbols)
at Microsoft.CodeAnalysis.Completion.Providers.SymbolCompletionItem.Create(String displayText, TextSpan span, IReadOnlyList`1 symbols, Int32 contextPosition, Int32 descriptionPosition, String sortText, String insertionText, Nullable`1 glyph, String filterText, Boolean preselect, SupportedPlatformData supportedPlatforms, Boolean isArgumentName, ImmutableDictionary`2 properties, ImmutableArray`1 tags, CompletionItemRules rules)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.CreateItem(String displayText, String insertionText, Int32 position, List`1 symbols, AbstractSyntaxContext context, TextSpan span, Boolean preselect, SupportedPlatformData supportedPlatformData)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.CreateItem(String displayText, String insertionText, Int32 position, List`1 symbols, AbstractSyntaxContext context, TextSpan span, Dictionary`2 invalidProjectMap, List`1 totalProjects, Boolean preselect)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.<>c__DisplayClass6_0.<CreateItems>b__3(IGrouping`2 g)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.CreateItems(Int32 position, IEnumerable`1 symbols, TextSpan span, AbstractSyntaxContext context, Dictionary`2 invalidProjectMap, List`1 totalProjects, Boolean preselect)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.<GetItemsWorkerAsync>d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Completion.Providers.AbstractSymbolCompletionProvider.<ProvideCompletionsAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Completion.CompletionServiceWithProviders.<GetProviderCompletionsAsync>d__24.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at Microsoft.CodeAnalysis.Completion.CompletionServiceWithProviders.<GetCompletionsAsync>d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.Completion.Controller.Session.ModelComputer.<GetCompletionListAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.Completion.Controller.Session.ModelComputer.<DoInBackgroundAsync>d__13.MoveNext()<---
Stapel:
bei System.Environment.FailFast(System.String, System.Exception)
bei Microsoft.CodeAnalysis.FailFast.OnFatalException(System.Exception)
bei Microsoft.CodeAnalysis.ErrorReporting.FatalError.Report(System.Exception, System.Action`1<System.Exception>)
bei Microsoft.CodeAnalysis.ErrorReporting.FatalError.Report(System.Exception)
bei Roslyn.Utilities.TaskExtensions.ReportFatalErrorWorker(System.Threading.Tasks.Task, System.Object)
bei System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke()
bei System.Threading.Tasks.Task.Execute()
bei System.Threading.Tasks.Task.ExecutionContextCallback(System.Object)
bei System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
bei System.Threading.Tasks.Task.ExecuteEntry(Boolean)
bei System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task, Boolean)
bei System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)
bei System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(System.Threading.Tasks.Task, Boolean)
bei System.Threading.Tasks.StandardTaskContinuation.Run(System.Threading.Tasks.Task, Boolean)
bei System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)
bei System.Threading.Tasks.Task.ContinueWith(System.Action`2<System.Threading.Tasks.Task,System.Object>, System.Object, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions, System.Threading.StackCrawlMark ByRef)
bei System.Threading.Tasks.Task.ContinueWith(System.Action`2<System.Threading.Tasks.Task,System.Object>, System.Object, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions, System.Threading.Tasks.TaskScheduler)
bei Roslyn.Utilities.TaskExtensions.ReportFatalError(System.Threading.Tasks.Task, System.Object)
bei System.Threading.Tasks.ContinuationTaskFromResultTask`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].InnerInvoke()
bei System.Threading.Tasks.Task.Execute()
bei System.Threading.Tasks.Task.ExecutionContextCallback(System.Object)
bei System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
bei System.Threading.Tasks.Task.ExecuteEntry(Boolean)
bei System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task, Boolean)
bei System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)
bei System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(System.Threading.Tasks.Task, Boolean)
bei System.Threading.Tasks.StandardTaskContinuation.Run(System.Threading.Tasks.Task, Boolean)
bei System.Threading.Tasks.Task.FinishContinuations()
bei System.Threading.Tasks.Task.FinishStageThree()
bei System.Threading.Tasks.Task.FinishStageTwo()
bei System.Threading.Tasks.Task.Finish(Boolean)
bei System.Threading.Tasks.Task`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetException(System.Object)
bei System.Threading.Tasks.UnwrapPromise`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].TrySetFromTask(System.Threading.Tasks.Task, Boolean)
bei System.Threading.Tasks.UnwrapPromise`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ProcessInnerTask(System.Threading.Tasks.Task)
bei System.Threading.Tasks.UnwrapPromise`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ProcessCompletedOuterTask(System.Threading.Tasks.Task)
bei System.Threading.Tasks.UnwrapPromise`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Invoke(System.Threading.Tasks.Task)
bei System.Threading.Tasks.Task.FinishContinuations()
bei System.Threading.Tasks.Task.FinishStageThree()
bei System.Threading.Tasks.Task.FinishStageTwo()
bei System.Threading.Tasks.Task.Finish(Boolean)
bei System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
bei System.Threading.Tasks.Task.ExecuteEntry(Boolean)
bei System.Threading.Tasks.TaskScheduler.TryExecuteTask(System.Threading.Tasks.Task)
bei Microsoft.CodeAnalysis.Editor.Implementation.IntelliSense.Completion.PrioritizedTaskScheduler.ThreadStart()
bei System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
bei System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
bei System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
bei System.Threading.ThreadHelper.ThreadStart()
The text was updated successfully, but these errors were encountered:
Version Used:
Steps to Reproduce:
Several crashes of Visual Studio 2015 Update 2 when editing file.
Expected Behavior:
Visual Studio 2015 should not crash
Actual Behavior:
The text was updated successfully, but these errors were encountered: