This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch vectorized-query
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git

commit 0e0638741f597941c4885f58a880b2cd8d9589ca
Author: Hongtao Gao <[email protected]>
AuthorDate: Wed May 6 14:49:15 2026 +0000

    test(integration): restore SharedContext in vectorized parity AfterAll
    
    The "vectorized parity" Describe in test/integration/standalone/query
    mutates the package-global casesmeasure.SharedContext and
    casestopn.SharedContext to point at a fresh vectorized-flagged
    standalone cluster, then closes that cluster in AfterAll. Ginkgo runs
    sibling top-level "TopN Tests" / "Scanning Measures" tables between
    this AfterAll and the next Describe's BeforeAll, so leaving SharedContext
    pointing at the closed-down conn caused those siblings to time out at
    the 10s gm.Eventually(...).WithTimeout(10*time.Second), producing a
    ~33% flake rate under -race.
    
    Save the prior SharedContexts in BeforeAll and restore them in AfterAll
    before tearing the cluster down. The original cluster #1 from
    SynchronizedBeforeSuite is still alive at that point, so siblings
    revert to a working connection.
    
    Verified clean: 3/3 fresh runs at 488/488 specs (vs ~1/3 failure
    pre-fix).
---
 test/integration/standalone/query/vectorized_test.go | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/test/integration/standalone/query/vectorized_test.go 
b/test/integration/standalone/query/vectorized_test.go
index 15f530e67..0124ae919 100644
--- a/test/integration/standalone/query/vectorized_test.go
+++ b/test/integration/standalone/query/vectorized_test.go
@@ -52,8 +52,17 @@ var _ = ginkgo.Describe("vectorized parity", ginkgo.Ordered, 
func() {
        var (
                vectorizedConn *grpc.ClientConn
                stopFn         func()
+               // Save the package-global SharedContexts so AfterAll can 
restore
+               // them. Sibling Describes may run *between* this AfterAll and 
the
+               // next BeforeAll (e.g. the top-level "TopN Tests" / "Scanning
+               // Measures" tables); leaving SharedContext pointing at our
+               // closed-down cluster makes those siblings time out.
+               savedMeasureCtx helpers.SharedContext
+               savedTopNCtx    helpers.SharedContext
        )
        ginkgo.BeforeAll(func() {
+               savedMeasureCtx = casesmeasure.SharedContext
+               savedTopNCtx = casestopn.SharedContext
                path, diskCleanupFn, pathErr := test.NewSpace()
                gomega.Expect(pathErr).NotTo(gomega.HaveOccurred())
                ports, portsErr := test.AllocateFreePorts(5)
@@ -85,6 +94,12 @@ var _ = ginkgo.Describe("vectorized parity", ginkgo.Ordered, 
func() {
                casestopn.SharedContext = sharedCtx
        })
        ginkgo.AfterAll(func() {
+               // Restore the saved SharedContexts BEFORE tearing the cluster 
down
+               // so any sibling Describe that runs between this AfterAll and 
its
+               // own BeforeAll observes a live connection (the original 
cluster
+               // #1 from SynchronizedBeforeSuite is still up at this point).
+               casesmeasure.SharedContext = savedMeasureCtx
+               casestopn.SharedContext = savedTopNCtx
                if vectorizedConn != nil {
                        
gomega.Expect(vectorizedConn.Close()).To(gomega.Succeed())
                }

Reply via email to