#azure #deployment #web-applications #kudu
#azure #развертывание #веб-приложения #kudu
Вопрос:
Со вчерашнего утра я получаю случайные ошибки конфликта 409 при развертывании через Git.
$ git push azure master —force
ошибка: сбой RPC; HTTP 409 curl 22 Запрошенный URL-адрес возвращен ошибка: конфликт 409
Это происходит через некоторое время, и иногда это проходит, но завершается сбоем при следующем развертывании проекта. На стороне кода ничего не изменилось, и это происходит для всех моих веб-приложений внутри подписки.
Когда я подключаюсь к веб-приложению по SSH, я нахожу следующее сообщение об ошибке: операция «Получение статуса развертывания» конфликтует с последующей операцией «Получение статуса развертывания», запущенной в . Пожалуйста, повторите операцию позже. С отслеживанием стека в диспетчере развертывания Kudo (полная трассировка ниже).
Кто-нибудь когда-нибудь сталкивался с этой проблемой и имеет какие-либо идеи о том, как это исправить?
Я спрашиваю об этом здесь перед отправкой заявки на случай, если есть какое-либо известное исправление. Обращение в службу поддержки — это своего рода обход моей учетной записи.
Полная трассировка:
6-5af4afe2e8c0.txt~/LogFiles/kudu/trace# cat 437d8aa4270e-0fece829-6553-417d-8b96-5af4afe2e8c0.txt
2020-12-07T08:57:46 Error occurred, type: error, text: The 'Getting deployment status' operation conflicts with the pending 'Getting deployment stat
us' operation started at . Please retry operation later., stackTrace: at Kudu.Contracts.Infrastructure.LockExtensions.LockOperation[T](IOperationLock lockObj
, Func`1 operation, String operationName, TimeSpan timeout) in /tmp/KuduLite/Kudu.Contracts/Infrastructure/LockExtensions.cs:line 67
at Kudu.Core.Deployment.DeploymentStatusFile.Open(String id, IEnvironment environment, IAnalytics analytics, IOperationLock statusLock) in /tmp/KuduLite/Kudu.
Core/Deployment/DeploymentStatusFile.cs:line 64
at Kudu.Core.Deployment.DeploymentStatusManager.Open(String id) in /tmp/KuduLite/Kudu.Core/Deployment/DeploymentStatusManager.cs:line 41
at Kudu.Core.Deployment.DeploymentManager.GetOrCreateStatusFile(ChangeSet changeSet, ITracer tracer, String deployer) in /tmp/KuduLite/Kudu.Core/Deployment/De
ploymentManager.cs:line 538
at Kudu.Core.Deployment.DeploymentManager.DeployAsync(IRepository repository, ChangeSet changeSet, String deployer, Boolean clean, DeploymentInfoBase deployme
ntInfo, Boolean needFileUpdate, Boolean fullBuildByDefault) in /tmp/KuduLite/Kudu.Core/Deployment/DeploymentManager.cs:line 210
2020-12-07T08:58:17 Error occurred, type: error, text: One or more errors occurred. (The 'Getting deployment status' operation conflicts with the pend
ing 'Getting deployment status' operation started at . Please retry operation later.), stackTrace: at System.Threading.Tasks.Task.Wait(Int32 millisecondsTime
out, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait()
at Kudu.Console.Program.PerformDeploy(String appRoot, String wapTargets, String deployer, String lockPath, IEnvironment env, IDeploymentSettingsManager settin
gsManager, TraceLevel level, ITracer tracer, ITraceFactory traceFactory, IOperationLock deploymentLock) in /tmp/KuduLite/Kudu.Console/Program.cs:line 191, innerT
ext: The 'Getting deployment status' operation conflicts with the pending 'Getting deployment status' operation started at . Please retry operation later., inne
rStackTrace: at Kudu.Contracts.Infrastructure.LockExtensions.LockOperation[T](IOperationLock lockObj, Func`1 operation, String operationName, TimeSpan timeout
) in /tmp/KuduLite/Kudu.Contracts/Infrastructure/LockExtensions.cs:line 67
at Kudu.Core.Deployment.DeploymentStatusFile.Open(String id, IEnvironment environment, IAnalytics analytics, IOperationLock statusLock) in /tmp/KuduLite/Kudu.
Core/Deployment/DeploymentStatusFile.cs:line 64
at Kudu.Core.Deployment.DeploymentStatusManager.Open(String id) in /tmp/KuduLite/Kudu.Core/Deployment/DeploymentStatusManager.cs:line 41
at Kudu.Core.Deployment.DeploymentManager.DeployAsync(IRepository repository, ChangeSet changeSet, String deployer, Boolean clean, DeploymentInfoBase deployme
ntInfo, Boolean needFileUpdate, Boolean fullBuildByDefault) in /tmp/KuduLite/Kudu.Core/Deployment/DeploymentManager.cs:line 279
at Kudu.Console.Program.<>c__DisplayClass1_0.<<PerformDeploy>b__1>d.MoveNext() in /tmp/KuduLite/Kudu.Console/Program.cs:line 182
2020-12-07T08:58:47 Error occurred, type: error, text: StatusCode cannot be set because the response has already started., stackTrace: at Microsoft.AspNetC
ore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ThrowResponseAlreadyStartedException(String value)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.set_StatusCode(Int32 value)
at Kudu.Services.GitServer.ReceivePackHandlerMiddleware.Invoke(HttpContext context, ITracer tracer, IGitServer gitServer, IDictionary`2 namedLocks, IDeploymen
tManager deploymentManager, IRepositoryFactory repositoryFactory, IEnvironment environment) in /tmp/KuduLite/Kudu.Services/GitServer/ReceivePackHandlerMiddleware
.cs:line 114
at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Kudu.Services.Web.Tracing.TraceMiddleware.Invoke(HttpContext context) in /tmp/KuduLite/Kudu.Services.Web/Tracing/TraceMiddleware.cs:line 64
Обновление: это автоматически исправлено самостоятельно через пару дней
Ответ №1:
попробуйте увеличить / уменьшить свой ASP. это перезагрузит виртуальную машину и, возможно, очистит ожидающее развертывание.
Комментарии:
1. Спасибо, Исмаил, хорошее предложение. Любой, кто окажется здесь, должен попробовать это. Для меня эта проблема исчезла через пару дней.