Parsed test spec with 8 sessions

starting permutation: s2_wp_enable ins_s2_insert s2_wp_release s1_freeze ins_s2_commit ins_s2_query s1_status
step s2_wp_enable: SELECT debug_waitpoint_enable('freeze_chunk_before_lock');
debug_waitpoint_enable
----------------------
                      

step ins_s2_insert: BEGIN ; INSERT INTO measurements values('2020-01-03 12:30', 2, 2.0   );
step s2_wp_release: SELECT debug_waitpoint_release('freeze_chunk_before_lock');
debug_waitpoint_release
-----------------------
                       

step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step ins_s2_commit: COMMIT;
step s1_freeze: <... completed>
freeze_chunk
------------
t           

step ins_s2_query: SELECT * FROM measurements ORDER BY 1;
time                        |device|temp
----------------------------+------+----
Fri Jan 03 10:30:00 2020 PST|     1|   1
Fri Jan 03 11:30:00 2020 PST|     2|   2
Fri Jan 03 12:30:00 2020 PST|     2|   2

step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
     4


starting permutation: comp_s2_compress comp_s2_commit s2_wp_enable ins_s2_insert s2_wp_release s1_freeze ins_s2_commit ins_s2_query s1_status
step comp_s2_compress: BEGIN; SELECT CASE WHEN compress_chunk(ch) IS NOT NULL THEN 'Success' ELSE 'Failed' END  as COL FROM (SELECT show_chunks('measurements') ch ) q;
col    
-------
Success

step comp_s2_commit: COMMIT;
step s2_wp_enable: SELECT debug_waitpoint_enable('freeze_chunk_before_lock');
debug_waitpoint_enable
----------------------
                      

step ins_s2_insert: BEGIN ; INSERT INTO measurements values('2020-01-03 12:30', 2, 2.0   );
step s2_wp_release: SELECT debug_waitpoint_release('freeze_chunk_before_lock');
debug_waitpoint_release
-----------------------
                       

step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step ins_s2_commit: COMMIT;
step s1_freeze: <... completed>
freeze_chunk
------------
t           

step ins_s2_query: SELECT * FROM measurements ORDER BY 1;
time                        |device|temp
----------------------------+------+----
Fri Jan 03 10:30:00 2020 PST|     1|   1
Fri Jan 03 11:30:00 2020 PST|     2|   2
Fri Jan 03 12:30:00 2020 PST|     2|   2

step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
    13


starting permutation: upd_s2_wp_enable upd_s2_update upd_s2_wp_release s1_freeze upd_s2_commit upd_s2_query s1_status
step upd_s2_wp_enable: SELECT debug_waitpoint_enable('freeze_chunk_before_lock');
debug_waitpoint_enable
----------------------
                      

step upd_s2_update: BEGIN ; UPDATE measurements SET temp = 200 WHERE device = 2;
step upd_s2_wp_release: SELECT debug_waitpoint_release('freeze_chunk_before_lock');
debug_waitpoint_release
-----------------------
                       

step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step upd_s2_commit: COMMIT;
step s1_freeze: <... completed>
freeze_chunk
------------
t           

step upd_s2_query: SELECT * FROM measurements ORDER BY 1;
time                        |device|temp
----------------------------+------+----
Fri Jan 03 10:30:00 2020 PST|     1|   1
Fri Jan 03 11:30:00 2020 PST|     2| 200

step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
     4


starting permutation: comp_s2_compress comp_s2_commit upd_s2_wp_enable upd_s2_update upd_s2_wp_release s1_freeze upd_s2_commit upd_s2_query s1_status
step comp_s2_compress: BEGIN; SELECT CASE WHEN compress_chunk(ch) IS NOT NULL THEN 'Success' ELSE 'Failed' END  as COL FROM (SELECT show_chunks('measurements') ch ) q;
col    
-------
Success

step comp_s2_commit: COMMIT;
step upd_s2_wp_enable: SELECT debug_waitpoint_enable('freeze_chunk_before_lock');
debug_waitpoint_enable
----------------------
                      

step upd_s2_update: BEGIN ; UPDATE measurements SET temp = 200 WHERE device = 2;
step upd_s2_wp_release: SELECT debug_waitpoint_release('freeze_chunk_before_lock');
debug_waitpoint_release
-----------------------
                       

step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step upd_s2_commit: COMMIT;
step s1_freeze: <... completed>
freeze_chunk
------------
t           

step upd_s2_query: SELECT * FROM measurements ORDER BY 1;
time                        |device|temp
----------------------------+------+----
Fri Jan 03 10:30:00 2020 PST|     1|   1
Fri Jan 03 11:30:00 2020 PST|     2| 200

step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
    13


starting permutation: del_s2_wp_enable del_s2_delete del_s2_wp_release s1_freeze del_s2_commit del_s2_query s1_status
step del_s2_wp_enable: SELECT debug_waitpoint_enable('freeze_chunk_before_lock');
debug_waitpoint_enable
----------------------
                      

