File tree Expand file tree Collapse file tree 2 files changed +12
-1
lines changed
Expand file tree Collapse file tree 2 files changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -20,6 +20,8 @@ def __init__(
2020 log_file = "/tmp/memberlist.log" ,
2121 custom_bind_addr = "" ,
2222 custom_advertise_addr = "" ,
23+ custom_tcp_timeout = 0 ,
24+ wait_time_after_join = 5 ,
2325 ):
2426 super (Gossip , self ).__init__ ()
2527
@@ -39,6 +41,7 @@ def __init__(
3941 log_file .encode ("utf-8" ),
4042 custom_bind_addr .encode ("utf-8" ),
4143 custom_advertise_addr .encode ("utf-8" ),
44+ custom_tcp_timeout ,
4245 )
4346 if res != 0 :
4447 raise RuntimeError ("failed to initialize memberlist" )
@@ -48,7 +51,9 @@ def __init__(
4851 if not joined :
4952 raise RuntimeError ("failed to join the group" )
5053
51- time .sleep (5 )
54+ # we need to take a sleep here because the group may add further nodes
55+ # after this node succeeded joining the group
56+ time .sleep (wait_time_after_join )
5257
5358 self ._ml_changed = False
5459 self ._cache = self .get_memberlist ()
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ import (
1212 "fmt"
1313 "github.com/hashicorp/memberlist"
1414 "os"
15+ "time"
1516)
1617
1718var list * memberlist.Memberlist
@@ -25,6 +26,7 @@ func init_memberlist(
2526 cLogFileName * C.char ,
2627 cBindAddr * C.char ,
2728 cAdvertiseAddr * C.char ,
29+ cTCPTimeout C.int ,
2830 ) C.int {
2931 var err error
3032 config := memberlist .DefaultLocalConfig ()
@@ -41,6 +43,10 @@ func init_memberlist(
4143 config .AdvertiseAddr = customAdvertiseAddr
4244 }
4345
46+ if cTCPTimeout > 0 {
47+ config .TCPTimeout = cTCPTimeout * time .Second
48+ }
49+
4450 if logFileName != "" {
4551 fmt .Printf ("log file: %s\n " , logFileName )
4652 f , err := os .Create (logFileName )
You can’t perform that action at this time.
0 commit comments