1

We were running JanusGraph within a container that was running on Java 8, we didn't have any issues in running the graph. When we migrated our container to Java 11 due to security reasons, JanusGraph stopped working. Though we did not get any error related to Java version, we were stuck on this JanusGraphFactory.open(this.db_property_file) line forever. There were no errors nor any warnings. It just halts here. If there were any errors it would have helped us go in some direction. Pasting the property file and pom file below for reference.

graph = JanusGraphFactory.open(this.db_property_file); // Stuck on this line

pom.xml

<?xml version="1.0" encoding="UTF-8" ?>
<project
  xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.6.RELEASE</version>
    
    <relativePath />
    <!-- lookup parent from repository -->
  </parent>
  <groupId>com.example</groupId>
  <artifactId>janus</artifactId>
  <version>latest</version>
  <name>janusms</name>
  <description>Janus MS</description>
  <properties>
    <java.version>1.8</java.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>5.3.20</version>
      
    </dependency>
    
    <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter</artifactId>
  
</dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.8.9</version>
    </dependency>
    <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.9</version>
        </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.janusgraph</groupId>
      <artifactId>janusgraph-core</artifactId>
      <version>1.0.0-rc2</version>
      
    </dependency>
    <dependency>
      <groupId>org.apache.tinkerpop</groupId>
      <artifactId>gremlin-server</artifactId>
      <version>3.6.2</version>
    </dependency>
    <dependency>
      <groupId>org.janusgraph</groupId>
      <artifactId>janusgraph-es</artifactId>
      <version>0.6.2</version>
      
    </dependency>
    <dependency>
      <groupId>org.janusgraph</groupId>
      <artifactId>janusgraph-lucene</artifactId>
      <version>0.6.2</version>
      
    </dependency>
    <dependency>
      <groupId>org.apache.tinkerpop</groupId>
      <artifactId>gremlin-driver</artifactId>
      <version>3.4.4</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy</artifactId>
        <version>3.0.8</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>2.0.6</version>
      
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.11.0</version>
    </dependency>
    <dependency>
      <groupId>com.univocity</groupId>
      <artifactId>univocity-parsers</artifactId>
      <version>2.9.1</version>
    </dependency>
    <dependency>
      <groupId>org.janusgraph</groupId>
      <artifactId>janusgraph-cassandra</artifactId>
      <version>0.4.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.12.7.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.13.5</version>
  </dependency>
  <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.13.5</version>
</dependency>
    <dependency>
      <groupId>org.janusgraph</groupId>
      <artifactId>janusgraph-berkeleyje</artifactId>
      <version>0.4.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.5</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>javax.ws.rs</groupId>
      <artifactId>javax.ws.rs-api</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>20.0</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.9.2</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <mainClass>app.InferenceMsApplication</mainClass>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

janusgraph.properties

gremlin.graph=org.janusgraph.core.JanusGraphFactory
storage.backend=berkeleyje
index.search.backend=lucene
storage.batch-loading=true
storage.berkeleyje.cache-percentage=1
query.force-index=true
  • Tried upgrading the JanusGraph core version to 1.0.0rc2
  • Checked if the property file is open somewhere so deadlock is ruled out
  • Validated with Java 8 Image and it works fine
Zach
  • 539
  • 1
  • 4
  • 22

1 Answers1

1

Some remarks:

  • Only JanusGraph-1.0.0rc2 supports java 11
  • Java 8 can be extended with TLS1.3 using https://github.com/openjsse/openjsse
  • In your pom.xml check the version consistency and necessity of all JanusGraph and TinkerPop dependencies (janusgraph-server, janusgraph-es, janusgraph-cassandra are propbably not needed, Janugraph-0.6.2 implies transitive dependencies on TinkerPop-3.5.3, Janugraph-1.0.0rc2 implies transitive dependencies on TinkerPop-3.6.2)
HadoopMarc
  • 1,356
  • 3
  • 11