Regex timeouts when first editing or viewing a post · Issue #1711 · YAFNET/YAFNET · GitHub
Skip to content

Regex timeouts when first editing or viewing a post #1711

Description

@orawalters

Describe the bug
While the Regex errors were officially fixed in 4.0.6 you can still see them if you restart YAF.Net

To Reproduce
Steps to reproduce the behavior:

  1. Restart the YAFNET process
  2. Wait any amount of time, (I edited a post for the first time hours after restarting and still had the issue)
  3. Attempt to view a post or edit it and preview the BBCode formatting

Expected behavior
I expect no regex exceptions each and every time I load my posts

Log



   at System.Text.RegularExpressions.RegexRunner.g__ThrowRegexTimeout|25_0()
   at Regex1059_TryMatchAtCurrentPosition(RegexRunner, ReadOnlySpan`1)
   at Regex1059_Scan(RegexRunner, ReadOnlySpan`1)
   at System.Text.RegularExpressions.Regex.Match(String input)
   at YAF.Core.BBCode.ReplaceRules.VariableRegexReplaceRule.Replace(String& text, IReplaceBlocks replacement) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Core\BBCode\ReplaceRules\VariableRegexReplaceRule.cs:line 155
   at YAF.Core.BBCode.ProcessReplaceRules.Process(String& text) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Core\BBCode\ProcessReplaceRules.cs:line 145
   at YAF.Core.Services.FormatMessage.Format(String message, Int32 messageId, Boolean targetBlankOverride, DateTime messageLastEdited) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Core\Services\FormatMessage.cs:line 208
   at YAF.Core.Services.FormatMessage.FormatMessageWithAllBBCodesAsync(String message, Int32 messageId, Nullable`1 messageAuthorUserId, Nullable`1 targetBlankOverride, Nullable`1 messageLastEdited) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Core\Services\FormatMessage.cs:line 133
   at YAF.Web.TagHelpers.MessagePostTagHelper.RenderSimpleMessageAsync(TagHelperOutput output) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Web\TagHelpers\MesssagePostTagHelper.cs:line 440
   at YAF.Web.TagHelpers.MessagePostTagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Web\TagHelpers\MesssagePostTagHelper.cs:line 153
   at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, Int32 i, Int32 count)
   at YAF.Pages.Pages_EditMessage.b__59_3()
   at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.GetChildContentAsync(Boolean useCachedResult, HtmlEncoder encoder)
   at YAF.Web.TagHelpers.AlertTagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Web\TagHelpers\AlertTagHelper.cs:line 137
   at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, Int32 i, Int32 count)
   at YAF.Pages.Pages_EditMessage.b__59_1() in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YetAnotherForum.NET\Pages\EditMessage.cshtml:line 27
   at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.GetChildContentAsync(Boolean useCachedResult, HtmlEncoder encoder)
   at Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output)
   at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, Int32 i, Int32 count)
   at YAF.Pages.Pages_EditMessage.ExecuteAsync()
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
   at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
   at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.RateLimiting.RateLimitingMiddleware.InvokeInternal(HttpContext context, EnableRateLimitingAttribute enableRateLimitingAttribute)
   at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
   at YAF.Core.Middleware.CheckBannedCountries.InvokeAsync(HttpContext context) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Core\Middleware\CheckBannedCountries.cs:line 108
   at YAF.Core.Middleware.CheckBannedUserAgents.InvokeAsync(HttpContext context) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Core\Middleware\CheckBannedUserAgents.cs:line 104
   at YAF.Core.Middleware.CheckBannedIps.InvokeAsync(HttpContext context) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Core\Middleware\CheckBannedIps.cs:line 97
   at YAF.Core.Middleware.InitializeDb.InvokeAsync(HttpContext context) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Core\Middleware\InitializeDb.cs:line 129
   at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
   at YAF.Core.Middleware.AntiXssMiddleware.InvokeAsync(HttpContext context) in C:\Users\iherb\source\repos\YAF.Core\yafsrc\YAFNET.Core\Middleware\AntiXssMiddleware.cs:line 115
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)

System (please complete the following information):

  • YAF Version: 4.0.6
  • .NET Version 10
  • SQL Server Postgres 18

Metadata

Metadata

Assignees

Labels

BugIssues

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions