Vous consultez la documentation Apigee Edge.
Accédez à la
documentation Apigee X. info
Problème constaté
Le déploiement des révisions de proxy d'API via l'UI Edge ou l'API de gestion Edge échoue avec l' erreur ZooKeeper "Error while fetching children for path".
Messages d'erreur
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 = []};Causes possibles :
Cette erreur est généralement due à un problème de connectivité réseau entre le processeur de messages et ZooKeeper.
Diagnostic
Remarque : Seuls les utilisateurs d'Edge Private Cloud peuvent effectuer les étapes suivantes. Si vous utilisez Edge Public Cloud, contactez l'assistance Apigee Edge.
- Obtenez le résultat de l'état de déploiement pour l'API spécifique qui affiche l'erreur à l'aide de l'
appel d'API de gestion suivant :
curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
Exemple de sortie de l'état de déploiement affichant l'erreur :
{ "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" },
- Vérifiez le processeur de messages
(
/opt/apigee/var/log/edge-message-processor/system.log).Exemple d'erreur provenant du journal du processeur de messages
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 vous constatez une erreur semblable à celle illustrée dans l'exemple ci-dessus, procédez comme suit :
étapes :
- Testez la connectivité du processeur de messages aux serveurs ZooKeeper sur le port 2181
en procédant comme suit :
- Si telnet est disponible, utilisez-le :
telnet <ZooKeeper-IP> 2181
- Si telnet n'est pas disponible, utilisez netcat pour vérifier la connectivité comme suit :
nc -vz <ZooKeeper-IP> 2181
- Si vous recevez la réponse "Connection Refused" (Connexion refusée) ou "Connection timed out" (Délai de connexion dépassé), contactez votre équipe d'opérations réseau. Accédez à la section Solution ci-dessous.
- Si telnet est disponible, utilisez-le :
- Testez la connectivité du processeur de messages aux serveurs ZooKeeper sur le port 2181
en procédant comme suit :
- Si vous constatez une autre erreur, contactez l'assistance Apigee Edge.
Solution
Remarque : Seuls les utilisateurs d'Edge Private Cloud peuvent effectuer les étapes suivantes. Si vous utilisez Edge Public Cloud, contactez l'assistance Apigee Edge.
- Collaborez avec votre équipe réseau pour :
-
- vous assurer que la connectivité est autorisée entre le processeur de messages et tous les nœuds ZooKeeper sur le port 2181 ;
- supprimer toutes les restrictions de pare-feu ou les règles de sécurité configurées à partir des processeurs de messages pour autoriser la connectivité au port 2181 sur les serveurs ZooKeeper.
- En cas de problème réseau sur le processeur de messages, le redémarrage du processeur de messages spécifique
qui affiche l'erreur (conformément au résultat de l'état de déploiement) peut résoudre le
problème. Redémarrez le processeur de messages spécifique :
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Si le problème persiste, contactez l'assistance Apigee Edge.
-