mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-07 17:15:56 +00:00
Wrap some missing constructors using ports.
Signed-off-by: Antonio Navarro Perez <antnavper@gmail.com>
This commit is contained in:
parent
27614c42f7
commit
052aadb3b0
6 changed files with 65 additions and 134 deletions
|
|
@ -183,16 +183,12 @@ func TestClusterResize_AddNode(t *testing.T) {
|
|||
// Configure node1
|
||||
m1 := test.NewCommandNode(t, false)
|
||||
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m1.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return nil
|
||||
return m1.Start()
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("getting gossip port: %v", err)
|
||||
}
|
||||
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
err := m1.Start()
|
||||
if err != nil {
|
||||
t.Fatalf("starting second main: %v", err)
|
||||
}
|
||||
defer m1.Close()
|
||||
|
|
@ -239,15 +235,12 @@ func TestClusterResize_AddNode(t *testing.T) {
|
|||
// Configure node1
|
||||
m1 := test.NewCommandNode(t, false)
|
||||
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m1.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return nil
|
||||
return m1.Start()
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("getting gossip port: %v", err)
|
||||
}
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
err := m1.Start()
|
||||
if err != nil {
|
||||
t.Fatalf("starting second main: %v", err)
|
||||
}
|
||||
defer m1.Close()
|
||||
|
|
@ -293,15 +286,12 @@ func TestClusterResize_AddNode(t *testing.T) {
|
|||
|
||||
// Configure node1
|
||||
m1 := test.NewCommandNode(t, false)
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m1.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return nil
|
||||
return m1.Start()
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("getting gossip port: %v", err)
|
||||
}
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
err := m1.Start()
|
||||
if err != nil {
|
||||
t.Fatalf("starting second main: %v", err)
|
||||
}
|
||||
defer m1.Close()
|
||||
|
|
@ -353,15 +343,12 @@ func TestClusterResize_AddNode(t *testing.T) {
|
|||
|
||||
// Configure node1
|
||||
m1 := test.NewCommandNode(t, false)
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m1.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return nil
|
||||
return m1.Start()
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("getting gossip port: %v", err)
|
||||
}
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
err := m1.Start()
|
||||
if err != nil {
|
||||
t.Fatalf("starting second main: %v", err)
|
||||
}
|
||||
defer m1.Close()
|
||||
|
|
@ -407,15 +394,11 @@ func TestClusterResize_AddNodeConcurrentIndex(t *testing.T) {
|
|||
|
||||
// Configure node1
|
||||
m1 := test.NewCommandNode(t, false)
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m1.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return nil
|
||||
return m1.Start()
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("getting gossip port: %v", err)
|
||||
}
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
err := m1.Start()
|
||||
if err != nil {
|
||||
t.Fatalf("starting second main: %v", err)
|
||||
}
|
||||
defer m1.Close()
|
||||
|
|
@ -465,15 +448,11 @@ func TestClusterResize_AddNodeConcurrentIndex(t *testing.T) {
|
|||
|
||||
// Configure node1
|
||||
m1 := test.NewCommandNode(t, false)
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m1.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return nil
|
||||
return m1.Start()
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("getting gossip port: %v", err)
|
||||
}
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
err := m1.Start()
|
||||
if err != nil {
|
||||
t.Fatalf("starting second main: %v", err)
|
||||
}
|
||||
errc := make(chan error, 1)
|
||||
|
|
@ -529,20 +508,16 @@ func TestClusterResize_AddNodeConcurrentIndex(t *testing.T) {
|
|||
|
||||
// Configure node1
|
||||
m1 := test.NewCommandNode(t, false)
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m1.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return nil
|
||||
errc := make(chan error, 1)
|
||||
go func() {
|
||||
_, err := m0.API.CreateIndex(context.Background(), "blah", pilosa.IndexOptions{})
|
||||
errc <- err
|
||||
}()
|
||||
return m1.Start()
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("getting gossip port: %v", err)
|
||||
}
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
errc := make(chan error, 1)
|
||||
go func() {
|
||||
_, err := m0.API.CreateIndex(context.Background(), "blah", pilosa.IndexOptions{})
|
||||
errc <- err
|
||||
}()
|
||||
err := m1.Start()
|
||||
if err != nil {
|
||||
t.Fatalf("starting second main: %v", err)
|
||||
}
|
||||
defer m1.Close()
|
||||
|
|
@ -590,23 +565,18 @@ func TestClusterResize_AddNodeConcurrentIndex(t *testing.T) {
|
|||
|
||||
// Configure node1
|
||||
m1 := test.NewCommandNode(t, false)
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m1.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return nil
|
||||
errc := make(chan error, 1)
|
||||
go func() {
|
||||
_, err := m0.API.CreateIndex(context.Background(), "blah", pilosa.IndexOptions{})
|
||||
errc <- err
|
||||
}()
|
||||
return m1.Start()
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("getting gossip port: %v", err)
|
||||
}
|
||||
m1.Config.Gossip.Seeds = []string{seed}
|
||||
errc := make(chan error, 1)
|
||||
go func() {
|
||||
_, err := m0.API.CreateIndex(context.Background(), "blah", pilosa.IndexOptions{})
|
||||
errc <- err
|
||||
}()
|
||||
err := m1.Start()
|
||||
if err != nil {
|
||||
t.Fatalf("starting second main: %v", err)
|
||||
}
|
||||
defer m1.Close()
|
||||
|
||||
if !test.CheckClusterState(m0, pilosa.ClusterStateNormal, 1000) {
|
||||
t.Fatalf("unexpected node0 cluster state: %s", m0.API.State())
|
||||
|
|
@ -634,18 +604,15 @@ func TestCluster_GossipMembership(t *testing.T) {
|
|||
m1 := test.NewCommandNode(t, false)
|
||||
defer m1.Close()
|
||||
eg.Go(func() error {
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m1.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return nil
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("getting gossip port: %v", err)
|
||||
}
|
||||
// Pass invalid seed as first in list
|
||||
m1.Config.Gossip.Seeds = []string{"http://localhost:8765", seed}
|
||||
err := m1.Start()
|
||||
if err != nil {
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m1.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return m1.Start()
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("starting second main: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
|
|
@ -653,18 +620,15 @@ func TestCluster_GossipMembership(t *testing.T) {
|
|||
m2 := test.NewCommandNode(t, false)
|
||||
defer m2.Close()
|
||||
eg.Go(func() error {
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m1.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return nil
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("getting gossip port: %v", err)
|
||||
}
|
||||
// Pass invalid seed as first in list
|
||||
m2.Config.Gossip.Seeds = []string{seed, "http://localhost:8765"}
|
||||
err := m2.Start()
|
||||
if err != nil {
|
||||
if err := port.GetPort(func(p int) error {
|
||||
m2.Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return m2.Start()
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("starting second main: %v", err)
|
||||
}
|
||||
defer m2.Close()
|
||||
return nil
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -1402,13 +1402,8 @@ func TestCluster_TranslateStore(t *testing.T) {
|
|||
|
||||
if err := port.GetPort(func(p int) error {
|
||||
cluster.GetNode(0).Config.Gossip.Port = fmt.Sprintf("%d", p)
|
||||
return nil
|
||||
return cluster.GetNode(0).Start()
|
||||
}, 10); err != nil {
|
||||
t.Fatalf("getting port: %v", err)
|
||||
}
|
||||
|
||||
err := cluster.GetNode(0).Start()
|
||||
if err != nil {
|
||||
t.Fatalf("starting node 0: %v", err)
|
||||
}
|
||||
defer cluster.GetNode(0).Close()
|
||||
|
|
|
|||
|
|
@ -517,15 +517,13 @@ func (m *Command) setupNetworking() error {
|
|||
m.logger.Printf("ephemeral port %d already occupied, switching to :0 (%v)", gossipPort, err)
|
||||
if err := port.GetPort(func(p int) error {
|
||||
gossipPort = p
|
||||
return nil
|
||||
m.Config.Gossip.Port = fmt.Sprintf(":%d", gossipPort)
|
||||
m.gossipTransport, err = gossip.NewTransport(gossipHost, gossipPort, m.logger.Logger())
|
||||
return err
|
||||
}, 10); err != nil {
|
||||
return errors.Wrap(err, "getting port")
|
||||
return errors.Wrap(err, "getting transport")
|
||||
}
|
||||
m.Config.Gossip.Port = fmt.Sprintf(":%d", gossipPort)
|
||||
m.gossipTransport, err = gossip.NewTransport(gossipHost, gossipPort, m.logger.Logger())
|
||||
}
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "getting transport")
|
||||
|
||||
}
|
||||
|
||||
gossipMemberSet, err := gossip.NewMemberSet(
|
||||
|
|
|
|||
|
|
@ -260,30 +260,30 @@ func (c *Cluster) Start() error {
|
|||
|
||||
if err := port.GetPort(func(p int) error {
|
||||
cc.Config.Gossip.Port = fmt.Sprint(p)
|
||||
gossipHost := uri.Host
|
||||
gossipPort := cc.Config.Gossip.Port
|
||||
|
||||
if gossipPort == "0" || gossipPort == "" {
|
||||
panic("gossipPort not allowed to be 0!")
|
||||
}
|
||||
println("gossipPort is ", gossipPort)
|
||||
|
||||
// the first node doesn't need to wait for a seed.
|
||||
if i > 0 {
|
||||
x := <-seedCh
|
||||
cc.Config.Gossip.Seeds = []string{x}
|
||||
}
|
||||
seedCh <- fmt.Sprintf("%s:%s", gossipHost, gossipPort)
|
||||
|
||||
if err := cc.Start(); err != nil {
|
||||
return errors.Wrapf(err, "starting server %d", i)
|
||||
}
|
||||
|
||||
return nil
|
||||
}, 10); err != nil {
|
||||
return errors.Wrap(err, "getting gossip port")
|
||||
}
|
||||
|
||||
gossipHost := uri.Host
|
||||
gossipPort := cc.Config.Gossip.Port
|
||||
|
||||
if gossipPort == "0" || gossipPort == "" {
|
||||
panic("gossipPort not allowed to be 0!")
|
||||
}
|
||||
println("gossipPort is ", gossipPort)
|
||||
|
||||
// the first node doesn't need to wait for a seed.
|
||||
if i > 0 {
|
||||
x := <-seedCh
|
||||
cc.Config.Gossip.Seeds = []string{x}
|
||||
}
|
||||
seedCh <- fmt.Sprintf("%s:%s", gossipHost, gossipPort)
|
||||
|
||||
if err := cc.Start(); err != nil {
|
||||
return errors.Wrapf(err, "starting server %d", i)
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
// fixes race on gossip: time.Sleep(time.Second)
|
||||
|
|
|
|||
|
|
@ -21,30 +21,6 @@ import (
|
|||
"syscall"
|
||||
)
|
||||
|
||||
// lsn, err := net.Listen("tcp", ":0")
|
||||
// if err != nil {
|
||||
// panic(err)
|
||||
// }
|
||||
// // must be available to UDP too!
|
||||
// addr := lsn.Addr()
|
||||
// port := addr.(*net.TCPAddr).Port
|
||||
// udpConn, err := net.ListenUDP("udp4", &net.UDPAddr{
|
||||
// IP: net.IP{}, // listen on all non-multicast addresses...
|
||||
// Port: port,
|
||||
// })
|
||||
// if err != nil {
|
||||
// fmt.Printf("UDP port %v was available on tcp but not udp: %v\n", port, err)
|
||||
// lsn.Close()
|
||||
// } else {
|
||||
// _ = udpConn.Close()
|
||||
// if lsn == nil {
|
||||
// panic("lsn should never be nil")
|
||||
// }
|
||||
// pm.availPorts[i] = lsn
|
||||
// i++
|
||||
// //println("------ bulk reservation: port mapping reserves port ", lsn.Addr().(*net.TCPAddr).Port)
|
||||
// }
|
||||
|
||||
func ColonZeroString(port int) string {
|
||||
return fmt.Sprintf(":%d", port)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ package port_test
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
"testing"
|
||||
|
||||
|
|
@ -28,7 +27,6 @@ func TestPortsAreUnique(t *testing.T) {
|
|||
portmap := make(map[int]struct{})
|
||||
err := port.GetPorts(func(ports []int) error {
|
||||
for _, p := range ports {
|
||||
log.Println("PORTTT", p)
|
||||
if _, exists := portmap[p]; exists {
|
||||
panic(fmt.Sprintf("port %v was already issued!", p))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue