@@ -873,8 +873,9 @@ func TestConsumption(t *testing.T) {
873873 hostServer , _ , _ := serverutils .StartServer (t , base.TestServerArgs {DefaultTestTenant : base .TestControlsTenantsExplicitly })
874874 defer hostServer .Stopper ().Stop (context .Background ())
875875
876+ const targetPeriod = time .Millisecond
876877 st := cluster .MakeTestingClusterSettings ()
877- tenantcostclient .TargetPeriodSetting .Override (context .Background (), & st .SV , time . Millisecond )
878+ tenantcostclient .TargetPeriodSetting .Override (context .Background (), & st .SV , targetPeriod )
878879 tenantcostclient .CPUUsageAllowance .Override (context .Background (), & st .SV , 0 )
879880
880881 testProvider := newTestProvider ()
@@ -902,21 +903,32 @@ func TestConsumption(t *testing.T) {
902903 r .Exec (t , "INSERT INTO t (v) SELECT repeat('1234567890', 1024) FROM generate_series(1, 10) AS g(i)" )
903904 const expectedBytes = 10 * 10 * 1024
904905
905- afterWrite := testProvider .waitForConsumption (t )
906- delta := afterWrite
907- delta .Sub (& beforeWrite )
908- if delta .WriteBatches < 1 || delta .WriteRequests < 2 || delta .WriteBytes < expectedBytes * 2 {
909- t .Errorf ("usage after write: %s" , delta .String ())
910- }
906+ // Try a few times because background activity can trigger bucket
907+ // requests before the test query does.
908+ testutils .SucceedsSoon (t , func () error {
909+ afterWrite := testProvider .waitForConsumption (t )
910+ delta := afterWrite
911+ delta .Sub (& beforeWrite )
912+ if delta .WriteBatches < 1 || delta .WriteRequests < 2 || delta .WriteBytes < expectedBytes * 2 {
913+ return errors .Newf ("usage after write: %s" , delta .String ())
914+ }
915+ return nil
916+ })
911917
918+ beforeRead := testProvider .waitForConsumption (t )
912919 r .QueryStr (t , "SELECT min(v) FROM t" )
913920
914- afterRead := testProvider .waitForConsumption (t )
915- delta = afterRead
916- delta .Sub (& afterWrite )
917- if delta .ReadBatches < 1 || delta .ReadRequests < 1 || delta .ReadBytes < expectedBytes {
918- t .Errorf ("usage after read: %s" , delta .String ())
919- }
921+ // Try a few times because background activity can trigger bucket
922+ // requests before the test query does.
923+ testutils .SucceedsSoon (t , func () error {
924+ afterRead := testProvider .waitForConsumption (t )
925+ delta := afterRead
926+ delta .Sub (& beforeRead )
927+ if delta .ReadBatches < 1 || delta .ReadRequests < 1 || delta .ReadBytes < expectedBytes {
928+ return errors .Newf ("usage after read: %s" , delta .String ())
929+ }
930+ return nil
931+ })
920932 r .Exec (t , "DELETE FROM t WHERE true" )
921933 }
922934 // Make sure some CPU usage is reported.
0 commit comments