Installation and usage of apoc shows unusual behaviour

I am having issues with starting my database after trying to update apoc.
I replaced apoc-*.jar in the plugins folder:

In short it says:

 Plugin jar file: /var/lib/neo4j/plugins/apoc-4.1.0.0-all.jar corrupted.

see more detailed debug info below see [1].
It ends up in a restart loop.

I am following these instructions: https://neo4j.com/labs/apoc/4.1/installation/

It seems that the Github releases provide corrupted files.
When using the jar file from my Neo4j Desktop the database starts again.

Any ideas how to solve that?
I have all the necessary conf file lines added.
Also downloaded the files newly from Github already.

I am using:

neo4j version 4.1.0 community edition
apoc-4.1.0.1
also tried apoc-4.1.0.2-all.jar or apoc-4.1.0.0-all.jar from Github.

[1] More detailed debug info mentioned above:

2020-10-12 08:42:05.762+0000 INFO [o.n.k.a.DatabaseAvailabilityGuard] [system] Database system is ready.
2020-10-12 08:42:05.763+0000 INFO [o.n.m.DatabaseHealth] [system] Database health set to OK
2020-10-12 08:42:05.765+0000 ERROR [o.n.k.a.p.GlobalProcedures] Plugin jar file: /var/lib/neo4j/plugins/apoc-4.1.0.0-all.jar corrupted.
2020-10-12 08:42:05.768+0000 INFO [o.n.d.d.DefaultDatabaseManager] Stop 'system' database.
2020-10-12 08:42:05.769+0000 INFO [o.n.k.a.DatabaseAvailabilityGuard] [system] Requirement `Database unavailable` makes database system unavailable.
2020-10-12 08:42:05.769+0000 INFO [o.n.k.a.DatabaseAvailabilityGuard] [system] Database system is unavailable.
2020-10-12 08:42:05.786+0000 INFO [o.n.k.i.t.l.c.CheckPointerImpl] [system] Checkpoint triggered by "Database shutdown" @ txId: 25 checkpoint started...
2020-10-12 08:42:05.871+0000 INFO [o.n.k.i.t.l.c.CheckPointerImpl] [system] Checkpoint triggered by "Database shutdown" @ txId: 25 checkpoint completed in 83ms
2020-10-12 08:42:05.885+0000 INFO [o.n.k.i.t.l.p.LogPruningImpl] [system] No log version pruned. The strategy used was '7 days'. Last checkpoint was made in log version 0.
2020-10-12 08:42:05.936+0000 ERROR [o.n.g.f.DatabaseManagementServiceFactory] Error starting Neo4j database server at /var/lib/neo4j/data/databases Component 'org.neo4j.procedure.impl.GlobalProceduresRegistry@6dfa915a' was successfully initialized, but failed to start. Please see the attached cause exception "Some jar procedure files are invalid, see log for details.".
org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.procedure.impl.GlobalProceduresRegistry@6dfa915a' was successfully initialized, but failed to start. Please see the attached cause exception "Some jar procedure files are invalid, see log for details.".
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:463)
        at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:110)
        at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.startDatabaseServer(DatabaseManagementServiceFactory.java:189)
        at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.build(DatabaseManagementServiceFactory.java:158)
        at org.neo4j.server.CommunityBootstrapper.createNeo(CommunityBootstrapper.java:36)
        at org.neo4j.server.NeoBootstrapper.start(NeoBootstrapper.java:117)
        at org.neo4j.server.NeoBootstrapper.start(NeoBootstrapper.java:87)
        at org.neo4j.server.CommunityEntryPoint.main(CommunityEntryPoint.java:35)
Caused by: java.util.zip.ZipException: Some jar procedure files are invalid, see log for details.
        at org.neo4j.procedure.impl.ProcedureJarLoader.loadProceduresFromDir(ProcedureJarLoader.java:76)
        at org.neo4j.procedure.impl.GlobalProceduresRegistry.start(GlobalProceduresRegistry.java:342)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:442)
        ... 7 more
2020-10-12 08:42:05.936+0000 INFO [o.n.g.f.DatabaseManagementServiceFactory] Shutdown started

Can you do a checksum on the file to make sure that it downloaded properly?

$ sha1sum ~/Downloads/apoc-4.1.0.2-all.jar 
8a27a86ffa0e94c81dd10179ac3d771d5febc80f  /home/markhneedham/Downloads/apoc-4.1.0.2-all.jar

Or you can use one of the other functions. The checksums for each version are included in this file - https://github.com/neo4j-contrib/neo4j-apoc-procedures/blob/master/versions.json

1 Like

I get:

sudo curl -o apoc-4.1.0.2-all.jar https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/4.1.0.2/apoc-4.1.0.2-all.jar

sha1sum apoc-4.1.0.2-all.jar

eca1c4e8184617f5b8bb1942c843eeb16bbdc573  apoc-4.1.0.2-all.jar

Looking into the file I get:

<html><body>You are being <a href="https://github-production-release-asset-2e65be.s3.amazonaws.com/52509220/3fa62880-dc80-11ea-8a45-faabbc4a2e1a?X-Amz-Algorithm=AWS4-HMAC-SHA256&amp;X-Amz-Credential=Amz-Date=20201013T132456Z&amp;X-Amz-Expires=300&amp;X-Amz-Signature=40192276c674dcec7d2a1c18d7f3f7f19c5d40edf6ad1d54adc79414df5744e8&amp;X-Amz-SignedHeaders=host&amp;actor_id=0&amp;key_id=0&amp;repo_id=52509220&amp;response-content-disposition=attachment%3B%20filename%3Dapoc-4.1.0.2-all.jar&amp;response-content-type=application%2Foctet-stream">redirected</a>.</body></html>

I was not following the redirect with the curl command.

It should be:

sudo curl -o apoc-4.1.0.2-all.jar -L https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/4.1.0.2/apoc-4.1.0.2-all.jar

Thanks for your hint.

1 Like