kademlia: improved logs, fix potential deadlock in String()

This commit is contained in:
zelig 2016-05-31 08:05:29 +02:00
parent b58a89b6e0
commit b610c58875
2 changed files with 9 additions and 5 deletions

View file

@ -32,6 +32,10 @@ func (t Time) Unix() int64 {
return time.Time(t).Unix() return time.Time(t).Unix()
} }
func (t Time) String() string {
return time.Time(t).Format("2000-01-01 20:41:00")
}
type NodeData interface { type NodeData interface {
json.Marshaler json.Marshaler
json.Unmarshaler json.Unmarshaler
@ -206,7 +210,7 @@ func (self *KadDb) findBest(bucketSize int, binsize func(int) int) (node *NodeRe
// skip already connected nodes // skip already connected nodes
if !node.connected { if !node.connected {
glog.V(logger.Detail).Infof("[KΛÐ]: kaddb record %v (PO%03d:%d) not to be retried before %v", node.Addr, po, n, node.After) glog.V(logger.Debug).Infof("[KΛÐ]: kaddb record %v (PO%03d:%d) not to be retried before %v", node.Addr, po, n, node.After)
// time since last known connection attempt // time since last known connection attempt
delta := node.After.Unix() - node.Seen.Unix() delta := node.After.Unix() - node.Seen.Unix()
@ -221,7 +225,7 @@ func (self *KadDb) findBest(bucketSize int, binsize func(int) int) (node *NodeRe
if time.Time(node.Seen).Add(self.purgeInterval).Before(time.Now()) { if time.Time(node.Seen).Add(self.purgeInterval).Before(time.Now()) {
// delete node // delete node
purge = append(purge, n) purge = append(purge, n)
glog.V(logger.Detail).Infof("[KΛÐ]: inactive node record %v (PO%03d:%d) last check: %v, next check: %v", node.Addr, po, n, node.Seen, node.After) glog.V(logger.Debug).Infof("[KΛÐ]: inactive node record %v (PO%03d:%d) last check: %v, next check: %v", node.Addr, po, n, node.Seen, node.After)
} else { } else {
// scheduling next check // scheduling next check
if (node.After == Time(time.Time{})) { if (node.After == Time(time.Time{})) {
@ -231,12 +235,12 @@ func (self *KadDb) findBest(bucketSize int, binsize func(int) int) (node *NodeRe
node.After = Time(time.Unix(time.Now().Unix()+interval, 0)) node.After = Time(time.Unix(time.Now().Unix()+interval, 0))
} }
glog.V(logger.Detail).Infof("[KΛÐ]: serve node record %v (PO%03d:%d), last check: %v, next check: %v", node.Addr, po, n, node.Seen, node.After) glog.V(logger.Debug).Infof("[KΛÐ]: serve node record %v (PO%03d:%d), last check: %v, next check: %v", node.Addr, po, n, node.Seen, node.After)
} }
found = true found = true
break ROW break ROW
} }
glog.V(logger.Detail).Infof("[KΛÐ]: kaddb record %v (PO%03d:%d) not ready. skipped. not to be retried before: %v", node.Addr, po, n, node.After) glog.V(logger.Debug).Infof("[KΛÐ]: kaddb record %v (PO%03d:%d) not ready. skipped. not to be retried before: %v", node.Addr, po, n, node.After)
} // if node.node == nil } // if node.node == nil
n++ n++
count++ count++

View file

@ -401,7 +401,7 @@ func (self *Kademlia) String() string {
var rows []string var rows []string
rows = append(rows, "=========================================================================") rows = append(rows, "=========================================================================")
rows = append(rows, fmt.Sprintf("KΛÐΞMLIΛ hive: queen's address: %v, population: %d (%d)", self.addr, self.Count(), self.DBCount())) rows = append(rows, fmt.Sprintf("KΛÐΞMLIΛ hive: queen's address: %v, population: %d (%d)", self.addr, self.count, self.DBCount()))
rows = append(rows, fmt.Sprintf("%v : MaxProx: %d, ProxBinSize: %d, BucketSize: %d, proxLimit: %d, proxSize: %d", time.Now(), self.MaxProx, self.ProxBinSize, self.BucketSize, self.proxLimit, self.proxSize)) rows = append(rows, fmt.Sprintf("%v : MaxProx: %d, ProxBinSize: %d, BucketSize: %d, proxLimit: %d, proxSize: %d", time.Now(), self.MaxProx, self.ProxBinSize, self.BucketSize, self.proxLimit, self.proxSize))
for i, b := range self.buckets { for i, b := range self.buckets {