خطا در واکشی فرزندان برای مسیر

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

نشانه

استقرار نسخه‌های بازبینی کارگزار نیابتی میانای برنامه‌سازی کاربردی ازطریق Edge UI یا Edge management API با خطای ZooKeeper «Error while fetching children for path» (خطا درحین واکشی فرزندان برای مسیر) ناموفق است.

پیام های خطا

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 = []};

علل احتمالی

دلیل معمول این خطا مشکل اتصال‌پذیری شبکه بین «پردازشگر پیام» و ZooKeeper است.

تشخیص

توجه: فقط کاربران «ابر خصوصی Edge» می‌توانند مراحل زیر را انجام دهند. اگر در Edge Public Cloud هستید، با پشتیبانی Apigee Edge تماس بگیرید.

  1. بااستفاده از فراخوانی مدیریت API زیر، برونداد وضعیت استقرار را برای میانای برنامه‌سازی کاربردی خاصی که خطا را نشان می‌دهد دریافت کنید:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>

    نمونه برونداد وضعیت استقرار که خطا را نشان می‌دهد:

    { 
    "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. «پردازشگر پیام» (/opt/apigee/var/log/edge-message-processor/system.log) را بررسی کنید.

    خطای نمونه از گزارش «پردازشگر پیام»

    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. اگر خطایی مشابه آنچه در مثال بالا نشان داده شده است مشاهده کردید، مراحل زیر را انجام دهید: مراحل:
    1. اتصال‌پذیری از «پردازشگر پیام» به سرورهای ZooKeeper در درگاه ۲۱۸۱ را بااستفاده از مراحل زیر آزمایش کنید:
      1. اگر telnet دردسترس است، از telnet استفاده کنید:
        telnet <ZooKeeper-IP> 2181
      2. اگر telnet دردسترس نیست، از netcat برای بررسی اتصال‌پذیری به این روش استفاده کنید:
        nc -vz <ZooKeeper-IP> 2181
      3. اگر پاسخ «اتصال رد شد» یا «اتصال زمان‌بندی‌شده قطع شد» دریافت کردید، با تیم عملیات شبکه خودتان تماس بگیرید. به بخش وضوح در زیر بروید.
  4. اگر مورد دیگری مشاهده کردید، با پشتیبانی Apigee Edge تماس بگیرید.

وضوح

توجه: فقط کاربران «ابر خصوصی Edge» می‌توانند مراحل زیر را انجام دهند. اگر در Edge Public Cloud هستید، با پشتیبانی Apigee Edge تماس بگیرید.

  1. با تیم شبکه خودتان برای انجام این کارها همکاری کنید:
      1. مطمئن شوید اتصال‌پذیری بین «پردازشگر پیام» و همه گره‌های ZooKeeper در درگاه ۲۱۸۱ مجاز باشد.
      2. محدودیت‌های دیوار آتش یا قوانین امنیتی را که از «پردازشگرهای پیام» تنظیم شده است بردارید تا امکان اتصال به درگاه ۲۱۸۱ در سرورهای ZooKeeper فراهم شود.
    1. اگر «پردازشگر پیام» مشکل شبکه داشته باشد، بازراه‌اندازی «پردازشگر پیام» خاصی که خطا را نشان می‌دهد (طبق برونداد وضعیت استقرار) ممکن است مشکل را برطرف کند. «پردازنده پیام» خاص را بازراه‌اندازی کنید:
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

    اگر مشکل برطرف نشد، با پشتیبانی Apigee Edge تماس بگیرید.