El propósito de este documento es guiar en la detección de errores durante la ejecución de los pipelines, esto ayudará en la identificación del error y canalizarlo con el responsable. Este documento está dirigido a los LT, arquitectos, desarrolladores, operaciones y demás personal técnico que necesite identificar un error durante la ejecución de los pipelines de Devops.

CONTROL DE VERSIONES DEL DOCUMENTO

VERSIÓN FECHA DESCRIPCIÓN RESPONSABLE
1.0 13/07/2023 Versión inicial Alexis Huarac
2.0 13/07/2023 Versión actualización 2 Jose Cortez

PROPÓSITO

El propósito de este documento es guiar en la detección de errores durante la ejecución de los pipelines, esto ayudará en la identificación del error y canalizarlo con el responsable. Este documento está dirigido a los LT, arquitectos, desarrolladores, operaciones y demás personal técnico que necesite identificar un error durante la ejecución de los pipelines de Devops.

1. Frontend:

1.1 Escenario: Servicio inestable de Bitbucket

1.1.1 Responsable: Servicio externo Atlasian

1.1.2 Detalle: Este error es por latencia e inestabilidad en los servicios de Bitbucket

1.1.3 Error:

parse error: Invalid numeric literal at line 1, column 5
curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information

1.2 Escenario: Configuración errónea en el devops.properties para despliegue en blobStorage

1.2.1 Responsable: LT

1.2.2 Lineamiento: lineamiento pipeline frontend

1.2.3 Error:

z cdn endpoint purge -g RG-berserkers-dev -n scberserkerswebditodevendpointcdnendpointcdn --profile-name scberserkerswebditodevendpointcdnprofilecdn --no-wait --content-paths / /index.html

ERROR: (ResourceNotFound) The Resource 'Microsoft.Cdn/profiles/scberserkerswebditodevendpointcdnprofilecdn/endpoints/scberserkerswebditodevendpointcdnendpointcdn' under resource group 'RG-berserkers-dev' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix
Code: ResourceNotFound
Message: The Resource 'Microsoft.Cdn/profiles/scberserkerswebditodevendpointcdnprofilecdn/endpoints/scberserkerswebditodevendpointcdnendpointcdn' under resource group 'RG-berserkers-dev' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix

1.2.5 Error 2:

az cdn endpoint purge -g RG-berserkers-dev -n nullendpointcdn --profile-name nullprofilecdn --no-wait --content-paths / /index.html
ERROR: (ResourceNotFound) The Resource 'Microsoft.Cdn/profiles/nullprofilecdn/endpoints/nullendpointcdn' under resource group 'RG-berserkers-dev' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix
Code: ResourceNotFound

1.3 Escenario: Credencial de BlobStorage no registrada Correctamente

1.3.1 Responsable: Ingenieria u Operaciones

1.3.2 Detalle: Este error es por que no se configuró correctamente la cadena de conexión del blobstorage

1.3.3 Error:

az storage blob upload-batch --account-name ng-fesimple-webconvergente --connection-string **** -s ./dist -d $web –overwrite
ERROR: Invalid connection string: ****, err detail: Connection string missing required connection details.

1.4 Escenario: Problemas de compatibilidad entre sus depedencias

1.4.1 Responsable: LT

1.4.2 Detalle: Este error pasa cuando la mesa esta utilizando dependencias que no son compatibles con la version de node establecida o acordada, corrija este error por dependencias y vuelva a ejecutar el pipeline .

1.4.3 Error:

npm WARN notsup Not compatible with your version of node/npm: @stencil/core@2.22.3

npm ERR! Unexpected end of JSON input while parsing near '...7e9f.0.tgz",
npm ERR!         '

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2023-07-15T04_47_55_397Z-debug.log

1.5 Escenario: Error de código, no existe variable

1.5.1 Responsable: LT

1.5.2 Detalle: Este error pasa cuando la mesa intenta realizar un despliegue pero hay errores en el código.

1.5.3 Error:

ERROR in src/app/business/flows/home-page-flow/commons/components/home-page-step03/common/services/http/open-debt.service.ts:133:28 - error TS2339: Property 'serviceId' does not exist on type 'OpenDebtService'.

133         'UNICA-ServiceId': this.serviceId,
                                    ~~~~~~~~~

2. Backend:

2.1 Escenario: Latencia con AZURE ACR en el stage Package

2.1.1 Responsable: Servicio externo Azure

2.1.2 Detalle: Este error es por latencia en el servicio del componente de azure acr, se debe de esperar unos minutos y volver a desplegar

