From 3b8354a1ce72a56abce9858b080c8f08bd57cb81 Mon Sep 17 00:00:00 2001 From: Garet Halliday <me@garet.holiday> Date: Thu, 14 Sep 2023 12:54:35 -0500 Subject: [PATCH] daisy chaining 11 pggats fails :( --- lib/rob/schedulers/v2/sink/sink.go | 6 ++++-- test/tester_test.go | 34 ++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/lib/rob/schedulers/v2/sink/sink.go b/lib/rob/schedulers/v2/sink/sink.go index d8473821..70e34356 100644 --- a/lib/rob/schedulers/v2/sink/sink.go +++ b/lib/rob/schedulers/v2/sink/sink.go @@ -231,8 +231,10 @@ func (T *Sink) StealFor(rhs *Sink) uuid.UUID { rhs.Enqueue(j) - for j, ok = pending.PopFront(); ok; j, ok = pending.PopFront() { - rhs.Enqueue(j) + if pending != nil { + for j, ok = pending.PopFront(); ok; j, ok = pending.PopFront() { + rhs.Enqueue(j) + } } return user diff --git a/test/tester_test.go b/test/tester_test.go index 90a92b5e..8b2580c3 100644 --- a/test/tester_test.go +++ b/test/tester_test.go @@ -47,6 +47,40 @@ func TestTester(t *testing.T) { Password: password, } + for i := 0; i < 10; i++ { + var g gat.PoolsMap + p := pool.NewPool(transaction.Apply(pool.Options{ + Credentials: creds, + })) + p.AddRecipe("runner", recipe.NewRecipe(recipe.Options{ + Dialer: control, + })) + g.Add("runner", "pool", p) + + listener, err := gat.Listen("tcp", ":0", frontends.AcceptOptions{}) + if err != nil { + t.Error(err) + return + } + port := listener.Listener.Addr().(*net.TCPAddr).Port + + go func() { + err := gat.Serve(listener, &g) + if err != nil { + t.Error(err) + } + }() + + control = dialer.Net{ + Network: "tcp", + Address: ":" + strconv.Itoa(port), + AcceptOptions: backends.AcceptOptions{ + Credentials: creds, + Database: "pool", + }, + } + } + var g gat.PoolsMap transactionPool := pool.NewPool(transaction.Apply(pool.Options{ -- GitLab