Closed joelduerksen closed 3 years ago
Thanks for reporting this! It's especially bad coming from a guide. I hope to get a fix in this release, will post updates here on this issue.
I was able to repeat the steps reliably to create the crash on my client, but do let me know if you are unable to reproduce the error, I'll try to help figure it out. These crashes make it hard to use the neo4j, and they occur frequently for me.
Note: I also see "RELOAD APPLICATION" button crashes in other cases, but this case was reproducible for me. I hope there is one bug to quash, but I guess it may be a catch all crash button with N causes.
The reload application is a catch all like you suspected. It pains me to hear you see enough crashes to find the product harder to use. Just a few weeks ago I added our first automatic crash reporting, so I'm hoping to reduce the number of crashes in the coming months
I've put a fix in place that'll be part of the next release (in a few days). Thanks again for your report!
Description
Neo4j browser crashes (Desktop, Chrome, Safari, Firefox all the same behavior)
Reproduce Steps
In a browser display a node with a null value for a property, then move the mouse over the node. crash.
SPECIFIC EXAMPLE FROM NEO4J DOCUMENTATION Load the Movie database, then run the queries (below) from the documentation (note: documentation has a typo, n.relased when it should be n.released)
MATCH (n) SET n.century = toInteger(coalesce(n.born,n.released)/100) * 100
CALL apoc.nodes.group(['Person','Movie'],['century'])
Not all of the nodes have the required properties to create a new century property value so some have a null century property (example below) [ { "identity": -11, "labels": [ "Person" ], "properties": { "count_*": 6, "century": null } } ]
The graph view renders OK initially but mouse over each of the nodes, and the browser will crash when it hits a node with a null property value.
Expected Behavior
Browser should handle properties containing a null value (or database silently never create them?) Not crash, behave normally.
Current Behavior
Run CALL apoc.nodes.group(['Person','Movie'],['century']) initial display is Mouse over the node with null value property, it crashes
Can you propose a solution?
fix code that is crashing on null values, it should silently be OK with this, and display empty/null values for properties that have them
However, Ideally? properties added with a null value, would (important: silently without throwing an error) just not be added to the node/relationship. I really like and depend on EXISTS(n.property) rather than polluting the database with null values.
I suspect this issue was introduced, I do not recall seeing these errors until 4.x, but caveats apply...
Your Environment
I see this browser issue on all the platforms I use Windows 10, Macintosh (macOS Catalina 10.15.7) and Ubuntu 16/18.04/20.04 (UNIX), and all versions of Neo4j 4.x. Only recently I took the time to investigate deeper to try to figure out this frustrating and ever persistent nagging issue, and I believe I might have narrowed in on the specific example/cause?
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.
Different messages may be displayed for crash, but always show the "RELOAD APPLICATION" button, and the browser is not functional until you do the reload.
For enhancements or other issues, please describe in as much detail as possible how the app should be changed and how this would benefit users/developers.
After fix, please add to test suite, I strongly suspect that this issue was introduced.