Nuxeo on OpenShift

I'm trying to run nuxeo on OpenShift. As OpenShift restricts ports / bindable IPs I modified nuxeo.conf to fits those. Still it looks like a particular check performed by ConfigurationGenerator fails on OpenShift: see the call here.

I reproduced using a dumb

and indeed this particular calls fails with a “java.net.ConnectException: Permission denied” on OpenShift.

What would be the simplest/cleanest way (in this order :)) to work around this? Right now I cannot make nuxeo start on OpenShift.

Thanks!

0 votes

2 answers

1074 views

ANSWER

I tried OpenShift a few months ago and didn't have this problem. What full stack trace do you get? What's the IP used?

However I encountered another more serious problem: OpenShift limited the memory allocated to the JVM to 512 MB and this is not enough for a Nuxeo to run.

03/25/2013

Full stack I get is:

>09:25:56,186 ERROR [org.nuxeo.launcher.NuxeoLauncher.doStart(NuxeoLauncher.java:1252)] Could not run configuration: Unreachable bind address /127.6.24.129 09:25:56,187 DEBUG [org.nuxeo.launcher.NuxeoLauncher.doStart(NuxeoLauncher.java:1253)] org.nuxeo.launcher.config.ConfigurationException: Unreachable bind address /127.6.24.129 org.nuxeo.launcher.config.ConfigurationException: Unreachable bind address /127.6.24.129

at org.nuxeo.launcher.config.ConfigurationGenerator.checkAddressReachable(ConfigurationGenerator.java:1339)
at org.nuxeo.launcher.config.ConfigurationGenerator.checkAddressesAndPorts(ConfigurationGenerator.java:1312)
at org.nuxeo.launcher.config.ConfigurationGenerator.verifyInstallation(ConfigurationGenerator.java:1236)
at org.nuxeo.launcher.NuxeoLauncher.doStart(NuxeoLauncher.java:1204)
at org.nuxeo.launcher.NuxeoLauncher.doStartAndWait(NuxeoLauncher.java:1076)
at org.nuxeo.launcher.NuxeoLauncher.doStartAndWait(NuxeoLauncher.java:1042)
at org.nuxeo.launcher.NuxeoLauncher.launch(NuxeoLauncher.java:823)
at org.nuxeo.launcher.NuxeoLauncher.main(NuxeoLauncher.java:783)

Which is the same I can reproduce with my simple example.

Is there a simple way to override ConfigurationGenerator with my own extension?

You are right about the 512MB limitation (only for the free gears though).

Are you aware of some other hosted environment where nuxeo is known to work? Ideally there would be some free mode/trial period to test.

Thanks!

03/25/2013

Is the / at the start of the address normal? I'm surprised it's there.

I've had success running a Nuxeo on CloudFoundry, you'll find documentation about that here: http://doc.nuxeo.com/x/FRHF

03/25/2013

>Is the / at the start of the address normal? I'm surprised it's there.

Yes it looks like that's part of InetAddress#toString implementation.

Thanks for the cloudfoundry link. I'll consider it.

03/25/2013



Simplest would be to add a configuration option (for nuxeo.conf or any nuxeo.defaults) to bypass the address check. However, are you sure Tomcat will be able to bind that address if it's not reachable?

What about the org.nuxeo.launcher.config.ConfigurationGenerator.checkPortAvailable(InetAddress, int) next check? Will it fail too and must also be bypassed?

Those checks were initially added to early detect the situations leading to the “Address already in use” error at server (Tomcat/JBoss) startup.

1 votes



I did a quick test and the next check (from checkPortAvailable(InetAddress, int)) works fine on OpenShift. Actually it looks like this test alone could be sufficient?

As the reason why isReachable fails, not sure but it's probably related to some strange network configuration cloud prodivers enjoy!

03/25/2013

Agreed, in my opinion the checkAddressReachable on a bind address is wrong, we'll probably remove it.
03/25/2013

Thanks for the ticket!
03/25/2013

I validated that with aforementioned fix nuxeo starts fine on OpenShift.

It can even run fine on a free gear (but is somewhat slow).

03/26/2013


Quick answer: not possible due to the OpenShift memory limitation to 512 MB in the free gears.

1 votes