Issue Details (XML | Word | Printable)

Key: GRID-16
Type: Improvement Improvement
Status: Open Open
Priority: Major Major
Assignee: Philippe Hanrigou
Reporter: Sam Guido
Votes: 6
Watchers: 5
Operations

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

Setup Grid to handle restarts of RCs

Created: 03/Feb/09 07:42 AM   Updated: 23/Nov/09 01:07 PM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Environment: All supported environments.


 Description  « Hide

It would be very handy if the Grid controller could handle the restarting of RCs. You may be able to do this by enhancing Grid to understand when an RC has been shutdown or is having a critical error (it would be great if it would also stop sending work to this RC). Then once the Grid knows the RC is in a failed state it would allow a RC from the same host and port to reconnect.

I know this enhancement would make my life a little better. Thank you for your time.

  • Sam Guido


Sort Order: Ascending order - Click to sort in descending order
Eric Litak added a comment - 06/May/09 07:24 PM

I also would like Grid to handle the state of the RC servers registered to in a lot better. As it stands, I have to restart Grid and all RC servers associated to it every time one of the RC servers gets in a bad state. Fixing this would enhance the dependability of Grid significantly.


tom ketchup added a comment - 23/Nov/09 01:02 PM

I also think this would be a great help. When troubleshooting or developing a new grid environment I often restart individual RCs. However doing so with the current code makes it so there isn't a way to do this without shutting down the hub and all of your other RCs in the grid.

Some more helpful information: If you start up a new remote control and then stop it (stop it's process), you can't start it again because the hub still thinks it's registered, yielding:

[java] INFO: Registering new remote control...
[java] 2009-11-20 18:39:07.053::WARN: /registration-manager/register:
[java] java.lang.IllegalStateException: attempting to add a remote control that is already registered: [RemoteControlProxy localhost:4445 0/1]
[java] at com.thoughtworks.selenium.grid.hub.remotecontrol.RemoteControlProvisioner.add(RemoteControlProvisioner.java:68)
[java] at com.thoughtworks.selenium.grid.hub.remotecontrol.GlobalRemoteControlPool.register(GlobalRemoteControlPool.java:35)
[java] at com.thoughtworks.selenium.grid.hub.management.RegistrationServlet.process(RegistrationServlet.java:29)
[java] at com.thoughtworks.selenium.grid.hub.management.RegistrationManagementServlet.doPost(RegistrationManagementServlet.java:18)
[java] at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
[java] at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
[java] at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:459)
[java] at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
[java] at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:231)
[java] at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:629)
[java] at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
[java] at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
[java] at org.mortbay.jetty.Server.handle(Server.java:303)
[java] at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:452)
[java] at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:735)
[java] at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:636)
[java] at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
[java] at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:349)
[java] at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:217)
[java] at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)


tom ketchup added a comment - 23/Nov/09 01:07 PM

Ah I didn't see the other issue. This is a duplicate of GRID-14 . The server simply has to handle the case of un-registration. But not only by manual shutdown, the server should be pinging the RC and un-register if it fails to respond.