saygoodbyye opened a new issue, #1899: URL: https://github.com/apache/age/issues/1899
**Describe the bug** Test cypher_delete sometimes fails. Mainly appears when the machine is running slowly. **How are you accessing AGE (Command line, driver, etc.)?** Accessing AGE through command line. **What data setup do we need to do?** Apache AGE (master branch) with PostgreSQL (REL_16_STABLE). **What is the necessary configuration info needed?** ``` ./configure CFLAGS=" -Og" --enable-tap-tests --enable-debug --enable-cassert ``` **What is the command that caused the error?** To reproduce fail several times faster I do this Makefile patch (Only to reproduce fail faster. This fail may occur even without these changes): ``` diff --git a/Makefile b/Makefile index 1224fc2a..0d51a9e0 100644 --- a/Makefile +++ b/Makefile @@ -85,35 +85,7 @@ SQLS := $(addsuffix .sql,$(SQLS)) DATA_built = $(age_sql) # sorted in dependency order -REGRESS = scan \ - graphid \ - agtype \ - catalog \ - cypher \ - expr \ - cypher_create \ - cypher_match \ - cypher_unwind \ - cypher_set \ - cypher_remove \ - cypher_delete \ - cypher_with \ - cypher_vle \ - cypher_union \ - cypher_call \ - cypher_merge \ - cypher_subquery \ - age_global_graph \ - age_load \ - index \ - analyze \ - graph_generation \ - name_validation \ - jsonb_operators \ - list_comprehension \ - map_projection \ - drop - +REGRESS=$(shell printf "cypher_delete %.0s" `seq 100` ) srcdir=`pwd` ag_regress_dir = $(srcdir)/regress ``` Then i run make installcheck: ``` for i in `seq 1000`;do make installcheck || break;done ``` And get: ``` <...> test cypher_delete ... ok 983 ms test cypher_delete ... ok 932 ms test cypher_delete ... ok 938 ms test cypher_delete ... ok 899 ms test cypher_delete ... FAILED 926 ms test cypher_delete ... ok 921 ms test cypher_delete ... ok 883 ms <...> ``` regression.diffs: ``` diff -U3 /opt/pgpro/ent-14/src/apache-age-test/./regress/expected/cypher_delete.out /opt/pgpro/ent-14/src/apache-age-test/./regress/results/cypher_delete.out --- /opt/pgpro/ent-14/src/apache-age-test/./regress/expected/cypher_delete.out 2024-05-22 09:54:54.000000000 +0000 +++ /opt/pgpro/ent-14/src/apache-age-test/./regress/results/cypher_delete.out 2024-05-23 11:36:29.531598703 +0000 @@ -62,14 +62,20 @@ --Should Fail SELECT * FROM cypher('cypher_delete', $$MATCH(n1)-[e]->(n2) DELETE n1 RETURN n1$$) AS (a agtype); -ERROR: Cannot delete a vertex that has edge(s). Delete the edge(s) first, or try DETACH DELETE. --Cleanup SELECT * FROM cypher('cypher_delete', $$MATCH(n) DELETE n RETURN n$$) AS (a agtype) ORDER BY a; - a ------------------------------------------------------------------ - {"id": 844424930131972, "label": "v", "properties": {}}::vertex - {"id": 844424930131973, "label": "v", "properties": {}}::vertex -(2 rows) - +ERROR: Cannot delete a vertex that has edge(s). Delete the edge(s) first, or try DETACH DELETE. --Test 4: DETACH DELETE a vertex SELECT * FROM cypher('cypher_delete', $$CREATE (:v)-[:e]->(:v)$$) AS (a agtype); a @@ -100,8 +101,9 @@ SELECT * FROM cypher('cypher_delete', $$MATCH(n) RETURN n$$) AS (a agtype); a ----------------------------------------------------------------- + {"id": 844424930131973, "label": "v", "properties": {}}::vertex {"id": 844424930131975, "label": "v", "properties": {}}::vertex -(1 row) +(2 rows) --Test 4: DETACH DELETE two vertices tied to the same edge SELECT * FROM cypher('cypher_delete', $$CREATE (:v)-[:e]->(:v)$$) AS (a agtype); @@ -168,18 +170,16 @@ (0 rows) SELECT * FROM cypher('cypher_delete', $$MATCH(n) DELETE n SET n.lol = 'ftw' RETURN n$$) AS (a agtype) ORDER BY a; - a ------------------------------------------------------------------------------------------------------ - {"id": 844424930131975, "label": "v", "properties": {"lol": "ftw"}}::vertex - {"id": 844424930131982, "label": "v", "properties": {"lol": "ftw"}}::vertex - {"id": 844424930131983, "label": "v", "properties": {"a": 0, "i": 0, "j": 5, "lol": "ftw"}}::vertex - {"id": 844424930131984, "label": "v", "properties": {"i": 1, "lol": "ftw"}}::vertex [0/1780] -(4 rows) - +ERROR: Cannot delete a vertex that has edge(s). Delete the edge(s) first, or try DETACH DELETE. SELECT * FROM cypher('cypher_delete', $$MATCH(n) RETURN n$$) AS (a agtype); - a ---- -(0 rows) + a +--------------------------------------------------------------------------------------- + {"id": 844424930131973, "label": "v", "properties": {}}::vertex + {"id": 844424930131975, "label": "v", "properties": {}}::vertex + {"id": 844424930131982, "label": "v", "properties": {}}::vertex + {"id": 844424930131983, "label": "v", "properties": {"a": 0, "i": 0, "j": 5}}::vertex + {"id": 844424930131984, "label": "v", "properties": {"i": 1}}::vertex +(5 rows) --Test 8: SELECT * FROM cypher('cypher_delete', $$CREATE (n:v)-[:e]->(:v) CREATE (n)-[:e]->(:v)$$) AS (a agtype); @@ -191,12 +191,17 @@ ERROR: Cannot delete a vertex that has edge(s). Delete the edge(s) first, or try DETACH DELETE. --Cleanup SELECT * FROM cypher('cypher_delete', $$MATCH(n) DETACH DELETE n RETURN n$$) AS (a agtype) ORDER BY a; - a ------------------------------------------------------------------ + a +--------------------------------------------------------------------------------------- + {"id": 844424930131973, "label": "v", "properties": {}}::vertex + {"id": 844424930131975, "label": "v", "properties": {}}::vertex + {"id": 844424930131982, "label": "v", "properties": {}}::vertex + {"id": 844424930131983, "label": "v", "properties": {"a": 0, "i": 0, "j": 5}}::vertex + {"id": 844424930131984, "label": "v", "properties": {"i": 1}}::vertex {"id": 844424930131985, "label": "v", "properties": {}}::vertex {"id": 844424930131986, "label": "v", "properties": {}}::vertex {"id": 844424930131987, "label": "v", "properties": {}}::vertex -(3 rows) +(8 rows) SELECT * FROM cypher('cypher_delete', $$MATCH(n) RETURN n$$) AS (a agtype); a ``` Best regards, Egor Chindyaskin Postgres Professional: https://postgrespro.com/ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@age.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org