Skip to content

Versification crash when downloading USFM #830

@pmachapman

Description

@pmachapman

This occurs less frequently than before, but still occasionally happens. Likely a lock is needed around the affected lines.

This error is in bugsnag.

Stack Trace

      System.ArgumentException: An item with the same key has already been added. Key: SIL.Scripture.Versification+Table+VersificationKey
         at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
         at SIL.Scripture.Versification.Table.Load(TextReader stream, String fullPath, ScrVers baseVers, String name)
         at SIL.Machine.Corpora.ParatextProjectSettingsParserBase.Parse()
         at Serval.Shared.Services.ScriptureDataFileService.GetParatextProjectSettings(String filename) in /app/src/Serval/src/Serval.Shared/Services/ScriptureDataFileService.cs:line 12
         at Serval.Translation.Services.PretranslationService.GetUsfmAsync(String engineId, Int32 modelRevision, String corpusId, String textId, PretranslationUsfmTextOrigin textOrigin, PretranslationUsfmTemplate template, PretranslationUsfmMarkerBehavior paragraphMarkerBehavior, PretranslationUsfmMarkerBehavior embedBehavior, PretranslationUsfmMarkerBehavior styleMarkerBehavior, PretranslationNormalizationBehavior quoteNormalizationBehavior, CancellationToken cancellationToken) in /app/src/Serval/src/Serval.Translation/Services/PretranslationService.cs:line 115
         at Serval.Translation.Controllers.TranslationEnginesController.GetCorpusPretranslatedUsfmAsync(String id, String corpusId, String textId, Nullable`1 textOrigin, Nullable`1 template, Nullable`1 paragraphMarkerBehavior, Nullable`1 embedBehavior, Nullable`1 styleMarkerBehavior, Nullable`1 quoteNormalizationBehavior, CancellationToken cancellationToken) in /app/src/Serval/src/Serval.Translation/Controllers/TranslationEnginesController.cs:line 799
         at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
         at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
         at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
         at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
      --- End of stack trace from previous location ---
         at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
         at Bugsnag.AspNet.Core.Middleware.Invoke(HttpContext context, IClient client)
         at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Status

    🔖 Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions