@cryptotaxi247 / kubo / commits / ed4509923

tracking down a bug dhthell found, added asserts and better logging.

Jeromy committed Nov 21, 2014 at 18:14 UTC ed4509923cd80bd0b5cc98a32e61d77270fc1d62
4 files changed +17 -7
blockservice/blockservice.go
+1 -1
@@ -101,7 +101,6 @@ func (s *BlockService) GetBlock(ctx context.Context, k u.Key) (*blocks.Block, er
101 func (s *BlockService) GetBlocks(ctx context.Context, ks []u.Key) <-chan *blocks.Block {
102 out := make(chan *blocks.Block, 32)
103 go func() {
104 - defer close(out)
104 var toFetch []u.Key
105 for _, k := range ks {
106 block, err := s.Blockstore.Get(k)
@@ -121,6 +120,7 @@ func (s *BlockService) GetBlocks(ctx context.Context, ks []u.Key) <-chan *blocks
120 for blk := range nblocks {
121 out <- blk
122 }
123 + close(out)
124 }()
125 return out
126 }
exchange/bitswap/bitswap.go
+11 -5
@@ -197,13 +197,19 @@ func (bs *bitswap) loop(parent context.Context) {
197 }
198 }
199 case ks := <-bs.batchRequests:
200 + // TODO: implement batching on len(ks) > X for some X
201 + if len(ks) == 0 {
202 + log.Warning("Received batch request for zero blocks")
203 + continue
204 + }
205 for _, k := range ks {
206 bs.wantlist.Add(k)
202 - providers := bs.routing.FindProvidersAsync(ctx, k, maxProvidersPerRequest)
203 - err := bs.sendWantListTo(ctx, providers)
204 - if err != nil {
205 - log.Errorf("error sending wantlist: %s", err)
206 - }
207 + }
208 + providers := bs.routing.FindProvidersAsync(ctx, ks[0], maxProvidersPerRequest)
209 +
210 + err := bs.sendWantListTo(ctx, providers)
211 + if err != nil {
212 + log.Errorf("error sending wantlist: %s", err)
213 }
214 case <-parent.Done():
215 return
net/swarm/conn.go
+1 -1
@@ -182,7 +182,7 @@ func (s *Swarm) fanOut() {
182 return
183 }
184 if len(msg.Data()) >= conn.MaxMessageSize {
185 - log.Critical("Attempted to send message bigger than max size.")
185 + log.Criticalf("Attempted to send message bigger than max size. (%d)", len(msg.Data()))
186 }
187
188 s.connsLock.RLock()
unixfs/io/dagreader.go
+4
@@ -68,6 +68,7 @@ func (dr *DagReader) precalcNextBuf() error {
68 // TODO: this logic is hard to follow, do it better.
69 // NOTE: the only time this code is used, is during the
70 // importer tests, consider just changing those tests
71 + log.Warning("Running DAGReader with nil DAGService!")
72 if dr.linkPosition >= len(dr.node.Links) {
73 return io.EOF
74 }
@@ -78,6 +79,9 @@ func (dr *DagReader) precalcNextBuf() error {
79 dr.linkPosition++
80
81 } else {
82 + if dr.fetchChan == nil {
83 + panic("this is wrong.")
84 + }
85 select {
86 case nxt, ok = <-dr.fetchChan:
87 if !ok {