Current installation instructions for OSX do not produce a functional Exakat
% php -d memory_limit=-1 exakat.phar version
________ __ _
|_ __ | [ | _ / |_
| |_ \_| _ __ ,--. | | / ] ,--. `| |-'
| _| _ [ \ [ ]`'_\ : | '' < `'_\ : | |
_| |__/ | > ' < // | |, | |`\ \ // | |,| |,
|________|[__]`\_]\'-;__/[__| \_]\'-;__/\__/
Exakat : @ 2014-2023 Damien Seguy - Exakat SAS <contact(at)exakat.io>.
Version : 2.6.0 - Build 1483 - Mon, 09 Oct 2023 14:31:20 +0000
I used tinkerpop from https://archive.apache.org/dist/tinkerpop/3.4.12/apache-tinkerpop-gremlin-server-3.4.12-bin.zip
I have also tried version 3.7.0 and version 3.4.14.
I did the "optional" neoj4 install.
I tried the troubleshooting steps listed here https://exakat.readthedocs.io/en/latest/Administrator/Installation.html#installation-on-osx
PHP version:
% php -v PHP 8.2.12 (cli) (built: Oct 24 2023 19:22:16) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.12, Copyright (c) Zend Technologies with Zend OPcache v8.2.12, Copyright (c), by Zend Technologies
Java version:
% java --version openjdk 21.0.1 2023-10-17 LTS OpenJDK Runtime Environment Temurin-21.0.1+12 (build 21.0.1+12-LTS) OpenJDK 64-Bit Server VM Temurin-21.0.1+12 (build 21.0.1+12-LTS, mixed mode)
The problem:
% php -d memory_limit=-1 exakat.phar doctor
Fatal error: Uncaught TypeError: Cannot assign null to property Exakat\Graph\Graph::$path of type string in phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Graph/Graph.php:54
Stack trace:
#0 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Graph/Graph.php(104): Exakat\Graph\Graph->__construct(Object(Exakat\Config))
#1 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Container.php(62): Exakat\Graph\Graph::getConnexion(Object(Exakat\Config), 'NoGremlin')
#2 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Container.php(54): Exakat\Container->graphdb()
#3 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/helpers.php(693): Exakat\Container->__get('graphdb')
#4 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Tasks/Doctor.php(45): exakat('graphdb')
#5 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Exakat.php(51): Exakat\Tasks\Doctor->__construct()
#6 phar:///Users/christopherowen/projects/exakat/exakat.phar/exakat(54): Exakat\Exakat->execute()
#7 /Users/christopherowen/projects/exakat/exakat.phar(10): include('phar:///Users/c...')
#8 {main}
thrown in phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Graph/Graph.php on line 54
Trying php 8.0 has the same result:
% /opt/homebrew/opt/[email protected]/bin/php -d memory_limit=-1 exakat.phar doctor
Fatal error: Uncaught TypeError: Cannot assign null to property Exakat\Graph\Graph::$path of type string in phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Graph/Graph.php:54
Stack trace:
#0 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Graph/Graph.php(104): Exakat\Graph\Graph->__construct(Object(Exakat\Config))
#1 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Container.php(62): Exakat\Graph\Graph::getConnexion(Object(Exakat\Config), 'NoGremlin')
#2 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Container.php(54): Exakat\Container->graphdb()
#3 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/helpers.php(693): Exakat\Container->__get('graphdb')
#4 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Tasks/Doctor.php(45): exakat('graphdb')
#5 phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Exakat.php(51): Exakat\Tasks\Doctor->__construct()
#6 phar:///Users/christopherowen/projects/exakat/exakat.phar/exakat(54): Exakat\Exakat->execute()
#7 /Users/christopherowen/projects/exakat/exakat.phar(10): include('phar:///Users/c...')
#8 {main}
thrown in phar:///Users/christopherowen/projects/exakat/exakat.phar/library/Exakat/Graph/Graph.php on line 54
doctor will work with exakat 2.5.1 and gremlin 3.4.13.
a java error occurs when trying to analyze the project with 2.5.1 and gremlin 3.4.13
% php -d memory_limit=-1 exakat-2.5.1.phar project -p project
Error : The script submitted for processing evaluated in the ScriptEngine with errors and could not be processed. Check the script submitted for syntax errors or other problems and then resubmit. : gremlin-groovy is not an available GremlinScriptEngine
=================== SERVER TRACE =========================
array (
'stackTrace' => 'java.lang.IllegalArgumentException: gremlin-groovy is not an available GremlinScriptEngine
at org.apache.tinkerpop.gremlin.jsr223.CachedGremlinScriptEngineManager.registerLookUpInfo(CachedGremlinScriptEngineManager.java:95)
at org.apache.tinkerpop.gremlin.jsr223.CachedGremlinScriptEngineManager.getEngineByName(CachedGremlinScriptEngineManager.java:58)
at org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$0(GremlinExecutor.java:272)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
',
'exceptions' =>
array (
0 => 'java.lang.IllegalArgumentException',
),
)
============================================================
on file phar:///Users/christopherowen/projects/exakat/exakat-2.5.1.phar/vendor/brightzone/gremlin-php/src/Connection.php
on line 850