@@ -1094,6 +1094,13 @@ type logicTest struct {
10941094 skipOnRetry bool
10951095 skippedOnRetry bool
10961096
1097+ // skippedDueToSnappy is sticky once set: it indicates that the
1098+ // "Can't find decompressor for snappy" infra flake was detected
1099+ // (#124966), the testserver cluster has been stopped, and the
1100+ // remainder of the test should be skipped rather than run further
1101+ // directives against the dead cluster.
1102+ skippedDueToSnappy bool
1103+
10971104 // declarativeCorpusCollector used to save declarative schema changer state
10981105 // to disk.
10991106 declarativeCorpusCollector * corpus.Collector
@@ -1431,6 +1438,8 @@ func (t *logicTest) handleWaitForInitErr(ts testserver.TestServer, err error) {
14311438 if ts != nil {
14321439 ts .Stop ()
14331440 }
1441+ t .skippedDueToSnappy = true
1442+ t .testserverCluster = nil
14341443 t .t ().Skip ("ignoring init did not finish for node error due to snappy error" )
14351444 }
14361445 }
@@ -2291,6 +2300,9 @@ func (t *logicTest) processTestFile(path string, config logictestbase.TestCluste
22912300 if * maxErrs > 0 && t .failures >= * maxErrs {
22922301 break
22932302 }
2303+ if t .skippedDueToSnappy {
2304+ break
2305+ }
22942306 // If subtest has no name, then it is not a subtest, so just run the lines
22952307 // in the overall test. Note that this can only happen in the first subtest.
22962308 if len (subtest .name ) == 0 {
@@ -2311,6 +2323,10 @@ func (t *logicTest) processTestFile(path string, config logictestbase.TestCluste
23112323 t .maybeSkipOnRetry (nil )
23122324 }
23132325 }
2326+ if t .skippedDueToSnappy && ! t .rootT .Failed () {
2327+ skip .IgnoreLintf (t .rootT ,
2328+ "skipping remainder of test due to snappy infra flake; see #124966" )
2329+ }
23142330
23152331 if (* rewriteResultsInTestfiles || * rewriteSQL ) && ! t .rootT .Failed () {
23162332 // Rewrite the test file.
0 commit comments