Skip to content

Periodic regression test "expr" failures #1439

@saygoodbyye

Description

@saygoodbyye

Describe the bug
Regression test "expr" fails in rare cases

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_15_STABLE).

What is the necessary configuration info needed?
./configure CFLAGS=" -Og" --enable-tap-tests --enable-debug --enable-cassert --prefix=/tmp/pgsql

What is the command that caused the error?
I removed all tests except "expr" from the Makefile and put "make installcheck" in a loop to reproduce the failure.

diff --git a/Makefile b/Makefile
index ab98665..2f08858 100644
--- a/Makefile
+++ b/Makefile
@@ -76,30 +76,8 @@ EXTENSION = age
 DATA = age--1.4.0.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 \
-          age_global_graph \
-          age_load \
-          index \
-          analyze \
-          graph_generation \
-          name_validation \
-          drop
+
+REGRESS = expr
 
 srcdir=`pwd`

Start tests:

for i in `seq 1000000`;do echo "iteration $i";NO_TEMP_INSTALL=1 make -s installcheck || break;done

The test may fail at a random iteration. I received failures at iteration ~600, at iteration ~3500, and during the last run the test failed at iteration 199 with following "regression.diffs":

iteration 199
+++ regress install-check in  +++
============== creating temporary instance            ==============
============== initializing database system           ==============
============== starting postmaster                    ==============
running on port 61958 with PID 3302580
============== creating database "contrib_regression" ==============
CREATE DATABASE
ALTER DATABASE
ALTER DATABASE
ALTER DATABASE
ALTER DATABASE
ALTER DATABASE
ALTER DATABASE
============== installing age                         ==============
CREATE EXTENSION
============== running regression test queries        ==============
test expr                         ... FAILED      643 ms
============== shutting down postmaster               ==============

======================
 1 of 1 tests failed. 
======================

regression.diffs:

diff -U3 /home/test/work/subtree/age/regress/expected/expr.out /home/test/work/subtree/age/regre>
--- /home/test/work/subtree/age/regress/expected/expr.out       2023-12-06 13:30:29.282207296 +0>
+++ /home/test/work/subtree/age/regress/results/expr.out        2023-12-06 13:42:58.481465465 +0>
@@ -7217,12 +7217,12 @@
 SELECT * FROM cypher('keys', $$MATCH ()-[e]-() RETURN keys(e)$$) AS (edge_keys agtype);
  edge_keys
 -----------
- []
- []
  ["song"]
  ["song"]
  ["song"]
  ["song"]
+ []
+ []
 (6 rows)

 SELECT * FROM cypher('keys', $$RETURN keys({a:1,b:'two',c:[1,2,3]})$$) AS (keys agtype);

But in some cases the test may fail with another regression.diffs:

diff -U3 /opt/pgpro/ent-14/src/apache-age-test/./regress/expected/expr.out /opt/pgpro/ent-14/src/apache-age-test/./regress/results/expr.out
--- /opt/pgpro/ent-14/src/apache-age-test/./regress/expected/expr.out	2023-09-26 17:35:01.000000000 +0300
+++ /opt/pgpro/ent-14/src/apache-age-test/./regress/results/expr.out	2023-11-30 06:00:38.531000000 +0300
@@ -6612,6 +6612,7 @@
 ERROR:  keys() argument must be a vertex, edge, object or null
 SELECT * from cypher('keys', $$MATCH u=()-[]-() RETURN keys(u)$$) as (keys agtype);
 ERROR:  keys() argument must be a vertex, edge, object or null
+CONTEXT:  parallel worker
 SELECT create_graph('list');
 NOTICE:  graph "list" has been created
  create_graph 

Expected behavior
Consistent test passing

Best regards,
Egor Chindyaskin
Postgres Professional: http://postgrespro.com/

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions