Abnormal behaviour of Message Process and Router if no proxy is deployed to VHOST

Hi apigeeks, I am seeing an abnormal behavior of apigee message processor and router. If I don't have any proxy deployed on a VHOST then I am getting an exception constantly logged in edge-message-processor logs as per below where it says "Unable to identify proxy for host <router-ip>:<vhost-port>"

2017-07-02 19:07:08,274  NIOThread@1 ERROR ADAPTORS.HTTP.FLOW - AbstractRequestListener.onException() : Request: GET, uri: /, message Id:null, exception:com.apigee.rest.framework.ResourceNotFoundException{ code = messaging.adaptors.http.flow.ApplicationNotFound, message = Unable to identify proxy for host: <router-ip>:9004 and url: /, associated contexts = []} context:ClientInputChannel(ClientChannel[A:<mp-ip>:8998 Remote host:<router-ip>:59874]@610 useCount=1 bytesRead=0 bytesWritten=0 age=0ms  lastIO=0ms ))
2017-07-02 19:07:08,274  NIOThread@1 ERROR ADAPTORS.HTTP.FLOW - AbstractRequestListener.onException() : Exception caught
com.apigee.rest.framework.ResourceNotFoundException: Unable to identify proxy for host: <router-ip>:9004 and url: /
        at com.apigee.messaging.adaptors.http.configuration.MessageProcessorHttpSkeletonFactory$MessageProcessorRequestListener.init(MessageProcessorHttpSkeletonFactory.java:282) [http-adaptor-1.0.0.jar:na]
        at com.apigee.messaging.adaptors.http.configuration.MessageProcessorHttpSkeletonFactory$MessageProcessorRequestListener.onHeaders(MessageProcessorHttpSkeletonFactory.java:481) [http-adaptor-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer$Context$1.onHeaders(HTTPServer.java:601) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.io.MessageReader.onRead(MessageReader.java:119) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer$Context.startReading(HTTPServer.java:670) [http-1.0.0.jar:na]
        at com.apigee.messaging.adaptors.http.configuration.MessageProcessorHttpSkeletonFactory$MessageProcessorRequestListener.onStart(MessageProcessorHttpSkeletonFactory.java:202) [http-adaptor-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer$Context$1.setBufferUnprocessed(HTTPServer.java:499) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.io.MessageReader.onRead(MessageReader.java:83) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.io.MessageReader.start(MessageReader.java:67) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer$Context.startSafeReading(HTTPServer.java:661) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer$Context.run(HTTPServer.java:387) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer.onAccept(HTTPServer.java:233) [http-1.0.0.jar:na]
        at com.apigee.nio.handlers.NIOThread.run(NIOThread.java:69) [nio-1.0.0.jar:na]

When I deploy the proxy the exception changes and instead of the router-ip and port now it gives me the VHOST name instead. Although the traffic is working good and we are able to see the proxy is responding properly.

2017-07-02 19:05:48,213  NIOThread@3 ERROR ADAPTORS.HTTP.FLOW - AbstractRequestListener.onException() : Request: GET, uri: /, message Id:null, exception:com.apigee.rest.framework.ResourceNotFoundException{ code = messaging.adaptors.http.flow.ApplicationNotFound, message = Unable to identify proxy for host: vhdef-out and url: /, associated contexts = []} context:ClientInputChannel(ClientChannel[A:<MP-IP>:8998 Remote host:<Router-IP>:59838]@602 useCount=1 bytesRead=0 bytesWritten=0 age=0ms  lastIO=0ms ))
2017-07-02 19:05:48,213  NIOThread@3 ERROR ADAPTORS.HTTP.FLOW - AbstractRequestListener.onException() : Exception caught
com.apigee.rest.framework.ResourceNotFoundException: Unable to identify proxy for host: vhdef-out and url: /
        at com.apigee.messaging.adaptors.http.configuration.MessageProcessorHttpSkeletonFactory$MessageProcessorRequestListener.getDeploymentIdentifier(MessageProcessorHttpSkeletonFactory.java:433) [http-adaptor-1.0.0.jar:na]
        at com.apigee.messaging.adaptors.http.configuration.MessageProcessorHttpSkeletonFactory$MessageProcessorRequestListener.classifyByHostAndPath(MessageProcessorHttpSkeletonFactory.java:403) [http-adaptor-1.0.0.jar:na]
        at com.apigee.messaging.adaptors.http.configuration.MessageProcessorHttpSkeletonFactory$MessageProcessorRequestListener.init(MessageProcessorHttpSkeletonFactory.java:278) [http-adaptor-1.0.0.jar:na]
        at com.apigee.messaging.adaptors.http.configuration.MessageProcessorHttpSkeletonFactory$MessageProcessorRequestListener.onHeaders(MessageProcessorHttpSkeletonFactory.java:481) [http-adaptor-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer$Context$1.onHeaders(HTTPServer.java:601) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.io.MessageReader.onRead(MessageReader.java:119) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer$Context.startReading(HTTPServer.java:670) [http-1.0.0.jar:na]
        at com.apigee.messaging.adaptors.http.configuration.MessageProcessorHttpSkeletonFactory$MessageProcessorRequestListener.onStart(MessageProcessorHttpSkeletonFactory.java:202) [http-adaptor-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer$Context$1.setBufferUnprocessed(HTTPServer.java:499) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.io.MessageReader.onRead(MessageReader.java:83) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.io.MessageReader.start(MessageReader.java:67) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer$Context.startSafeReading(HTTPServer.java:661) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer$Context.run(HTTPServer.java:387) [http-1.0.0.jar:na]
        at com.apigee.protocol.http.HTTPServer.onAccept(HTTPServer.java:233) [http-1.0.0.jar:na]
        at com.apigee.nio.handlers.NIOThread.run(NIOThread.java:69) [nio-1.0.0.jar:na]

Can someone please shed some light on this error being logged. These errors are being logged at very frequent intervals which is causing system.log file size to grow upto 100 of MBs per day.

Thanks!!

1 2 423
2 REPLIES 2

Not applicable

Hi @Mohammed Zuber, In both the cases, I see there are Request: GET, uri:/ calls.
Do you know who is making this calls?

As a best practice always have an endpoint/proxy (Non-supported) listen on /,raise a fault and return 404.

Hi, @Maruti Chand, We have a generic Non-supported endpoint in all the proxies, and nobody is making any requests to "URI:/". Tracetool also doesn't show any such requests being made. These errors are being logged only in MP log files.

What I can assume is that router to MP health check might be causing these, still don't have a concrete idea of how that can be checked and traced.

We are having some Apigee people coming, they might be able to help on this. I will keep the community posted if I get any solution around this.

Thanks.