2.1.3 Error 1:

Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
2023/06/21 03:28:20 Container failed during run: build. No retries remaining.
failed to run step ID: build: exit status 1

2.1.4 Error 2:

wget: bad address 'aka.ms'
The command '/bin/sh -c wget -nv -O jdk.tar.gz https://aka.ms/download-jdk/microsoft-jdk-11-alpine-x64.tar.gz &&     mkdir $JAVA_HOME &&     tar xf jdk.tar.gz -C $JAVA_HOME --strip-components 1 --no-same-owner' returned a non-zero code: 1
2023/06/14 03:48:03 Container failed during run: build. No retries remaining.
failed to run step ID: build: exit status 1

2.2 Escenario: La mesa intenta pasar a prod una versión no existente en certificación

2.2.1 Responsable: LT

2.2.2 Detalle: Este error es porque la mesa no hizo el despliegue de esa versión del artefacto en certificación, se debe hacer el despliegue en certificación y luego desplegar a producción.

2.2.3 Error:

05:50:21 [ABORT] MavenPromote:63 process(): No se encontró el artefacto pushnotificationadmin-0.2.50.jar en el repositorio convergente-mvn-cert-local
[Pipeline] }
Found 0 artifacts.

2.3 Escenario: La mesa intenta ejecutar un pipeline de otra mesa o que no existe

2.3.1 Responsable: LT

2.3.2 Detalle: Este error es porque la mesa colocó el nombre de un pipeline de otra mesa o que no existe, debe de asegurarse de colocar el pipeline de su mesa y que éste exista

2.3.3 Error:

Also:   org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 0afe78e3-0dd7-4abf-ab30-c32ae1897e4c
java.lang.Exception: Pipeline not found
    at com.genesis.services.JenkinsService.getPipeline(JenkinsService.groovy:141)
    at com.genesis.steps.tools.MigrationJdk8Jdk11.run(MigrationJdk8Jdk11.groovy:43)
    at com.genesis.process.FlowAbstract.runStep(FlowAbstract.groovy:197)
    at ___cps.transform___(Native Method)
    at java.base/jdk.internal.reflect.GeneratedConstructorAccessor22797.newInstance(Unknown Source)

2.4 Escenario: Despliegue con el cluster de Kubernetes apagado

2.4.1 Responsable: LT

2.4.2 Detalle: Este error es porque la mesa intenta ejecutar un pase en este caso a prod con el cluster de kubernetes apagado, para que el pase sea exitoso el cluster debe estar encendido.

2.4.3 Error:

TASK [values : install release helm] *******************************************
fatal: [localhost]: FAILED! => {"changed": true, "cmd": "helm install -n disney ms-disney-config-server ../java-micro-service\n", "delta": "0:00:00.157550", "end": "2023-06-01 22:15:12.480570", "msg": "non-zero return code", "rc": 1, "start": "2023-06-01 22:15:12.323020", "stderr": "Error: INSTALLATION FAILED: Kubernetes cluster unreachable: Get \"https://aks-disney-rg-disney-prod-c6a127-afc287ja.hcp.eastus2.azmk8s.io:443/version\": dial tcp: lookup aks-disney-rg-disney-prod-c6a127-afc287ja.hcp.eastus2.azmk8s.io on 10.100.0.10:53: no such host", "stderr_lines": ["Error: INSTALLATION FAILED: Kubernetes cluster unreachable: Get \"https://aks-disney-rg-disney-prod-c6a127-afc287ja.hcp.eastus2.azmk8s.io:443/version\": dial tcp: lookup aks-disney-rg-disney-prod-c6a127-afc287ja.hcp.eastus2.azmk8s.io on 10.100.0.10:53: no such host"], "stdout": "", "stdout_lines": []}

2.5 Escenario: Intermitencia con el function

2.5.1 Responsable: LT

2.5.2 Detalle: Este error es porque la mesa intenta desplegar un pipeline function y el function esta itermitente.

2.5.3 Error 1:

Cannot contact genesisDeployLTS-000tnfw8y1cy5: hudson.remoting.ChannelClosedException: Channel "hudson.remoting.Channel@35f46a54:genesisDeployLTS-000tnfw8y1cy5": Remote call on genesisDeployLTS-000tnfw8y1cy5 failed. The channel is closing down or has closed down
Agent genesisDeployLTS-000tnfw8y1cy5 was deleted; cancelling node body
Could not connect to genesisDeployLTS-000tnfw8y1cy5 to send interrupt signal to process

2.5.4 Error 2:

