Forum: Installation

Post: Volt DB doesn't start

Volt DB doesn't start
antociam
Apr 24, 2014
I've installed VoltDB on Linux OS Centos x86_64 with java version "Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)" when i try to start the example "voter" i receive the following error (View image error.jpg):

Build: 4.2 voltdb-4.2-0-gc9751d3-local Enterprise Edition
Connecting to VoltDB cluster as the leader...
Host id of this node is: 0
Starting VoltDB with trial license. License expires on May 17, 2014.
Initializing the database and command logs. This may take a moment...
ERROR: Thread Thread[Iv2ExecutionSite: 0:0,5,main] died
java.lang.UnsatisfiedLinkError: /tmp/snappy-1.1.0.1-645f8c7c-1b9b-40ad-8b08-c0c884a3148a-libsnappyjava.so: /tmp/snappy-1.1.0.1-645f8c7c-1b9b-40ad-8b08-c0c884a3148a-libsnappyjava.so: failed to map segment from shared object: Operation not permitted
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825)
at java.lang.Runtime.load0(Runtime.java:792)
at java.lang.System.load(System.java:1059)
at org.xerial.snappy.SnappyLoader.loadNativeLibrary(SnappyLoader.java:166)
at org.xerial.snappy.SnappyLoader.load(SnappyLoader.java:145)
at org.xerial.snappy.Snappy.<clinit>(Snappy.java:47)
at org.voltdb.utils.CompressionService.maxCompressedLength(CompressionService.java :216)
at org.voltdb.SnapshotSiteProcessor.<clinit>(SnapshotSiteProcessor.java:147)
at org.voltdb.iv2.Site.initialize(Site.java:442)
at org.voltdb.iv2.Site.run(Site.java:506)
at java.lang.Thread.run(Thread.java:722)
ERROR: Thread Thread[Iv2ExecutionSite: 0:1,5,main] died
java.lang.NoClassDefFoundError: Could not initialize class org.voltdb.SnapshotSiteProcesso r
at org.voltdb.iv2.Site.initialize(Site.java:442)
at org.voltdb.iv2.Site.run(Site.java:506)
at java.lang.Thread.run(Thread.java:722)
ERROR: Thread Thread[Iv2ExecutionSite: 0:2,5,main] died
java.lang.NoClassDefFoundError: Could not initialize class org.voltdb.SnapshotSiteProcesso r
at org.voltdb.iv2.Site.initialize(Site.java:442)
at org.voltdb.iv2.Site.run(Site.java:506)
at java.lang.Thread.run(Thread.java:722)
rmorgenstein
Apr 25, 2014
Hi,

You do not have execute privileges in /tmp. This is a known limitation - see #5.3 in the release notes http://voltdb.com/docs/ReleaseNotes/index.php#KnownLimitations . You can either change /tmp, or you can specify an alternate tmpdir. I've included the information from our release notes below:

If the HTTP port is enabled (which it is by default) but the process does not have execute privileges for the /tmp directory, VoltDB throws a fatal exception on startup. The error message indicates that the process could not load the native library for the Snappy web server.
The workaround is to either use an account that has execute permission for the /tmp directory or specify an alternate directory that the account can access by assigning the environment variable VOLTDB_OPTS = "-Djava.io.tmpdir={alternate-tmpdir}".
antociam
Apr 28, 2014
Hi,

You do not have execute privileges in /tmp. This is a known limitation - see #5.3 in the release notes http://voltdb.com/docs/ReleaseNotes/index.php#KnownLimitations . You can either change /tmp, or you can specify an alternate tmpdir. I've included the information from our release notes below:

If the HTTP port is enabled (which it is by default) but the process does not have execute privileges for the /tmp directory, VoltDB throws a fatal exception on startup. The error message indicates that the process could not load the native library for the Snappy web server.
The workaround is to either use an account that has execute permission for the /tmp directory or specify an alternate directory that the account can access by assigning the environment variable VOLTDB_OPTS = "-Djava.io.tmpdir={alternate-tmpdir}".


thank you, we solved the problem