cancel
Showing results for 
Search instead for 
Did you mean: 

Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.

Failure to fully load all apoc procedures

Hello
I am using Neo4j 4.2.5 desktop 1.4.13.
I discovered recently the use of apoc plugin. And I made a test to use apoc.text.jaroWinklerDistance et apoc.ext.mergeNodes after installing the Apoc plugin 4.2.0.5 indicated to be compatible. In the first instance it went all right and I could test these procedures and merge nodes as I wanted to do.

However, the next day I started again the procedure but I could no longer install and start my data base with Apoc plugin .
I went into a red window "DBMS failed to start:startup timed out, see logs.
In the debug logs I saw numerous lines with the following comment on SSLPrivateKeyMethod:

2022-03-14 21:59:46.035+0000 WARN  [o.n.k.a.p.GlobalProcedures] Failed to load `org.neo4j.driver.internal.shaded.io.netty.handler.ssl.ReferenceCountedOpenSslContext$PrivateKeyMethod` from plugin jar `/home/vincent2718/.config/Neo4j%20Desktop/Application/relate-data/dbmss/dbms-9dcac6c5-4908-4089-b549-1d9c254052bf/plugins/apoc-4.2.0.5.jar`: org/neo4j/driver/internal/shaded/io/netty/internal/tcnative/SSLPrivateKeyMethod

each of these lines being followed by 4 to 7 lines "Failed to Load etc."

Probably I may have closed previous instances of Neo4j too uncautiously.
I recover the use of Neo4j after closing down everything and restarting without installing the apoc plugin.
Shall I provide more information? Thanking you in advance for your help.
Best regards
Vincent

7 REPLIES 7

I should clarify further that the database opened but with a very limited set of apoc procedures.

@vincent.cousin

If your current situation is a limited set of procedures,
maybe you have installed the apoc-core version?
I don't know how you installed your apoc, but in general in Neo4j Desktop in general it is better to install it from Plugin tab.

Anyway, can you check that the size of your apoc jar into the plugin folder is about 21.5 MB?
And that, executing the query call apoc.help("") yield name return count(name) will be returned 528?

Dear Giuseppe
Thank you for your help.
I followed the following procedure:

  • start the dbms (version 4.2.1) to check that it works fine and then stop it
  • install apoc full from the plugin window version 4.2.0

In the plugin /plugin two files were present apoc-4.2.0.0.jar of 18.5MB and neo4j-jwt-addon-1.0.1.jar of 598.4KB.
When running from the browser the command **call apoc.help("") yield name return count(name) ** I obtained 501.
When trying to run apoc.text.jaroWinklerDistance I could not obtain the procedure but I noticed that other apoc like apoc.refactor.mergeNodes were present.

I went then to read the logs files:
Neo4j
2022-03-15 16:27:32.719+0000 INFO Starting...
2022-03-15 16:27:47.503+0000 INFO ======== Neo4j 4.2.1 ========
2022-03-15 16:28:07.493+0000 INFO Called db.clearQueryCaches(): Query cache already empty.
2022-03-15 16:28:42.069+0000 INFO Sending metrics to CSV file at /home/vincent2718/.config/Neo4j Desktop/Application/relate-data/dbmss/dbms-79918c6f-1656-4a45-9deb-39f4f544b3be/metrics
2022-03-15 16:28:42.486+0000 INFO Bolt enabled on localhost:7687.
2022-03-15 16:28:49.759+0000 INFO Remote interface available at http://localhost:7474/
2022-03-15 16:28:49.763+0000 INFO Started.
Security log
2022-03-15 16:28:59.501+0000 INFO [neo4j]: logged in
2022-03-15 16:29:07.576+0000 INFO {plugin-com.neo4j.plugin.jwt.auth.JwtAuthPlugin} Log in attempted for user 'neo4j'.
2022-03-15 16:29:07.577+0000 ERROR {plugin-com.neo4j.plugin.jwt.auth.JwtAuthPlugin} Invalid serialized unsecured/JWS/JWE object: Missing part delimiters
2022-03-15 16:29:07.577+0000 INFO [neo4j]: logged in
2022-03-15 16:29:11.171+0000 INFO {plugin-com.neo4j.plugin.jwt.auth.JwtAuthPlugin} Log in attempted for user 'neo4j'.
2022-03-15 16:29:11.174+0000 ERROR {plugin-com.neo4j.plugin.jwt.auth.JwtAuthPlugin} Invalid serialized unsecured/JWS/JWE object: Missing part delimiters
2022-03-15 16:29:11.175+0000 INFO [neo4j]: logged in

