Coder Social home page Coder Social logo

Why am I encountering an issue with the GDS library on a Neo4j Docker container on Windows, despite it working on Linux? about docker-neo4j HOT 5 OPEN

studyVersion avatar studyVersion commented on July 19, 2024 2
Why am I encountering an issue with the GDS library on a Neo4j Docker container on Windows, despite it working on Linux?

from docker-neo4j.

Comments (5)

studyVersion avatar studyVersion commented on July 19, 2024 1

Just a quick update on my experience with the plugin installation process. Uploading the plugin directly from commands is completely out of the question for now on Windows. I used the following Docker command:

docker run --name testneo4j -p 7474:7474 -p 7687:7687 -v C:\\Users\\YOUR_NAME\\Desktop\\neo4j\\data:/data -v C:\\Users\\YOUR_NAME\\Desktop\\neo4j\\plugins:/plugins -e NEO4J_AUTH=neo4j/12345678 --env NEO4J_PLUGINS='["graph-data-science"]' -d neo4j:latest

While this allowed me to manually create a folder for the plugin i still had to download and paste the .jar file into the plugin directory and finally it worked.
Now the problem is that i encountered an issue when attempting to create a graph using the CALL gds.graph.project() query. Despite trying different variations of the dbms.security.procedures.unrestricted setting, such as dbms.security.procedures.unrestricted=gds.graph.exists and gds.* mounting it to the docker command and manually changing the setting on the neo4j.conf file I consistently received the following error message:

gds.graph.project is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
Based on this experience, I believe this is a bug that needs to be addressed. I wanted to bring this to your attention in the hopes that it can be resolved soon. Thank you for your attention to this matter.

from docker-neo4j.

Sandalorian avatar Sandalorian commented on July 19, 2024 1

@studyVersion - try adding this to your docker run --env=NEO4J_dbms_security_procedures_unrestricted="gds.*" should do the trick

from docker-neo4j.

jennyowen avatar jennyowen commented on July 19, 2024

It sounds like docker for windows isn't loading the GDS plugin properly.
Can you run the same run command with -e NEO4J_DEBUG=yes added and send the output from the startup attempt on docker for windows?

Docker for windows/mac runs in a virtual machine and that can introduce weird runtime conditions.

from docker-neo4j.

studyVersion avatar studyVersion commented on July 19, 2024

@jennyowen Thank you for the reply here is the output:

DEBUGGING ENABLED
Running as root user inside neo4j image
chowning /var/lib/neo4j recursively to neo4j:neo4j
Setting all files in /var/lib/neo4j/conf to permissions 600
checking /logs is writable
checking /data is writable
Warning: Folder mounted to "/data" is not writable from inside container. Changing folder owner to neo4j.
parse error: Invalid numeric literal at line 1, column 20
Setting docker specific configuration overrides
Appended db.tx_log.rotation.retention_policy=100M size to /var/lib/neo4j/conf/neo4j.conf
Appended server.memory.pagecache.size=512M to /var/lib/neo4j/conf/neo4j.conf
Appended server.default_listen_address=0.0.0.0 to /var/lib/neo4j/conf/neo4j.conf
Applying configuration settings that have been set using environment variables.
Removing existing setting for server.directories.logs in /var/lib/neo4j/conf/neo4j.conf
Appended server.directories.logs=/logs to /var/lib/neo4j/conf/neo4j.conf
NEO4J_AUTH has been parsed as user "neo4j", password "12345678", do_reset ""
Making sure /data/dbms is owned by neo4j:neo4j
Setting initial password
gosu neo4j:neo4j neo4j-admin dbms set-initial-password 12345678 --verbose
Executing command line: /opt/java/openjdk/bin/java -cp /var/lib/neo4j/plugins/:/var/lib/neo4j/conf/:/var/lib/neo4j/lib/* -XX:+UseParallelGC -XX:-OmitStackTraceInFastThrow -XX:+UnlockExperimentalVMOptions -XX:+TrustFinalNonStaticFields -XX:+DisableExplicitGC -Djdk.nio.maxCachedBufferSize=1024 -Dio.netty.tryReflectionSetAccessible=true -XX:+ExitOnOutOfMemoryError -Djdk.tls.ephemeralDHKeySize=2048 -XX:FlightRecorderOptions=stackdepth=256 -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED -Dlog4j2.disable.jmx=true -Dfile.encoding=UTF-8 org.neo4j.cli.AdminTool dbms set-initial-password 12345678 --verbose
neo4j 5.5.0
VM Name: OpenJDK 64-Bit Server VM
VM Vendor: Eclipse Adoptium
VM Version: 17.0.6+10
JIT compiler: HotSpot 64-Bit Tiered Compilers
VM Arguments: [-XX:+UseParallelGC, -XX:-OmitStackTraceInFastThrow, -XX:+UnlockExperimentalVMOptions, -XX:+TrustFinalNonStaticFields, -XX:+DisableExplicitGC, -Djdk.nio.maxCachedBufferSize=1024, -Dio.netty.tryReflectionSetAccessible=true, -XX:+ExitOnOutOfMemoryError, -Djdk.tls.ephemeralDHKeySize=2048, -XX:FlightRecorderOptions=stackdepth=256, -XX:+UnlockDiagnosticVMOptions, -XX:+DebugNonSafepoints, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/java.io=ALL-UNNAMED, --add-opens=java.base/sun.nio.ch=ALL-UNNAMED, -Dlog4j2.disable.jmx=true, -Dfile.encoding=UTF-8]
Configuration files used (ordered by priority):
/var/lib/neo4j/conf/neo4j-admin.conf
/var/lib/neo4j/conf/neo4j.conf

Changed password for user 'neo4j'. IMPORTANT: this change will only take effect if performed before the database is started for the first time.
getting full neo4j run command
exec gosu neo4j:neo4j /opt/java/openjdk/bin/java -cp /var/lib/neo4j/plugins/:/var/lib/neo4j/conf/:/var/lib/neo4j/lib/* -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch -XX:+UnlockExperimentalVMOptions -XX:+TrustFinalNonStaticFields -XX:+DisableExplicitGC -Djdk.nio.maxCachedBufferSize=1024 -Dio.netty.tryReflectionSetAccessible=true -Djdk.tls.ephemeralDHKeySize=2048 -Djdk.tls.rejectClientInitiatedRenegotiation=true -XX:FlightRecorderOptions=stackdepth=256 -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED -Dlog4j2.disable.jmx=true -Dfile.encoding=UTF-8 org.neo4j.server.CommunityEntryPoint --home-dir=/var/lib/neo4j --config-dir=/var/lib/neo4j/conf --console-mode
2023-03-03 11:27:10.227+0000 INFO Starting...
2023-03-03 11:27:11.221+0000 INFO This instance is ServerId{b4c9d072} (b4c9d072-5687-455e-b65a-cb1c07129304)
2023-03-03 11:27:12.574+0000 INFO ======== Neo4j 5.5.0 ========
2023-03-03 11:27:15.371+0000 INFO Bolt enabled on 0.0.0.0:7687.
2023-03-03 11:27:16.485+0000 INFO Remote interface available at http://localhost:7474/
2023-03-03 11:27:16.490+0000 INFO id: E2436B0B26E317A03E630ED87D849A835173CF38AF733E1D22AB7833908DEE0F
2023-03-03 11:27:16.490+0000 INFO name: system
2023-03-03 11:27:16.491+0000 INFO creationDate: 2023-03-03T11:27:13.478Z
2023-03-03 11:27:16.491+0000 INFO Started.

from docker-neo4j.

jennyowen avatar jennyowen commented on July 19, 2024

Hmm it looks like it's not even trying to load the plugin. It just gives the error parse error: Invalid numeric literal at line 1, column 20 where the plugin should be loaded. When I tried reproducing the problem on windows, it all worked as expected.

Are you sure you're properly typing out NEO4J_PLUGINS='["graph-data-science"]' and that windows (or your text editor?) isn't introducing weird double quotes? It could be a copy and paste issue.

from docker-neo4j.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.