Azure выдает 409 на git push

#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. Спасибо, Исмаил, хорошее предложение. Любой, кто окажется здесь, должен попробовать это. Для меня эта проблема исчезла через пару дней.