Not sure if this might be a Linux only issue, and I'm on MacOS. Would you also mind to reduce your testcase to maybe only create the driver and quit? When I have such a test locally I'm not able to get it to hang. If there is absolutely nothing using that port, it has to be the current Firefox binary. I would like to know if there is the port listed, which causes an early connect when Firefox gets started. The port as used in the last successful iteration was 43531 so it's clearly different from the one causing a hang in the last one thing you should try is to not only print out the Firefox and geckodriver processes, but also a list of ports as used. So in case of the hang Marionette connects to localhost:44054 about 2s before the started Firefox instance is ready and the Marionette server component gets started:ġ523340498672 geckodriver::marionetteĝEBUGĜonnected to Marionette on localhost:44054ġ523340499660 MarionetteĝEBUG Received observer notification sessionstore-windows-restoredġ523340500206 Marionette INFO Listening on port 44054 So if you get into such a situation again I really appreciate your feedback. We also see this very rarely in our automation ( bug 1400819 but there was no way for me yet to isolate that.
But given that geckodriver connects to something, there must be one. In your log there is no output from ps for any Firefox process.
That having been said, there are definitely legitimate cases in which you may wish temporarily to revert to a previous state and which undoing an update (e.g., backing down from a recent upgrade from CentOS 7.1 to 7.2) might be needed. So I would like to know to which process geckodriver connects to. It is true that in general you should try to use the latest versions. The stress is on 'a sane way' because the different Java versions could interfere with each other.
However, with a bit of effort you can install it in a sane way. So a connection is being made to port 38128 at 1512011499148, which is 2.2s before Marionette accepts connections. For legal reasons Suns Java is not included with Fedora 7 yet. The script explains what it will do and then pauses before it does it. Here the interesting lines:ġ512011499064 MarionetteĝEBUG Received observer notification "profile-after-change"ġ512011499132 MarionetteĝEBUG Received observer notification "command-line-startup"ġ512011499132 Marionette INFOĞnabled via -marionetteġ512011499148 geckodriver::marionetteĝEBUGĜonnected to Marionette on localhost:38128ġ512011501427 MarionetteĝEBUG New connections are acceptedġ512011501428 Marionette INFO Listening on port 38128Īs you can see above geckodriver makes a connection to Marionette before it actually has finalized its initialization. Paste that in a macOS Terminal or Linux shell prompt. Ok, so that log was indeed pretty helpful.