1Parsed test spec with 3 sessions 2 3starting permutation: listenc notify1 notify2 notify3 notifyf 4step listenc: LISTEN c1; LISTEN c2; 5step notify1: NOTIFY c1; 6notifier: NOTIFY "c1" with payload "" from notifier 7step notify2: NOTIFY c2, 'payload'; 8notifier: NOTIFY "c2" with payload "payload" from notifier 9step notify3: NOTIFY c3, 'payload3'; 10step notifyf: SELECT pg_notify('c2', NULL); 11pg_notify 12--------- 13 14(1 row) 15 16notifier: NOTIFY "c2" with payload "" from notifier 17 18starting permutation: listenc notifyd1 notifyd2 notifys1 19step listenc: LISTEN c1; LISTEN c2; 20step notifyd1: NOTIFY c2, 'payload'; NOTIFY c1; NOTIFY "c2", 'payload'; 21notifier: NOTIFY "c2" with payload "payload" from notifier 22notifier: NOTIFY "c1" with payload "" from notifier 23step notifyd2: NOTIFY c1; NOTIFY c1; NOTIFY c1, 'p1'; NOTIFY c1, 'p2'; 24notifier: NOTIFY "c1" with payload "" from notifier 25notifier: NOTIFY "c1" with payload "p1" from notifier 26notifier: NOTIFY "c1" with payload "p2" from notifier 27step notifys1: 28 BEGIN; 29 NOTIFY c1, 'payload'; NOTIFY "c2", 'payload'; 30 NOTIFY c1, 'payload'; NOTIFY "c2", 'payload'; 31 SAVEPOINT s1; 32 NOTIFY c1, 'payload'; NOTIFY "c2", 'payload'; 33 NOTIFY c1, 'payloads'; NOTIFY "c2", 'payloads'; 34 NOTIFY c1, 'payload'; NOTIFY "c2", 'payload'; 35 NOTIFY c1, 'payloads'; NOTIFY "c2", 'payloads'; 36 RELEASE SAVEPOINT s1; 37 SAVEPOINT s2; 38 NOTIFY c1, 'rpayload'; NOTIFY "c2", 'rpayload'; 39 NOTIFY c1, 'rpayloads'; NOTIFY "c2", 'rpayloads'; 40 NOTIFY c1, 'rpayload'; NOTIFY "c2", 'rpayload'; 41 NOTIFY c1, 'rpayloads'; NOTIFY "c2", 'rpayloads'; 42 ROLLBACK TO SAVEPOINT s2; 43 COMMIT; 44 45notifier: NOTIFY "c1" with payload "payload" from notifier 46notifier: NOTIFY "c2" with payload "payload" from notifier 47notifier: NOTIFY "c1" with payload "payloads" from notifier 48notifier: NOTIFY "c2" with payload "payloads" from notifier 49 50starting permutation: llisten notify1 notify2 notify3 notifyf lcheck 51step llisten: LISTEN c1; LISTEN c2; 52step notify1: NOTIFY c1; 53step notify2: NOTIFY c2, 'payload'; 54step notify3: NOTIFY c3, 'payload3'; 55step notifyf: SELECT pg_notify('c2', NULL); 56pg_notify 57--------- 58 59(1 row) 60 61step lcheck: SELECT 1 AS x; 62x 63- 641 65(1 row) 66 67listener: NOTIFY "c1" with payload "" from notifier 68listener: NOTIFY "c2" with payload "payload" from notifier 69listener: NOTIFY "c2" with payload "" from notifier 70 71starting permutation: listenc llisten notify1 notify2 notify3 notifyf lcheck 72step listenc: LISTEN c1; LISTEN c2; 73step llisten: LISTEN c1; LISTEN c2; 74step notify1: NOTIFY c1; 75notifier: NOTIFY "c1" with payload "" from notifier 76step notify2: NOTIFY c2, 'payload'; 77notifier: NOTIFY "c2" with payload "payload" from notifier 78step notify3: NOTIFY c3, 'payload3'; 79step notifyf: SELECT pg_notify('c2', NULL); 80pg_notify 81--------- 82 83(1 row) 84 85notifier: NOTIFY "c2" with payload "" from notifier 86step lcheck: SELECT 1 AS x; 87x 88- 891 90(1 row) 91 92listener: NOTIFY "c1" with payload "" from notifier 93listener: NOTIFY "c2" with payload "payload" from notifier 94listener: NOTIFY "c2" with payload "" from notifier 95 96starting permutation: l2listen l2begin notify1 lbegins llisten lcommit l2commit l2stop 97step l2listen: LISTEN c1; 98step l2begin: BEGIN; 99step notify1: NOTIFY c1; 100step lbegins: BEGIN ISOLATION LEVEL SERIALIZABLE; 101step llisten: LISTEN c1; LISTEN c2; 102step lcommit: COMMIT; 103step l2commit: COMMIT; 104listener2: NOTIFY "c1" with payload "" from notifier 105step l2stop: UNLISTEN *; 106 107starting permutation: llisten lbegin usage bignotify usage 108step llisten: LISTEN c1; LISTEN c2; 109step lbegin: BEGIN; 110step usage: SELECT pg_notification_queue_usage() > 0 AS nonzero; 111nonzero 112------- 113f 114(1 row) 115 116step bignotify: SELECT count(pg_notify('c1', s::text)) FROM generate_series(1, 1000) s; 117count 118----- 119 1000 120(1 row) 121 122step usage: SELECT pg_notification_queue_usage() > 0 AS nonzero; 123nonzero 124------- 125t 126(1 row) 127 128