Debug log
2022-03-15 16:28:38.718+0000 WARN [o.n.k.a.p.GlobalProcedures] Failed to load org.apache.commons.logging.impl.LogKitLogger from plugin jar /home/vincent2718/.config/Neo4j%20Desktop/Application/relate-data/dbmss/dbms-79918c6f-1656-4a45-9deb-39f4f544b3be/plugins/apoc-4.2.0.0.jar: org/apache/log/Logger
2022-03-15 16:28:42.069+0000 INFO [c.n.m.g.GlobalMetricsExtension] Sending metrics to CSV file at /home/vincent2718/.config/Neo4j Desktop/Application/relate-data/dbmss/dbms-79918c6f-1656-4a45-9deb-39f4f544b3be/metrics
2022-03-15 16:28:42.486+0000 INFO [o.n.b.BoltServer] Bolt enabled on localhost:7687.
2022-03-15 16:28:42.487+0000 INFO [o.n.s.AbstractNeoWebServer$ServerComponentsLifecycleAdapter] Starting web server
2022-03-15 16:28:49.759+0000 INFO [c.n.s.e.EnterpriseNeoWebServer] Remote interface available at http://localhost:7474/
2022-03-15 16:28:49.760+0000 INFO [o.n.s.AbstractNeoWebServer$ServerComponentsLifecycleAdapter] Web server started.
2022-03-15 16:28:51.676+0000 WARN [o.n.k.i.c.VmPauseMonitorComponent] Detected VM stop-the-world pause: {pauseTime=212, gcTime=0, gcCount=0}
2022-03-15 16:29:04.783+0000 WARN [o.n.k.i.c.VmPauseMonitorComponent] Detected VM stop-the-world pause: {pauseTime=102, gcTime=85, gcCount=1}
2022-03-15 16:37:57.869+0000 WARN [o.n.k.i.c.VmPauseMonitorComponent] Detected VM stop-the-world pause: {pauseTime=118, gcTime=98, gcCount=1}

I listed only the last lines of each of the log files.

From what I read there may be some problems of authorization?
Thank for your help.
Regards
Vincent

@vincent.cousin

Now that I notice, even me from those ERROR on security.log.
I honestly do not know the cause, but however "apoc-side" it seems that everything is working fine now.
That is, the apoc.text.jaroWinklerDistance does not come out in the list of procedures because it is a function (ie without the initial "call"),
then doing RETURN apoc.text.jaroWinklerDistance (" Neo4j "," Neo4j ") AS output; you should get 1.0.

The call apoc.help (" ") yield name return count (name) is 501 because you are testing 4.2.0.0, so there is some procedure / function absent, respect of the latest version.

Thank you for your comments.
On the instruction
RETURN apoc.text.jaroWinklerDistance ("chien","niches") AS output
The result is 0.6972

But on the instruction
CALL apoc.text.jaroWinklerDistance("chien","niches")
I have the result
There is no procedure with the name apoc.text.jaroWinklerDistance registered for this database instance. Please ensure you've spelled the procedure name correctly and that the procedure is properly deployed.

There is really a problem of authentication?

@vincent.cousin

No, it's not an auth problem, it's an expected thing,
because apoc.text.jaroWinklerDistance is a function, so you cannot execute CALL apoc.text.jaroWinklerDistance, but in a RETURN, a WITH apoc.text.jaroWinklerDistance(...)
or in MATCH (n:Node) SET n.propNam = apoc.text.jaroWinklerDistance ("chien","niches") for example

Instead apoc.refactor.mergeNodes is a procedure, so you have to do CALL apoc.refactor.mergeNodes(...).

You can see in this page Procedures & Functions - APOC Documentation , in the column Type,
if your function/procedure is a function or a procedure

Great then. Thank you a lot Giuseppe. It looks like everything works fine in fact with apoc.
I am very sorry to have made so much noise for what appears finally nothing!
The errors that appear in some logs are something else whose origin is in another area. As it is I can work without too much trouble. So I'll let it as is.
Thank you again for your help and patience. I'll remember the difference between procedure and functions which is quite natural concept.
Best regards
Vincent Cousin

Nodes 2022
Nodes
NODES 2022, Neo4j Online Education Summit

All the sessions of the conference are now available online