neo4j-contrib/neo4j-streams

Latest streams plugin version errors with Neo4j docker image

f1ames opened this issue · 5 comments

Guidelines

Please note that GitHub issues are only meant for bug reports/feature requests. If you have questions on how to use Streams, please ask on StackOverflow instead of creating an issue here.

Expected Behavior (Mandatory)

It's possible to start Neo4j with streams plugin via official Docker image.

Actual Behavior (Mandatory)

Starting Neo4j Docker container with streams plugin fails with 8 code (see logs below).

How to Reproduce the Problem

Simply try to start Neo4j via docker or docker compose.

Steps (Mandatory)

  1. Use below docker-compose.yml file:
version: "3.9"

services:

  neo4j:
    image: neo4j:latest
    container_name: 'test-neo4j'
    ports:
      - 7474:7474
      - 7687:7687
    volumes:
      - ./docker_volumes/neo4j/data:/data
      - ./docker_volumes/neo4j/logs:/logs
      - ./docker_volumes/neo4j/plugins:/plugins
      - ./docker_volumes/neo4j/import:/var/lib/neo4j/import
    environment:
      - NEO4J_AUTH=neo4j/neo4jpass
      - NEO4J_apoc_export_file_enabled=true
      - NEO4J_apoc_import_file_enabled=true
      - NEO4J_apoc_import_file_use__neo4j__config=true
      - NEO4J_dbms_security_procedures_unrestricted=apoc.*,algo.*,gds.*
      - NEO4J_dbms_security_procedures_allowlist=apoc.*,algo.*,gds.*
      - NEO4JLABS_PLUGINS=["graph-data-science", "apoc", "streams"]
  1. Run it:
docker compose build --no-cache neo4j && docker compose up --force-recreate neo4j

The result is:

[+] Running 1/0
 ⠿ Container test-neo4j  Recreated                                                                                                                                                     0.0s
Attaching to test-neo4j
test-neo4j  | Warning: Folder mounted to "/plugins" is not writable from inside container. Changing folder owner to neo4j.
test-neo4j  | Warning: Folder mounted to "/logs" is not writable from inside container. Changing folder owner to neo4j.
test-neo4j  | Warning: Folder mounted to "/data" is not writable from inside container. Changing folder owner to neo4j.
test-neo4j  | Changed password for user 'neo4j'. IMPORTANT: this change will only take effect if performed before the database is started for the first time.
test-neo4j  | Fetching versions.json for Plugin 'graph-data-science' from https://graphdatascience.ninja/versions.json
test-neo4j  | Installing Plugin 'graph-data-science' from https://graphdatascience.ninja/neo4j-graph-data-science-2.2.0.jar to /plugins/graph-data-science.jar
test-neo4j  | Applying default values for plugin graph-data-science to neo4j.conf
test-neo4j  | Skipping dbms.security.procedures.unrestricted for plugin graph-data-science because it is already set
test-neo4j  | Fetching versions.json for Plugin 'apoc' from https://neo4j-contrib.github.io/neo4j-apoc-procedures/versions.json
test-neo4j  | Installing Plugin 'apoc' from https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/4.4.0.9/apoc-4.4.0.9-all.jar to /plugins/apoc.jar
test-neo4j  | Applying default values for plugin apoc to neo4j.conf
test-neo4j  | Skipping dbms.security.procedures.unrestricted for plugin apoc because it is already set
test-neo4j  | Fetching versions.json for Plugin 'streams' from https://neo4j-contrib.github.io/neo4j-streams/versions.json
test-neo4j  | Installing Plugin 'streams' from https://github.com/neo4j-contrib/neo4j-streams/releases/download/5.0.0/neo4j-streams-5.0.0.jar to /plugins/streams.jar
test-neo4j exited with code 8

Removing streams plugin from plugin list solves the issue. Also it worked just fine last week (before 5.0.0 release).

Specifications (Mandatory)

See docker image.

Versions

  • OS: Ubuntu 18.04 (via WSL2)
  • Neo4j: Latest image which is 4.4.11 now
  • Neo4j-Streams: 5.0.0

Hi @f1ames ,

where did you download neo4j-streams 5.0.0? The latest streams version is 4.1.2. The latest release (https://github.com/neo4j-contrib/neo4j-streams/releases/tag/5.0.0) is just about the Neo4j Kafka connector which has to be installed as Kafka Connect connector and not as Neo4j plugin.

Regards,

Mauro

Hi @mroiter-larus,

Thank you for clarification on this. Hmm, this is what happens when you run Neo4j Docker image (with the configuration I posted above). I assume it just tries to download and use latest plugin version, as you can see in the logs:

test-neo4j  | Fetching versions.json for Plugin 'streams' from https://neo4j-contrib.github.io/neo4j-streams/versions.json
test-neo4j  | Installing Plugin 'streams' from https://github.com/neo4j-contrib/neo4j-streams/releases/download/5.0.0/neo4j-streams-5.0.0.jar to /plugins/streams.jar

I'm not sure at this stage if it means it's issue on Neo4j plugin management system side? 🤔

Hi @f1ames,

i tried your docker-compose.yml and i got the same error. I think there may be a problem related to NEO4JLABS_PLUGINS environment variable. It is getting the wrong plugin version to install.
I'll talk with the development team and let them know.

Thanks for reporting it!

Hi @f1ames,

could you please retry? It should now work as expected!

Mauro

Hi @f1ames,

could you please retry? It should now work as expected!

Mauro

Hi @mroiter-larus,

Looks like it works now. It uses 4.1.2 version which works fine:

prod-neo4j          | Fetching versions.json for Plugin 'streams' from https://neo4j-contrib.github.io/neo4j-streams/versions.json
prod-neo4j          | Installing Plugin 'streams' from https://github.com/neo4j-contrib/neo4j-streams/releases/download/4.1.2/neo4j-streams-4.1.2.jar to /plugins/streams.jar 
prod-neo4j          | Applying default values for plugin streams to neo4j.conf

Thanks for the quick reaction and fix! 👍