Gert, We (as in my colleague Ben) have at long last fixed this issue: https://github.com/neo4j/neo4j/pull/6304
Regards, Lasse On Thu, Oct 30, 2014 at 3:21 PM, Gert Hulselmans <[email protected]> wrote: > > Hi Lasse, > > I know that your have functionality in place for managing memory using > Neo4j configs ( I use it ). > > The "ERROR! Neo4j cannot be started using java version . " error occurs > because of the following command: > java -version > which does not use the config settings used in the Neo4J config settings. > > > On the server over commit memory was set to 2 (do not allow overcommiting > of memory): > sudo sysctl vm.overcommit_memory=2 > Swap was disabled. > And disk cache was huge (200 GiB). > > So when "java -version" tried to run, is was not allowed because it tried > to claim to much memory by default > (when vm.overcommit_memory=2 is active, if you malloc memory, even if you > don't use it, it should be less than the total amount of free RAM + swap). > > I will look at the pull request stuff later. > > Thanks, > Gert > > The patch above just solves the > Op donderdag 30 oktober 2014 09:28:39 UTC+1 schreef Lasse Westh-Nielsen: >> >> Gert, >> >> We have functionality in place for you to manage memory using Neo4j >> configs. Look for neo4j-wrapper.conf in $NEO4J_HOME/conf. The configuration >> in there is used here: >> https://github.com/neo4j/neo4j/blob/master/packaging/standalone/src/main/distribution/shell-scripts/bin/neo4j#L73 >> >> As for using different versions of grep, I remember writing that >> particular bit of code a couple of years ago! Alas, my Linux skills are not >> up to scratch, well spotted. >> >> As for changing it, any chance you might want to submit a pull request >> with the change for us? There is some stuff here about how to go about it: >> http://neo4j.com/docs/stable/community-contributing.html. We always >> welcome help like that, and your name would live forever afterwards: >> http://neo4j.com/docs/stable/contributors.html ;) >> >> Thanks, >> >> Lasse >> >> >> >> >> On Tue, Oct 28, 2014 at 11:44 AM, Gert Hulselmans <[email protected]> >> wrote: >> >>> Hi, >>> >>> I have problems with starting Neo4J on a server with 256GiB of RAM. >>> >>> $ ./neo4j-community-2.1.5/bin/neo4j start >>> ERROR! Neo4j cannot be started using java version . >>> * Please use Oracle(R) Java(TM) 7 or OpenJDK(TM) to run Neo4j Server. >>> * Please see http://docs.neo4j.org/ for Neo4j Server installation >>> instructions. >>> >>> >>> >>> The problem comes from the checkjvmcompatibility function in ./bin/utils, >>> as it tries to run JVM without giving initial and maximum heap size. >>> Due the large amount of RAM in the server, JVM tries to allocate to many >>> GiB >>> which are not always free. >>> >>> # check if running Oracle JDK 7 or OpenJDK 7, warn if not >>> checkjvmcompatibility() { >>> # Shut down if java version < 1.7 >>> JAVAVERSION=$("$JAVACMD" ${JAVA_OPTS} -version 2>&1 | awk -F '"' >>> '/version/ {print $2}') >>> if [[ "$JAVAVERSION" < "1.7" ]]; then >>> complain_about_java_version >>> #exit 1 >>> fi >>> >>> $JAVACMD ${JAVA_OPTS} -version 2>&1 | egrep -q "(Java >>> HotSpot\\(TM\\)|OpenJDK) (64-Bit Server|Server|Client) VM" >>> if [ $? -eq 1 ] >>> then >>> warn_about_java_runtime >>> fi >>> } >>> >>> >>> >>> After fixing the function to the following, I can start Neo4J correctly. >>> >>> >>> # check if running Oracle JDK 7 or OpenJDK 7, warn if not >>> checkjvmcompatibility() { >>> # Get Java version output >>> JAVAVERSIONOUTPUT=$("$JAVACMD" -Xms10M -Xmx10M -version 2>&1) >>> >>> # Check if JVM was able to start correctly. >>> if [ $? -ne 0 ] ; then >>> echo 'ERROR: Problem with starting JVM.' >>> exit 1 >>> fi >>> >>> # Shut down if java version < 1.7 >>> JAVAVERSION=$(echo "$JAVAVERSIONOUTPUT" | awk -F '"' '/version/ {print >>> $2}') >>> if [[ "$JAVAVERSION" < "1.7" ]]; then >>> complain_about_java_version >>> exit 1 >>> fi >>> >>> echo "$JAVAVERSIONOUTPUT" | egrep -q "(Java HotSpot\\(TM\\)|OpenJDK) >>> (64-Bit Server|Server|Client) VM" >>> if [ $? -eq 1 ] >>> then >>> warn_about_java_runtime >>> fi >>> } >>> >>> >>> According to the manual of grep: egrep is deprecated, so it might be >>> better to use grep -E instead: >>> >>> In addition, three variant programs egrep, fgrep and rgrep are >>> available. >>> egrep is the same as grep -E. >>> fgrep is the same as grep -F. >>> rgrep is the same as grep -r. >>> Direct invocation as either egrep or fgrep is deprecated, but is >>> provided to allow historical applications that rely on them to run >>> unmodified. >>> >>> >>> Kind regards, >>> Gert Hulselmans >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Neo4j" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "Neo4j" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
