Se produjo un error al recuperar los elementos secundarios de la ruta de acceso

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Síntoma

La implementación de revisiones del proxy de API mediante la IU o la API de administración de Edge falla con el Error de ZooKeeper "Error al obtener elementos secundarios para la ruta de acceso".

Mensajes de error

Error in deployment for environment prod. 
The revision is deployed, but traffic cannot flow. com.apigee.repository.RepositoryException{ code = repository.zookeeper.UnExpectedError, message = Unexpected error Error while fetching children for path : /organizations/myorg/environments/prod/apiproxies/tinkerbell/revisions, associated contexts = []};

Causas posibles

La causa típica de este error es un problema de conectividad de red entre Message Processor. y ZooKeeper.

Diagnóstico

Nota: Solo los usuarios de la nube privada perimetral pueden realizar los siguientes pasos. Si están en la nube pública de Edge, comunícate con el equipo de asistencia de Apigee Edge.

  1. Obtén el resultado del estado de implementación de la API específica que muestra el error mediante siguiente llamada a la API de Management:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
    

    Ejemplo de resultado del estado de implementación que muestra el error:

    { 
    "environment" : [ { 
    "name" : "prod", 
    "revision" : [ { 
    "configuration" : { 
    "basePath" : "/", 
    "steps" : [ ] 
    }, 
    "name" : "1", 
    "server" : [ { 
    "error" : "com.apigee.repository.RepositoryException: com.apigee.zookeeper.ZooKeeperException{ code = zookeeper.ErrorFetchingChildren, message = Error while fetching children for path : /organizations/gsc/environments/prod/apiproxies/apigee_test/revisions, associated contexts = []}", 
    "status" : "error", 
    "type" : [ "message-processor" ], 
    "uUID" : "01fc5b23-8ad3-40bf-b059-2fc82cdac111" 
    },
    
  2. Revisa el Message Processor (/opt/apigee/var/log/edge-message-processor/system.log).

    Error de muestra del registro de Message Processor

    2017-05-29 01:25:40,592  main ERROR KERNEL - MicroKernel.deployAll() : MicroKernel.deployAll() : Error in deploying the deployment : WebService
    com.apigee.zookeeper.ZooKeeperException: Error while checking path existence for path : /regions/dc-2/pods/gateway/servers/099c2603-93a4-4b73-ae03-a55d130adb80/reachable
            at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:410) ~[zookeeper-1.0.0.jar:na]
            at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:394) ~[zookeeper-1.0.0.jar:na]
            at com.apigee.services.repository.zookeeper.ZKRepository.exists(ZKRepository.java:280) ~[repository-impl-1.0.0.jar:na]
            at com.apigee.services.repository.RepositoryServiceImpl.exists(RepositoryServiceImpl.java:234) ~[repository-impl-1.0.0.jar:na]
            at com.apigee.registration.info.StatusBuilder.build(StatusBuilder.java:26) ~[registration-1.0.0.jar:na]
            at com.apigee.registration.ServerRegistrationServiceImpl.buildServerInfo(ServerRegistrationServiceImpl.java:856) ~[registration-1.0.0.jar:na]
            at com.apigee.registration.ServerRegistrationServiceImpl.start(ServerRegistrationServiceImpl.java:122) ~[registration-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.startService(ServiceDeployer.java:167) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:70) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.deployDependantServices(ServiceDeployer.java:356) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:76) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.deployDependantServices(ServiceDeployer.java:356) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:76) ~[microkernel-1.0.0.jar:na]
            at com.apigee.kernel.MicroKernel.deployAll(MicroKernel.java:178) [microkernel-1.0.0.jar:na]
            at com.apigee.kernel.MicroKernel.start(MicroKernel.java:139) [microkernel-1.0.0.jar:na]
            at com.apigee.kernel.MicroKernel.start(MicroKernel.java:135) [microkernel-1.0.0.jar:na]
            at com.apigee.kernel.MicroKernel.main(MicroKernel.java:84) [microkernel-1.0.0.jar:na]
    Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /regions/dc-2/pods/gateway/servers/099c2603-93a4-4b73-ae03-a55d130adb80/reachable
            at org.apache.zookeeper.KeeperException.create(KeeperException.java:99) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
            at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
            at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1045) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
            at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1073) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
            at com.apigee.zookeeper.impl.ZooKeeperServiceImpl.exists(ZooKeeperServiceImpl.java:402) ~[zookeeper-1.0.0.jar:na]
            ... 16 common frames omitted
    
  3. Si observas un error similar al que se muestra en el ejemplo anterior, realiza lo siguiente: pasos:
    1. Probar la conectividad del procesador de mensajes a los servidores de ZooKeeper en el puerto 2181 siguiendo estos pasos:
      1. Si Telnet está disponible, utilízalo:
        telnet <ZooKeeper-IP> 2181
        
      2. Si Telnet no está disponible, úsalo para verificar la conectividad de la siguiente manera:
        nc -vz <ZooKeeper-IP> 2181
        
      3. Si obtienes la respuesta “Connection ReArtículo”, haz lo siguiente: o “Se agotó el tiempo de espera de la conexión”, interactúa con tu de operaciones de red. Ve a la sección Resolución a continuación.
  4. Si observas alguna otra, comunícate con el equipo de asistencia de Apigee Edge.

Solución

Nota: Solo los usuarios de la nube privada perimetral pueden realizar los siguientes pasos. Si están en la nube pública de Edge, comunícate con el equipo de asistencia de Apigee Edge.

  1. Trabaja con tu equipo de red para hacer lo siguiente:
      1. Asegúrate de que se permita la conectividad entre el Message Processor y todos los ZooKeeper nodos en el puerto 2181.
      2. Quita las restricciones de firewall o las reglas de seguridad configuradas de Message Processors para permitir la conectividad con el puerto 2181 en los servidores de ZooKeeper.
    1. Si hay un problema de red en el Message Processor, reinicia el procesador El procesador de mensajes que muestra el error (según el resultado del estado de implementación) podría corregir el error. problema. Reinicia el procesador de mensajes específico:
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      

    Si el problema persiste, comunícate con el equipo de asistencia de Apigee Edge.