Agent was removed
Also:   hudson.model.Computer$TerminationRequest: Termination requested at Fri Jan 13 02:53:43 PET 2023 by Thread[DockerContainerWatchdog Asynchronous Periodic Work thread,5,main] [id=506527]
        at hudson.model.Computer.recordTermination(Computer.java:227)
        at hudson.model.Computer.disconnect(Computer.java:491)
        at hudson.slaves.SlaveComputer.disconnect(SlaveComputer.java:757)
        at jenkins.model.Nodes$6.run(Nodes.java:268)
        at hudson.model.Queue._withLock(Queue.java:1398)
        at hudson.model.Queue.withLock(Queue.java:1275)
        at jenkins.model.Nodes.removeNode(Nodes.java:262)
        at jenkins.model.Jenkins.removeNode(Jenkins.java:2165)
        at com.nirima.jenkins.plugins.docker.DockerContainerWatchdog.removeNode(DockerContainerWatchdog.java:98)
        at com.nirima.jenkins.plugins.docker.DockerContainerWatchdog.cleanUpSuperfluousComputer(DockerContainerWatchdog.java:501)
        at com.nirima.jenkins.plugins.docker.DockerContainerWatchdog.execute(DockerContainerWatchdog.java:154)
        at hudson.model.AsyncPeriodicWork.lambda$doRun$0(AsyncPeriodicWork.java:100)
java.io.IOException: Unable to create live FilePath for genesisDeployLTS-000tnfw8y1cy5
    at org.jenkinsci.plugins.workflow.support.steps.FilePathDynamicContext.get(FilePathDynamicContext.java:64)
    at org.jenkinsci.plugins.workflow.support.steps.FilePathDynamicContext.get(FilePathDynamicContext.java:47)
    at org.jenkinsci.plugins.workflow.steps.DynamicContext$Typed.get(DynamicContext.java:94)
    at org.jenkinsci.plugins.workflow.cps.ContextVariableSet.get(ContextVariableSet.java:139)
    at org.jenkinsci.plugins.workflow.cps.CpsThread.getContextVariable(CpsThread.java:135)
    at org.jenkinsci.plugins.workflow.cps.CpsStepContext.doGet(CpsStepContext.java:297)
    at org.jenkinsci.plugins.workflow.cps.CpsBodySubContext.doGet(CpsBodySubContext.java:88)
    at org.jenkinsci.plugins.workflow.support.DefaultStepContext.get(DefaultStepContext.java:75)
    at org.jenkinsci.plugins.credentialsbinding.impl.BindingStep$Callback.finished(BindingStep.java:258)
    at org.jenkinsci.plugins.credentialsbinding.impl.BindingStep$Execution2$Callback2.finished(BindingStep.java:163)
    at org.jenkinsci.plugins.workflow.steps.GeneralNonBlockingStepExecution$TailCall.lambda$onFailure$1(GeneralNonBlockingStepExecution.java:156)
    at org.jenkinsci.plugins.workflow.steps.GeneralNonBlockingStepExecution.lambda$run$0(GeneralNonBlockingStepExecution.java:77)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

2.6 Escenario: EL archivo del proyecto no esta bien configurado

2.6.1 Responsable: LT

2.6.2 Detalle: Para el despliegue a calidad o producción el archivo pom de su proyecto debe estar configurado segun los lineamientos establecidos, en este caso el versionado debe debe terner el formato X.X.X ejemplo 1.0.0

2.6.3 Error:

ERROR: En el ambiente PROD la versión de su proyecto (1.1.0-SNAPSHOT) debe tener el formato: X.X.X
Finished: FAILURE

2.7 Escenario: No se tiene la rama master o main creada en el repositorio

2.7.1 Responsable: LT

2.7.2 Detalle: El despliegue falló porque no existía la rama master o main en el repositorio del proyecto, para soluconarlo se debe crear la rama y volver a desplegar.

2.7.3 Error:

01:40:44  ABORT  deliveryPipeline:53 call(): No se pudo obtener la rama por defecto del repositorio fn-mimovistar-pagoprogramado, vuelva a intentarlo.
[Pipeline] }

[Pipeline] // ansiColor
[Pipeline] End of Pipeline
ERROR: No se pudo obtener la rama por defecto del repositorio fn-mimovistar-pagoprogramado, vuelva a intentarlo.
Finished: ABORTED

2.8 Escenario: Conflicto con su versión de csproj del proyecto function con netcore

2.8.1 Responsable: LT

2.8.2 Detalle: Este error pasó por un conflicto de version del proyecto function con netcore, pero ya solucionó por lo que ya se despliega con normalidad.

2.8.3 Error:

