History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-1019
Type: Bug Bug
Status: Closed Closed
Resolution: Cannot Reproduce
Priority: Major Major
Assignee: Robin Shen
Reporter: Jan Koprowski
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
QuickBuild

ERROR - Error invoking hessian service

Created: 23/Aug/11 04:22 PM   Updated: 14/Sep/11 12:11 AM
Component/s: None
Affects Version/s: 3.1.54
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
Environment: Linux


 Description  « Hide
I turned on reporting ERROR level. After that I saw that SystemLog contain houndreds of following backtraces:

jvm 1 | 2011-08-23 18:13:12,730 ERROR - Error invoking hessian service.
jvm 1 | com.caucho.hessian.client.HessianConnectionException: HessianProxy cannot connect to 'http://192.168.0.1:8811/service/agent
jvm 1 | at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:192)
jvm 1 | at $Proxy46.getSystemAttributes(Unknown Source)
jvm 1 | at com.pmease.quickbuild.grid.DefaultAgentManager.newBuildAgent(DefaultAgentManager.java:177)
jvm 1 | at com.pmease.quickbuild.grid.DefaultAgentManager.buildAgentActive(DefaultAgentManager.java:150)
jvm 1 | at com.pmease.quickbuild.grid.ConnectServlet.connect(ConnectServlet.java:112)
jvm 1 | at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
jvm 1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
jvm 1 | at java.lang.reflect.Method.invoke(Method.java:597)
jvm 1 | at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:192)
jvm 1 | at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:110)
jvm 1 | at com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:416)
jvm 1 | at com.pmease.quickbuild.grid.ConnectServlet.service(ConnectServlet.java:58)
jvm 1 | at com.pmease.quickbuild.web.HttpServiceProvider$1$1.service(HttpServiceProvider.java:86)
jvm 1 | at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
jvm 1 | at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
jvm 1 | at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:59)
jvm 1 | at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
jvm 1 | at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:318)
jvm 1 | at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
jvm 1 | at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:380)
jvm 1 | at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
jvm 1 | at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
jvm 1 | at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
jvm 1 | at org.mortbay.jetty.Server.handle(Server.java:324)
jvm 1 | at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
jvm 1 | at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
jvm 1 | at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:748)
jvm 1 | at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
jvm 1 | at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
jvm 1 | at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
jvm 1 | at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:636)
jvm 1 | at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
jvm 1 | Caused by: java.io.FileNotFoundException: http://192.168.0.1:8811/service/agent
jvm 1 | at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
jvm 1 | at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
jvm 1 | at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
jvm 1 | at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
jvm 1 | at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1368)
jvm 1 | at java.security.AccessController.doPrivileged(Native Method)
jvm 1 | at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1362)
jvm 1 | at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1016)
jvm 1 | at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:177)
jvm 1 | ... 31 more
jvm 1 | Caused by: java.io.FileNotFoundException: http://192.168.0.1:8811/service/agent
jvm 1 | at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1311)
jvm 1 | at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
jvm 1 | at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:166)
jvm 1 | ... 31 more


I found topic http://forum.pmease.com/viewtopic.php?f=1&t=1732 but I can run

$telnet 192.168.0.1 8811
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.

Server under this IP address contain QB server - there is no agent.

node.properties file:
sslPort=8443
port=8811
keystorePassword=***
keystore=/path/to/keystore
privateKeyPassword=***
performance=20

 All   Comments   Work Log   Change History      Sort Order:
Robin Shen [24/Aug/11 01:33 AM]
Are you running the telnet from server machine?

The ip address "192.168.0.1" is detected from the http header when agent talks to server, then QB server uses the detected ip address to talk back to agent.

Jan Koprowski [24/Aug/11 04:40 AM]
Yes, I'm running telnet from server machine - 192.168.0.1 is server machine :) So I'm conneting with the same machine, with server port 8811.
As far as I know there is no agent run on this machine (of course if server does not run their own agent) and I can connect with 192.168.0.1 on port 8811 from other server too - then I see quickbuild Configurations tree in browser.

Robin Shen [24/Aug/11 05:18 AM]
Do you have some agent mis-configured with the ip address of "192.168.0.1"? I mean the ip address specified in "conf/node.properties" of the agent. Also is this error happening all the time?

Jan Koprowski [24/Aug/11 05:46 AM]
There is no agent with this 192.168.0.1 IP address. In Grid I see server and 9 agents - and all works properly. Error happening all the time, one after another.
Is this error is caused by server which try connect to agent under 192.168.0.1 or agent which try connect to server under 192.168.0.1?

Jan Koprowski [24/Aug/11 05:51 AM]
Is server have http://server.address/service/agent address like agent or not?

Robin Shen [24/Aug/11 07:03 AM]
Server does not expose service "/service/agent". This error happens when agent sends heartbeat info to the server and reports its ip address as 192.168.0.1, and server then connects this ip address to verify the connectivity. There should exist an agent with wrong ip address. To find out, please stop QB, and use the database tool to remove all entries in QB_TOKEN table, then start QB server again, all agents will appear in the unauthorized agents, and you can check if there is an unauthorized agent has the ip address of 192.168.0.1.


Jan Koprowski [24/Aug/11 07:54 AM]
I've cleaned QB_TOKEN table, and start server again. Neither of the agents' IP was 192.168.0.1 - I'm confused. It looks like server thinks is agent for itself. Strange.

Jan Koprowski [24/Aug/11 08:00 AM]
Is "wrapper.service" set to TRUE for QB server is fine?

Robin Shen [25/Aug/11 01:51 AM]
What do you mean wrapper.service?

Robin Shen [25/Aug/11 02:56 AM]
Next patch release will print host name of the agent just before the error message, and hope this can trace the problem more easily.

Jan Koprowski [25/Aug/11 06:11 AM]
1) In grid each agent have system.attribute "wrapper.service=TRUE". Is it related with /service/agent url?
2) Thank You - I'm waiting for this release

Robin Shen [25/Aug/11 08:40 AM]
No this does not matter.

Jan Koprowski [13/Sep/11 02:57 PM]
It looks like my friend solve the problem. At "URL to Access QuickBuild" field was http://192.168.0.1:8811 - but this address did not work. Changing it to https://192.168.0.1 - stop spaming in the log file - for now.

Robin Shen [14/Sep/11 12:11 AM]
Closing this now. Please reopen it when it happens again.