step del_s2_delete: BEGIN ; DELETE FROM measurements WHERE device = 2;
step del_s2_wp_release: SELECT debug_waitpoint_release('freeze_chunk_before_lock');
debug_waitpoint_release
-----------------------
                       

step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step del_s2_commit: COMMIT;
step s1_freeze: <... completed>
freeze_chunk
------------
t           

step del_s2_query: SELECT * FROM measurements ORDER BY 1;
time                        |device|temp
----------------------------+------+----
Fri Jan 03 10:30:00 2020 PST|     1|   1

step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
     4


starting permutation: comp_s2_compress comp_s2_commit del_s2_wp_enable del_s2_delete del_s2_wp_release s1_freeze del_s2_commit del_s2_query s1_status
step comp_s2_compress: BEGIN; SELECT CASE WHEN compress_chunk(ch) IS NOT NULL THEN 'Success' ELSE 'Failed' END  as COL FROM (SELECT show_chunks('measurements') ch ) q;
col    
-------
Success

step comp_s2_commit: COMMIT;
step del_s2_wp_enable: SELECT debug_waitpoint_enable('freeze_chunk_before_lock');
debug_waitpoint_enable
----------------------
                      

step del_s2_delete: BEGIN ; DELETE FROM measurements WHERE device = 2;
step del_s2_wp_release: SELECT debug_waitpoint_release('freeze_chunk_before_lock');
debug_waitpoint_release
-----------------------
                       

step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step del_s2_commit: COMMIT;
step s1_freeze: <... completed>
freeze_chunk
------------
t           

step del_s2_query: SELECT * FROM measurements ORDER BY 1;
time                        |device|temp
----------------------------+------+----
Fri Jan 03 10:30:00 2020 PST|     1|   1

step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
    13


starting permutation: sel_s2_wp_enable sel_s2_query sel_s2_wp_release s1_freeze sel_s2_commit s1_status
step sel_s2_wp_enable: SELECT debug_waitpoint_enable('freeze_chunk_before_lock');
debug_waitpoint_enable
----------------------
                      

step sel_s2_query: BEGIN; SELECT * FROM measurements ORDER BY 1;
time                        |device|temp
----------------------------+------+----
Fri Jan 03 10:30:00 2020 PST|     1|   1
Fri Jan 03 11:30:00 2020 PST|     2|   2

step sel_s2_wp_release: SELECT debug_waitpoint_release('freeze_chunk_before_lock');
debug_waitpoint_release
-----------------------
                       

step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q;
freeze_chunk
------------
t           

step sel_s2_commit: COMMIT;
step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
     4


starting permutation: comp_s2_compress comp_s2_commit sel_s2_wp_enable sel_s2_query sel_s2_wp_release s1_freeze sel_s2_commit s1_status
step comp_s2_compress: BEGIN; SELECT CASE WHEN compress_chunk(ch) IS NOT NULL THEN 'Success' ELSE 'Failed' END  as COL FROM (SELECT show_chunks('measurements') ch ) q;
col    
-------
Success

step comp_s2_commit: COMMIT;
step sel_s2_wp_enable: SELECT debug_waitpoint_enable('freeze_chunk_before_lock');
debug_waitpoint_enable
----------------------
                      

step sel_s2_query: BEGIN; SELECT * FROM measurements ORDER BY 1;
time                        |device|temp
----------------------------+------+----
Fri Jan 03 10:30:00 2020 PST|     1|   1
Fri Jan 03 11:30:00 2020 PST|     2|   2

step sel_s2_wp_release: SELECT debug_waitpoint_release('freeze_chunk_before_lock');
debug_waitpoint_release
-----------------------
                       

step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q;
freeze_chunk
------------
t           

step sel_s2_commit: COMMIT;
step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
     5


starting permutation: BeginLock LockChunk1 comp_s2_compress s1_freeze Unlock comp_s2_commit s1_status
step BeginLock: 
	BEGIN;

step LockChunk1: 
  SELECT
    lock_chunktable(format('%I.%I',ch.schema_name, ch.table_name))
  FROM _timescaledb_catalog.hypertable ht, _timescaledb_catalog.chunk ch
  WHERE ch.hypertable_id = ht.id AND ht.table_name like 'measurements'
  ORDER BY ch.id LIMIT 1;

lock_chunktable
---------------
               

step comp_s2_compress: BEGIN; SELECT CASE WHEN compress_chunk(ch) IS NOT NULL THEN 'Success' ELSE 'Failed' END  as COL FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step Unlock: ROLLBACK;
step comp_s2_compress: <... completed>
col    
-------
Success

step comp_s2_commit: COMMIT;
step s1_freeze: <... completed>
freeze_chunk
------------
t           

step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
     5


