We are running some tests using selenium. We have dedicated Windows XP VM’s for that, with one selenium RC server on each VM, and no other process running on that VM. We open and close a selenium session for each test. The tests always call selenium.stop() when they finish. A lot of times (1 in 30 I would say) one test hangs, and when I view the desktop of the machine that has been allocated to it I see a popup with “Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.”
- I am sure only one test communicates
with a VM at a given time - All tests make sure to stop() the selenium when they’re done.
- we have very verbose logging, and the
log shows that no test had any
problems before the test that got the
“firefox is already running” error. - The test that gets this error is
arbitrary, since it happens right
after calling selenium.start() and
thus isn’t caused by any specific
code. - The teardown is the same for all tests
What could be causing this, and how can I prevent it?
We have found that in our case the reason for this was completely unrelated to selenium – firefox itself was just having trouble because it was running on machines with not enough CPU and\or RAM. We upgraded the VM’s (e.g added more RAM and CPU) and the problem went away almost completely.