Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
Síntoma
La implementación de las revisiones del proxy de API a través de la IU de Edge o la API de administración de Edge falla con el error de ZooKeeper "Error while fetching children for path".
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 el Message Processor y ZooKeeper.
Diagnóstico
Nota: Solo los usuarios de Edge para la nube privada pueden realizar los siguientes pasos. Si usas Edge para la nube pública, comunícate con el equipo de asistencia de Apigee Edge.
- Obtén el resultado del estado de implementación de la API específica que muestra el error con la
siguiente llamada a la API de administración:
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" },
- Verifica el Message Processor
(
/opt/apigee/var/log/edge-message-processor/system.log).Ejemplo de error 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
- Si observas un error similar al que se muestra en el ejemplo anterior, realiza los siguientes
pasos:
- Prueba la conectividad del Message Processor a los servidores de ZooKeeper en el puerto 2181
con los siguientes pasos:
- Si telnet está disponible, úsalo:
telnet <ZooKeeper-IP> 2181
- Si telnet no está disponible, usa netcat para verificar la conectividad de la siguiente manera:
nc -vz <ZooKeeper-IP> 2181
- Si recibes la respuesta "Connection Refused" o "Connection timed out", comunícate con tu equipo de operaciones de red. Ve a la sección Solución que se encuentra más abajo.
- Si telnet está disponible, úsalo:
- Prueba la conectividad del Message Processor a los servidores de ZooKeeper en el puerto 2181
con los siguientes pasos:
- Si observas algún otro error, comunícate con el equipo de asistencia de Apigee Edge.
Solución
Nota: Solo los usuarios de Edge para la nube privada pueden realizar los siguientes pasos. Si usas Edge para la nube pública, comunícate con el equipo de asistencia de Apigee Edge.
- Trabaja con tu equipo de red para hacer lo siguiente:
-
- Asegúrate de que se permita la conectividad entre el Message Processor y todos los nodos de ZooKeeper en el puerto 2181.
- Quita las restricciones de firewall o las reglas de seguridad configuradas de los Message Processors para permitir la conectividad al puerto 2181 en los servidores de ZooKeeper.
- Si hay un problema de red en el Message Processor, reiniciar el Message Processor específico
que muestra el error (según el resultado del estado de implementación) podría solucionar el
problema. Reinicia el Message Processor 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.
-