starting permutation: comp_s2_compress comp_s2_commit BeginLock LockChunk1 decomp_s2_decompress s1_freeze Unlock decomp_s2_commit s1_status
step comp_s2_compress: BEGIN; SELECT CASE WHEN compress_chunk(ch) IS NOT NULL THEN 'Success' ELSE 'Failed' END  as COL FROM (SELECT show_chunks('measurements') ch ) q;
col    
-------
Success

step comp_s2_commit: COMMIT;
step BeginLock: 
	BEGIN;

step LockChunk1: 
  SELECT
    lock_chunktable(format('%I.%I',ch.schema_name, ch.table_name))
  FROM _timescaledb_catalog.hypertable ht, _timescaledb_catalog.chunk ch
  WHERE ch.hypertable_id = ht.id AND ht.table_name like 'measurements'
  ORDER BY ch.id LIMIT 1;

lock_chunktable
---------------
               

step decomp_s2_decompress: BEGIN; SELECT CASE WHEN decompress_chunk(ch) IS NOT NULL THEN 'Success' ELSE 'Failed' END  as COL FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step Unlock: ROLLBACK;
step decomp_s2_decompress: <... completed>
col    
-------
Success

step decomp_s2_commit: COMMIT;
step s1_freeze: <... completed>
freeze_chunk
------------
t           

step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
     4


starting permutation: BeginLock s1_begin_rr UpdateCatalogTupleStatus s1_freeze CommitUpdate s1_rollback
step BeginLock: 
	BEGIN;

step s1_begin_rr: 
	BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ;

step UpdateCatalogTupleStatus: 
  UPDATE _timescaledb_catalog.chunk SET status = 4 WHERE true;

step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step CommitUpdate: COMMIT;
step s1_freeze: <... completed>
ERROR:  could not serialize access due to concurrent update
step s1_rollback: 
	ROLLBACK;


starting permutation: BeginLock s1_begin_s UpdateCatalogTupleStatus s1_freeze CommitUpdate s1_rollback
step BeginLock: 
	BEGIN;

step s1_begin_s: 
	BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;

step UpdateCatalogTupleStatus: 
  UPDATE _timescaledb_catalog.chunk SET status = 4 WHERE true;

step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q; <waiting ...>
step CommitUpdate: COMMIT;
step s1_freeze: <... completed>
ERROR:  could not serialize access due to concurrent update
step s1_rollback: 
	ROLLBACK;


starting permutation: s1_freeze sel_s2_wp_enable sel_s2_query sel_s2_wp_release s1_unfreeze sel_s2_commit s1_status
step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q;
freeze_chunk
------------
t           

step sel_s2_wp_enable: SELECT debug_waitpoint_enable('freeze_chunk_before_lock');
debug_waitpoint_enable
----------------------
                      

step sel_s2_query: BEGIN; SELECT * FROM measurements ORDER BY 1;
time                        |device|temp
----------------------------+------+----
Fri Jan 03 10:30:00 2020 PST|     1|   1
Fri Jan 03 11:30:00 2020 PST|     2|   2

step sel_s2_wp_release: SELECT debug_waitpoint_release('freeze_chunk_before_lock');
debug_waitpoint_release
-----------------------
                       

step s1_unfreeze: SELECT _timescaledb_functions.unfreeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q;
unfreeze_chunk
--------------
t             

step sel_s2_commit: COMMIT;
step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
     0


starting permutation: comp_s2_compress comp_s2_commit s1_freeze sel_s2_wp_enable sel_s2_query sel_s2_wp_release s1_unfreeze sel_s2_commit s1_status
step comp_s2_compress: BEGIN; SELECT CASE WHEN compress_chunk(ch) IS NOT NULL THEN 'Success' ELSE 'Failed' END  as COL FROM (SELECT show_chunks('measurements') ch ) q;
col    
-------
Success

step comp_s2_commit: COMMIT;
step s1_freeze: SELECT _timescaledb_functions.freeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q;
freeze_chunk
------------
t           

step sel_s2_wp_enable: SELECT debug_waitpoint_enable('freeze_chunk_before_lock');
debug_waitpoint_enable
----------------------
                      

step sel_s2_query: BEGIN; SELECT * FROM measurements ORDER BY 1;
time                        |device|temp
----------------------------+------+----
Fri Jan 03 10:30:00 2020 PST|     1|   1
Fri Jan 03 11:30:00 2020 PST|     2|   2

step sel_s2_wp_release: SELECT debug_waitpoint_release('freeze_chunk_before_lock');
debug_waitpoint_release
-----------------------
                       

step s1_unfreeze: SELECT _timescaledb_functions.unfreeze_chunk(ch) FROM (SELECT show_chunks('measurements') ch ) q;
unfreeze_chunk
--------------
t             

step sel_s2_commit: COMMIT;
step s1_status: SELECT ch.status  FROM _timescaledb_catalog.chunk ch 
                   WHERE hypertable_id = (SELECT id FROM _timescaledb_catalog.hypertable 
                   WHERE table_name = 'measurements');
status
------
     1

