@cryptotaxi247 / kubo / commits / d357b0ac0

bitswap debug logging

Juan Batiz-Benet committed Jan 3, 2015 at 06:15 UTC d357b0ac00d447ba80f720ff6e4f4ce501c2f085
4 files changed +26 -25
exchange/bitswap/bitswap.go
+16 -17
@@ -3,7 +3,6 @@
3 package bitswap
4
5 import (
6 - "fmt"
6 "math"
7 "sync"
8 "time"
@@ -172,14 +171,14 @@ func (bs *bitswap) HasBlock(ctx context.Context, blk *blocks.Block) error {
171 }
172
173 func (bs *bitswap) sendWantlistMsgToPeer(ctx context.Context, m bsmsg.BitSwapMessage, p peer.ID) error {
175 - logd := fmt.Sprintf("%s bitswap.sendWantlistMsgToPeer(%d, %s)", bs.self, len(m.Wantlist()), p)
174 + log := log.Prefix("bitswap(%s).bitswap.sendWantlistMsgToPeer(%d, %s)", bs.self, len(m.Wantlist()), p)
175
177 - log.Debugf("%s sending wantlist", logd)
176 + log.Debug("sending wantlist")
177 if err := bs.send(ctx, p, m); err != nil {
179 - log.Errorf("%s send wantlist error: %s", logd, err)
178 + log.Errorf("send wantlist error: %s", err)
179 return err
180 }
182 - log.Debugf("%s send wantlist success", logd)
181 + log.Debugf("send wantlist success")
182 return nil
183 }
184
@@ -188,20 +187,20 @@ func (bs *bitswap) sendWantlistMsgToPeers(ctx context.Context, m bsmsg.BitSwapMe
187 panic("Cant send wantlist to nil peerchan")
188 }
189
191 - logd := fmt.Sprintf("%s bitswap.sendWantlistMsgTo(%d)", bs.self, len(m.Wantlist()))
192 - log.Debugf("%s begin", logd)
193 - defer log.Debugf("%s end", logd)
190 + log := log.Prefix("bitswap(%s).sendWantlistMsgToPeers(%d)", bs.self, len(m.Wantlist()))
191 + log.Debugf("begin")
192 + defer log.Debugf("end")
193
194 set := pset.New()
195 wg := sync.WaitGroup{}
196 for peerToQuery := range peers {
197 log.Event(ctx, "PeerToQuery", peerToQuery)
199 - logd := fmt.Sprintf("%sto(%s)", logd, peerToQuery)
198
199 if !set.TryAdd(peerToQuery) { //Do once per peer
202 - log.Debugf("%s skipped (already sent)", logd)
200 + log.Debugf("%s skipped (already sent)", peerToQuery)
201 continue
202 }
203 + log.Debugf("%s sending", peerToQuery)
204
205 wg.Add(1)
206 go func(p peer.ID) {
@@ -223,9 +222,9 @@ func (bs *bitswap) sendWantlistToPeers(ctx context.Context, peers <-chan peer.ID
222 }
223
224 func (bs *bitswap) sendWantlistToProviders(ctx context.Context) {
226 - logd := fmt.Sprintf("%s bitswap.sendWantlistToProviders", bs.self)
227 - log.Debugf("%s begin", logd)
228 - defer log.Debugf("%s end", logd)
225 + log := log.Prefix("bitswap(%s).sendWantlistToProviders ", bs.self)
226 + log.Debugf("begin")
227 + defer log.Debugf("end")
228
229 ctx, cancel := context.WithCancel(ctx)
230 defer cancel()
@@ -240,13 +239,13 @@ func (bs *bitswap) sendWantlistToProviders(ctx context.Context) {
239 go func(k u.Key) {
240 defer wg.Done()
241
243 - logd := fmt.Sprintf("%s(entry: %s)", logd, k)
244 - log.Debugf("%s asking dht for providers", logd)
242 + log := log.Prefix("(entry: %s) ", k)
243 + log.Debug("asking dht for providers")
244
245 child, _ := context.WithTimeout(ctx, providerRequestTimeout)
246 providers := bs.network.FindProvidersAsync(child, k, maxProvidersPerRequest)
247 for prov := range providers {
249 - log.Debugf("%s dht returned provider %s. send wantlist", logd, prov)
248 + log.Debugf("dht returned provider %s. send wantlist", prov)
249 sendToPeers <- prov
250 }
251 }(e.Key)
@@ -259,7 +258,7 @@ func (bs *bitswap) sendWantlistToProviders(ctx context.Context) {
258
259 err := bs.sendWantlistToPeers(ctx, sendToPeers)
260 if err != nil {
262 - log.Errorf("%s sendWantlistToPeers error: %s", logd, err)
261 + log.Errorf("sendWantlistToPeers error: %s", err)
262 }
263 }
264
exchange/bitswap/decision/engine.go
+9 -2
@@ -8,7 +8,7 @@ import (
8 bsmsg "github.com/jbenet/go-ipfs/exchange/bitswap/message"
9 wl "github.com/jbenet/go-ipfs/exchange/bitswap/wantlist"
10 peer "github.com/jbenet/go-ipfs/p2p/peer"
11 - u "github.com/jbenet/go-ipfs/util"
11 + eventlog "github.com/jbenet/go-ipfs/util/eventlog"
12 )
13
14 // TODO consider taking responsibility for other types of requests. For
@@ -41,7 +41,7 @@ import (
41 // whatever it sees fit to produce desired outcomes (get wanted keys
42 // quickly, maintain good relationships with peers, etc).
43
44 -var log = u.Logger("engine")
44 +var log = eventlog.Logger("engine")
45
46 const (
47 sizeOutboxChan = 4
@@ -140,6 +140,10 @@ func (e *Engine) Peers() []peer.ID {
140 // MessageReceived performs book-keeping. Returns error if passed invalid
141 // arguments.
142 func (e *Engine) MessageReceived(p peer.ID, m bsmsg.BitSwapMessage) error {
143 + log := log.Prefix("Engine.MessageReceived(%s)", p)
144 + log.Debugf("enter")
145 + defer log.Debugf("exit")
146 +
147 newWorkExists := false
148 defer func() {
149 if newWorkExists {
@@ -156,9 +160,11 @@ func (e *Engine) MessageReceived(p peer.ID, m bsmsg.BitSwapMessage) error {
160 }
161 for _, entry := range m.Wantlist() {
162 if entry.Cancel {
163 + log.Debug("cancel", entry.Key)
164 l.CancelWant(entry.Key)
165 e.peerRequestQueue.Remove(entry.Key, p)
166 } else {
167 + log.Debug("wants", entry.Key, entry.Priority)
168 l.Wants(entry.Key, entry.Priority)
169 if exists, err := e.bs.Has(entry.Key); err == nil && exists {
170 newWorkExists = true
@@ -169,6 +175,7 @@ func (e *Engine) MessageReceived(p peer.ID, m bsmsg.BitSwapMessage) error {
175
176 for _, block := range m.Blocks() {
177 // FIXME extract blocks.NumBytes(block) or block.NumBytes() method
178 + log.Debug("got block %s %d bytes", block.Key(), len(block.Data))
179 l.ReceivedBytes(len(block.Data))
180 for _, l := range e.ledgerMap {
181 if l.WantListContains(block.Key()) {
exchange/bitswap/network/ipfs_impl.go
+1
@@ -55,6 +55,7 @@ func (bsnet *impl) SendRequest(
55 p peer.ID,
56 outgoing bsmsg.BitSwapMessage) (bsmsg.BitSwapMessage, error) {
57
58 + log.Debugf("bsnet SendRequest to %s", p)
59 s, err := bsnet.host.NewStream(ProtocolBitswap, p)
60 if err != nil {
61 return nil, err
routing/dht/dht_net.go
-6
@@ -87,15 +87,11 @@ func (dht *IpfsDHT) sendRequest(ctx context.Context, p peer.ID, pmes *pb.Message
87
88 start := time.Now()
89
90 - log.Debugf("%s writing", dht.self)
90 if err := w.WriteMsg(pmes); err != nil {
91 return nil, err
92 }
93 log.Event(ctx, "dhtSentMessage", dht.self, p, pmes)
94
96 - log.Debugf("%s reading", dht.self)
97 - defer log.Debugf("%s done", dht.self)
98 -
95 rpmes := new(pb.Message)
96 if err := r.ReadMsg(rpmes); err != nil {
97 return nil, err
@@ -125,12 +121,10 @@ func (dht *IpfsDHT) sendMessage(ctx context.Context, p peer.ID, pmes *pb.Message
121 cw := ctxutil.NewWriter(ctx, s) // ok to use. we defer close stream in this func
122 w := ggio.NewDelimitedWriter(cw)
123
128 - log.Debugf("%s writing", dht.self)
124 if err := w.WriteMsg(pmes); err != nil {
125 return err
126 }
127 log.Event(ctx, "dhtSentMessage", dht.self, p, pmes)
133 - log.Debugf("%s done", dht.self)
128 return nil
129 }
130