Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 7bdfea3

Browse files
committed
Yet another attempt to disable autivacuum in snapshot
1 parent 11c733d commit 7bdfea3

File tree

4 files changed

+41
-11
lines changed

4 files changed

+41
-11
lines changed

src/backend/postmaster/autovacuum.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
#include "storage/procsignal.h"
9494
#include "storage/sinvaladt.h"
9595
#include "storage/smgr.h"
96+
#include "storage/snapfs.h"
9697
#include "tcop/tcopprot.h"
9798
#include "utils/fmgroids.h"
9899
#include "utils/fmgrprotos.h"
@@ -1957,7 +1958,11 @@ do_autovacuum(void)
19571958
bool found_concurrent_worker = false;
19581959
int i;
19591960

1960-
/*
1961+
/* Do not perform autovacuum in snapshot */
1962+
if (!SFS_IN_SNAPSHOT())
1963+
return;
1964+
1965+
/*
19611966
* StartTransactionCommand and CommitTransactionCommand will automatically
19621967
* switch to other contexts. We need this one to keep the list of
19631968
* relations to vacuum/analyze across transactions.

src/test/isolation/expected/snapfs_grant.out

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,13 @@ step s1_check:
6262

6363
grantee grantor privilege_type tableowner
6464

65+
test_owner test_owner DELETE test_owner
66+
test_owner test_owner INSERT test_owner
67+
test_owner test_owner REFERENCES test_owner
68+
test_owner test_owner SELECT test_owner
69+
test_owner test_owner TRIGGER test_owner
70+
test_owner test_owner TRUNCATE test_owner
71+
test_owner test_owner UPDATE test_owner
6572
cnt
6673

6774
10
@@ -182,6 +189,13 @@ step s1_check:
182189

183190
grantee grantor privilege_type tableowner
184191

192+
test_owner test_owner DELETE test_owner
193+
test_owner test_owner INSERT test_owner
194+
test_owner test_owner REFERENCES test_owner
195+
test_owner test_owner SELECT test_owner
196+
test_owner test_owner TRIGGER test_owner
197+
test_owner test_owner TRUNCATE test_owner
198+
test_owner test_owner UPDATE test_owner
185199
cnt
186200

187201
10

src/test/isolation/expected/snapfs_role.out

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Parsed test spec with 3 sessions
22

3-
starting permutation: s3_mk_sn s1_cr s3_mk_sn s1_check s1_ar s3_mk_sn s1_dr s1_check s2_check s3_sw_1 s1_check s2_check s3_sw_2 s1_check s2_check s3_sw_3 s1_check s2_check s3_sw_0 s1_check s2_check
3+
starting permutation: s3_mk_sn s1_cr s3_mk_sn s1_check s1_ar s3_mk_sn s1_dr s1_check s2_check s3_sw_1 s1_check s2_check s3_sw_2 s1_check s2_check s3_sw_3 s1_check s2_check s3_sw_0 s1_check s2_check s3_teardown
44
step s3_mk_sn:
55
select 1 from pg_make_snapshot();
66

@@ -113,11 +113,18 @@ step s2_check:
113113

114114
rolname rolcanlogin
115115

116+
step s3_teardown:
117+
select pg_switch_to_snapshot( 0 );
118+
select pg_remove_snapshot( ( select recent_snapshot from pg_control_snapshot() ) );
119+
120+
pg_switch_to_snapshot
121+
122+
116123
pg_remove_snapshot
117124

118125

119126

120-
starting permutation: s3_mk_sn s1_cr s3_mk_sn s1_check s1_ar s3_mk_sn s1_dr s1_check s2_check s3_rc_sn_2 s1_check s2_check
127+
starting permutation: s3_mk_sn s1_cr s3_mk_sn s1_check s1_ar s3_mk_sn s1_dr s1_check s2_check s3_rc_sn_2 s1_check s2_check s3_rc_sn
121128
step s3_mk_sn:
122129
select 1 from pg_make_snapshot();
123130

@@ -173,11 +180,16 @@ step s1_check:
173180

174181
rolname rolcanlogin
175182

183+
regressuser1 f
176184
step s2_check:
177185
select rolname, rolcanlogin from pg_roles where rolname in ( 'regressuser1', 'regressuser2' );
178186

179187
rolname rolcanlogin
180188

181-
pg_remove_snapshot
189+
regressuser1 f
190+
step s3_rc_sn:
191+
select pg_recover_to_snapshot( ( select recent_snapshot from pg_control_snapshot() ) );
192+
193+
pg_recover_to_snapshot
182194

183195

src/test/isolation/specs/snapfs_role.spec

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
# Role and permissions checks
22
# We are using three backends: read-write, read, snapshot.
33

4-
teardown {
5-
select pg_switch_to_snapshot( 0 );
6-
select pg_remove_snapshot( ( select recent_snapshot from pg_control_snapshot() ) );
7-
}
8-
94
session "s1"
105
step "s1_cr" {
116
create role regressuser1 nologin;
@@ -75,9 +70,13 @@ step "s3_rc_sn_1" {
7570
step "s3_rc_sn_2" {
7671
select pg_recover_to_snapshot( ( select recent_snapshot - 1 from pg_control_snapshot() ) );
7772
}
73+
step "s3_teardown" {
74+
select pg_switch_to_snapshot( 0 );
75+
select pg_remove_snapshot( ( select recent_snapshot from pg_control_snapshot() ) );
76+
}
7877

79-
permutation "s3_mk_sn" "s1_cr" "s3_mk_sn" "s1_check" "s1_ar" "s3_mk_sn" "s1_dr" "s1_check" "s2_check" "s3_sw_1" "s1_check" "s2_check" "s3_sw_2" "s1_check" "s2_check" "s3_sw_3" "s1_check" "s2_check" "s3_sw_0" "s1_check" "s2_check"
78+
permutation "s3_mk_sn" "s1_cr" "s3_mk_sn" "s1_check" "s1_ar" "s3_mk_sn" "s1_dr" "s1_check" "s2_check" "s3_sw_1" "s1_check" "s2_check" "s3_sw_2" "s1_check" "s2_check" "s3_sw_3" "s1_check" "s2_check" "s3_sw_0" "s1_check" "s2_check" "s3_teardown"
8079
#permutation "s3_mk_sn" "s1_cr" "s3_mk_sn" "s1_check" "s1_ar" "s3_mk_sn" "s1_dr" "s1_check" "s2_check" "s1_sb_1" "s1_check" "s2_check" "s1_sb_2" "s1_check" "s2_check" "s1_sb_3" "s1_check" "s2_check" "s1_sb_0" "s1_check" "s2_check"
8180
#permutation "s3_mk_sn" "s1_cr" "s3_mk_sn" "s1_check" "s1_ar" "s3_mk_sn" "s1_dr" "s1_check" "s2_check" "s2_sb_1" "s1_check" "s2_check" "s2_sb_2" "s1_check" "s2_check" "s2_sb_3" "s1_check" "s2_check" "s2_sb_0" "s1_check" "s2_check"
82-
permutation "s3_mk_sn" "s1_cr" "s3_mk_sn" "s1_check" "s1_ar" "s3_mk_sn" "s1_dr" "s1_check" "s2_check" "s3_rc_sn_2" "s1_check" "s2_check"
81+
permutation "s3_mk_sn" "s1_cr" "s3_mk_sn" "s1_check" "s1_ar" "s3_mk_sn" "s1_dr" "s1_check" "s2_check" "s3_rc_sn_2" "s1_check" "s2_check" "s3_rc_sn"
8382
#permutation "s3_mk_sn" "s1_cr" "s3_mk_sn" "s1_check" "s1_ar" "s3_mk_sn" "s1_dr" "s1_check" "s2_check" "s3_rc_sn" "s1_check" "s2_check" "s3_rc_sn" "s1_check" "s2_check" "s3_rc_sn" "s1_check" "s2_check" "s3_mk_sn"

0 commit comments

Comments
 (0)