org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1239)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
    at groovy.util.XmlParser.parse(XmlParser.java:250)
    at groovy.util.XmlParser.parseText(XmlParser.java:283)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)

2.9 Escenario: EL repositorio no tiene las plantillas base de cfg

2.9.1 Responsable: LT

2.9.2 Detalle: Este error es debidó a que la mesa no agregó la plantilla base cfg en el repositorio del proyecto, se debe agregar, configurar debidamente y volver a desplegar

2.9.3 Error 1:

05:26:11 [WARN] FlowAbstract:303 loadProperties(): No se encontro el archivo de configuracion

2.9.4 Error 2:

Also:   org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 3b2852c0-00a3-4851-8907-3dcd45262151
java.lang.NullPointerException: Cannot invoke method contains() on null object
    at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:47)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:34)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
    at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
    at com.genesis.process.FlowAbstract.hasStage(FlowAbstract.groovy:79)
    at backendLibPipeline_docker.call(backendLibPipeline_docker.groovy:51)
    at 

2.10 Escenario: Intermitencia con el acr

2.10.1 Responsable: LT

2.10.2 Detalle: Este error es debidó a una itermitencia con el acr, vuelva a ejecutar el pipeline por segunda vez.

2.10.3 Error:

java.lang.Exception: Error occurred while downloading securityb2c-mvn-prod-local/com/tdp/ms/azadbtocmail/0.1.45/azadbtocmail-0.1.45.jar, please refer to logs for more information

2.11 Escenario: Despliegue de un microservicio con newrelick, pero sin tener new relick configurado

2.11.1 Responsable: LT

2.11.2 Detalle: Este error pasa cuando la mesa intenta realizar un despliegue con newrelik, pero este no esta debidamente configurado en la plantilla cfg.

2.11.3 Error:

Also:   org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 1192477a-2df1-4184-a9c7-26850b0ea15c
java.lang.Exception: El config server ms-securityb2c-config-server no tiene la variable de entorno NEW_RELIC_LICENSE_KEY, debe volver a desplegar el config server con la configuracion de la variable de entorno NEW_RELIC_LICENSE_KEY

2.12 Escenario: Timeout al ejecutar el pipeline de actualización de secretos

2.12.1 Responsable: LT

2.12.2 Detalle: Este error pasa cuando se intenta actualizar los secretos y hay una latencia superior a lo permitido. En este caso vuelva a ejecutar el pipeline

2.12.3 Error:

Descargar archivo de secretos: https://devopstdp.eastus2.cloudapp.azure.com/job/simcard_prod/job/Tools/job/kv-secrets-update/1/artifact/master/secretos.properties
[Pipeline] timeout
Timeout set to expire in 10 min
[Pipeline] {
[Pipeline] input
Input requested
Cancelling nested steps due to timeout

2.13 Escenario: No crearon correctamente el pipeline

2.13.1 Responsable: LT

2.13.2 Detalle: Este error pasa cuando la mesa no crea correctamente el pipeline (quita o agrega parametros), para solucionar esto debe de configurar su pipeline correctamente (revisar pipelines similares).

2.13.3 Error:

Cloning the remote Git repository
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Command "git fetch --tags --force --progress -- https://bitbucket.org/telefonica-peru/ms-cn-visor-omnicanal-trouble-ticketing.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: fatal: not a git repository (or any parent up to mount point /home)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

3. APIS:

3.1 Escenario: Tag existente en despliegue de apis

3.1.1 Responsable: LT de la mesa

3.1.2 Detalle: Este error hace referencia a que se está volviendo a desplegar una api con la misma versión con la cual ya fué ejecutada en producción, se tiene que subir la versión de la api desde el ambiente de desarrollo para mantener los ambiente homologados

3.1.3 Error :

git tag 1.0.0
        fatal: tag '1.0.0' already exists

3.2 Escenario: Conflicto al realizar merge automático

3.2.1 Responsable: LT de la mesa

3.2.2 Detalle: Este error es por que la rama con la cual se desarrolló el entregable no está alineada con la rama principal, actualizar su rama de desarrollo alineado a su rama principal

3.2.3 Error :

git merge --no-ff -m Merge branch 'release/1.0.0-rc.2+b4ac004' into 'main' for release 'RC-1.0.0-CERT-20230706000947' origin/release/1.0.0-rc.2+b4ac004
    CONFLICT (modify/delete): readme.md deleted in origin/release/1.0.0-rc.2+b4ac004 and modified in HEAD. Version HEAD of readme.md left in tree.
    Automatic merge failed; fix conflicts and then commit the result.