@cryptotaxi247 / kubo / commits / 7bb3bfbc3

Bubble ErrNotFound improvements

Hector Sanjuan committed Mar 2, 2022 at 16:25 UTC 7bb3bfbc336860c08a951dc3d77a564661df56ed
8 files changed +34 -28
blocks/blockstoreutil/remove.go
+2 -1
@@ -9,6 +9,7 @@ import (
9 cid "github.com/ipfs/go-cid"
10 bs "github.com/ipfs/go-ipfs-blockstore"
11 pin "github.com/ipfs/go-ipfs-pinner"
12 + format "github.com/ipfs/go-ipld-format"
13 )
14
15 // RemovedBlock is used to represent the result of removing a block.
@@ -54,7 +55,7 @@ func RmBlocks(ctx context.Context, blocks bs.GCBlockstore, pins pin.Pinner, cids
55 continue
56 }
57 if !has && !opts.Force {
57 - out <- &RemovedBlock{Hash: c.String(), Error: bs.ErrNotFound.Error()}
58 + out <- &RemovedBlock{Hash: c.String(), Error: format.ErrNotFound{Cid: c}.Error()}
59 continue
60 }
61
core/commands/dag/export.go
+1 -2
@@ -63,8 +63,7 @@ func dagExport(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment
63 err = <-errCh
64
65 // minimal user friendliness
66 - if err != nil &&
67 - err == ipld.ErrNotFound {
66 + if ipld.IsNotFound(err) {
67 explicitOffline, _ := req.Options["offline"].(bool)
68 if explicitOffline {
69 err = fmt.Errorf("%s (currently offline, perhaps retry without the offline flag)", err)
core/commands/files.go
+1 -1
@@ -297,7 +297,7 @@ func walkBlock(ctx context.Context, dagserv ipld.DAGService, nd ipld.Node) (bool
297 for _, link := range nd.Links() {
298 child, err := dagserv.Get(ctx, link.Cid)
299
300 - if err == ipld.ErrNotFound {
300 + if ipld.IsNotFound(err) {
301 local = false
302 continue
303 }
core/coreapi/block.go
+2
@@ -107,6 +107,8 @@ func (api *BlockAPI) Rm(ctx context.Context, p path.Path, opts ...caopts.BlockRm
107 return errors.New("got unexpected output from util.RmBlocks")
108 }
109
110 + // Because errors come as strings we lose information about
111 + // the error type.
112 if remBlock.Error != "" {
113 return errors.New(remBlock.Error)
114 }
fuse/readonly/readonly_unix.go
+1 -5
@@ -188,13 +188,9 @@ func (s *Node) Lookup(ctx context.Context, name string) (fs.Node, error) {
188 }
189
190 nd, err := s.Ipfs.DAG.Get(ctx, link.Cid)
191 - switch err {
192 - case ipld.ErrNotFound:
193 - default:
191 + if err != nil && !ipld.IsNotFound(err) {
192 log.Errorf("fuse lookup %q: %s", name, err)
193 return nil, err
196 - case nil:
197 - // noop
194 }
195
196 return &Node{Ipfs: s.Ipfs, Nd: nd}, nil
gc/gc.go
+1 -1
@@ -233,7 +233,7 @@ func ColoredSet(ctx context.Context, pn pin.Pinner, ng ipld.NodeGetter, bestEffo
233
234 bestEffortGetLinks := func(ctx context.Context, cid cid.Cid) ([]*ipld.Link, error) {
235 links, err := ipld.GetLinks(ctx, ng, cid)
236 - if err != nil && err != ipld.ErrNotFound {
236 + if err != nil && !ipld.IsNotFound(err) {
237 errors = true
238 select {
239 case output <- Result{Error: &CannotFetchLinksError{cid, err}}:
go.mod
+8 -8
@@ -13,9 +13,9 @@ require (
13 github.com/gabriel-vasile/mimetype v1.4.0
14 github.com/go-bindata/go-bindata/v3 v3.1.3
15 github.com/hashicorp/go-multierror v1.1.1
16 - github.com/ipfs/go-bitswap v0.5.1
16 + github.com/ipfs/go-bitswap v0.5.2-0.20220302142610-595ae6937936
17 github.com/ipfs/go-block-format v0.0.3
18 - github.com/ipfs/go-blockservice v0.2.1
18 + github.com/ipfs/go-blockservice v0.2.2-0.20220302144055-931fbecb724e
19 github.com/ipfs/go-cid v0.1.0
20 github.com/ipfs/go-cidutil v0.0.2
21 github.com/ipfs/go-datastore v0.5.1
@@ -25,15 +25,15 @@ require (
25 github.com/ipfs/go-ds-leveldb v0.5.0
26 github.com/ipfs/go-ds-measure v0.2.0
27 github.com/ipfs/go-fetcher v1.6.1
28 - github.com/ipfs/go-filestore v1.1.0
28 + github.com/ipfs/go-filestore v1.1.1-0.20220302151633-1dfe2386cda8
29 github.com/ipfs/go-fs-lock v0.0.7
30 github.com/ipfs/go-graphsync v0.11.0
31 - github.com/ipfs/go-ipfs-blockstore v1.1.2
31 + github.com/ipfs/go-ipfs-blockstore v1.1.3-0.20220302142350-af197de1c3da
32 github.com/ipfs/go-ipfs-chunker v0.0.5
33 github.com/ipfs/go-ipfs-cmds v0.6.0
34 github.com/ipfs/go-ipfs-config v0.19.0
35 github.com/ipfs/go-ipfs-exchange-interface v0.1.0
36 - github.com/ipfs/go-ipfs-exchange-offline v0.1.1
36 + github.com/ipfs/go-ipfs-exchange-offline v0.1.2-0.20220302144615-a919970e8153
37 github.com/ipfs/go-ipfs-files v0.0.9
38 github.com/ipfs/go-ipfs-keystore v0.0.2
39 github.com/ipfs/go-ipfs-pinner v0.2.1
@@ -42,12 +42,12 @@ require (
42 github.com/ipfs/go-ipfs-routing v0.2.1
43 github.com/ipfs/go-ipfs-util v0.0.2
44 github.com/ipfs/go-ipld-cbor v0.0.5
45 - github.com/ipfs/go-ipld-format v0.2.0
45 + github.com/ipfs/go-ipld-format v0.2.1-0.20220302134852-d02e0e18fc65
46 github.com/ipfs/go-ipld-git v0.1.1
47 github.com/ipfs/go-ipld-legacy v0.1.0
48 github.com/ipfs/go-ipns v0.1.2
49 github.com/ipfs/go-log v1.0.5
50 - github.com/ipfs/go-merkledag v0.5.1
50 + github.com/ipfs/go-merkledag v0.5.2-0.20220302145706-4c7f7bfbe598
51 github.com/ipfs/go-metrics-interface v0.0.1
52 github.com/ipfs/go-metrics-prometheus v0.0.2
53 github.com/ipfs/go-mfs v0.2.1
@@ -57,7 +57,7 @@ require (
57 github.com/ipfs/go-unixfs v0.3.1
58 github.com/ipfs/go-unixfsnode v1.1.3
59 github.com/ipfs/go-verifcid v0.0.1
60 - github.com/ipfs/interface-go-ipfs-core v0.5.2
60 + github.com/ipfs/interface-go-ipfs-core v0.5.3-0.20220302172844-ebde7297b2a0
61 github.com/ipfs/tar-utils v0.0.2
62 github.com/ipld/go-car v0.3.2
63 github.com/ipld/go-codec-dagpb v1.3.0
go.sum
+18 -10
@@ -397,8 +397,9 @@ github.com/ipfs/go-bitswap v0.1.0/go.mod h1:FFJEf18E9izuCqUtHxbWEvq+reg7o4CW5wSA
397 github.com/ipfs/go-bitswap v0.1.2/go.mod h1:qxSWS4NXGs7jQ6zQvoPY3+NmOfHHG47mhkiLzBpJQIs=
398 github.com/ipfs/go-bitswap v0.1.8/go.mod h1:TOWoxllhccevbWFUR2N7B1MTSVVge1s6XSMiCSA4MzM=
399 github.com/ipfs/go-bitswap v0.3.4/go.mod h1:4T7fvNv/LmOys+21tnLzGKncMeeXUYUd1nUiJ2teMvI=
400 -github.com/ipfs/go-bitswap v0.5.1 h1:721YAEDBnLIrvcIMkCHCdqp34hA8jwL9yKMkyJpSpco=
400 github.com/ipfs/go-bitswap v0.5.1/go.mod h1:P+ckC87ri1xFLvk74NlXdP0Kj9RmWAh4+H78sC6Qopo=
401 +github.com/ipfs/go-bitswap v0.5.2-0.20220302142610-595ae6937936 h1:1Ps0PF7jFKqO8/QwHaFvwCpQ0AITuYSbOI50gts3OiM=
402 +github.com/ipfs/go-bitswap v0.5.2-0.20220302142610-595ae6937936/go.mod h1:Ro9XYuNUQxtx/YIZm+OA5mEnADStr5fyowhSUIgZtaU=
403 github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc=
404 github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY=
405 github.com/ipfs/go-block-format v0.0.3 h1:r8t66QstRp/pd/or4dpnbVfXT5Gt7lOqRvC+/dDTpMc=
@@ -407,8 +408,9 @@ github.com/ipfs/go-blockservice v0.0.7/go.mod h1:EOfb9k/Y878ZTRY/CH0x5+ATtaipfbR
408 github.com/ipfs/go-blockservice v0.1.0/go.mod h1:hzmMScl1kXHg3M2BjTymbVPjv627N7sYcvYaKbop39M=
409 github.com/ipfs/go-blockservice v0.1.4/go.mod h1:OTZhFpkgY48kNzbgyvcexW9cHrpjBYIjSR0KoDOFOLU=
410 github.com/ipfs/go-blockservice v0.1.7/go.mod h1:GmS+BAt4hrwBKkzE11AFDQUrnvqjwFatGS2MY7wOjEM=
410 -github.com/ipfs/go-blockservice v0.2.1 h1:NJ4j/cwEfIg60rzAWcCIxRtOwbf6ZPK49MewNxObCPQ=
411 github.com/ipfs/go-blockservice v0.2.1/go.mod h1:k6SiwmgyYgs4M/qt+ww6amPeUH9EISLRBnvUurKJhi8=
412 +github.com/ipfs/go-blockservice v0.2.2-0.20220302144055-931fbecb724e h1:Nqyg2HAa7lS19g6N7UTpbiJQFHKSO7yp+DvcqY4iBFk=
413 +github.com/ipfs/go-blockservice v0.2.2-0.20220302144055-931fbecb724e/go.mod h1:0rezJNcrjTA32XEEXiV/DQAztHZrVduLb7GiktRq6lg=
414 github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
415 github.com/ipfs/go-cid v0.0.2/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
416 github.com/ipfs/go-cid v0.0.3/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM=
@@ -455,8 +457,8 @@ github.com/ipfs/go-ds-measure v0.2.0/go.mod h1:SEUD/rE2PwRa4IQEC5FuNAmjJCyYObZr9
457 github.com/ipfs/go-fetcher v1.5.0/go.mod h1:5pDZ0393oRF/fHiLmtFZtpMNBQfHOYNPtryWedVuSWE=
458 github.com/ipfs/go-fetcher v1.6.1 h1:UFuRVYX5AIllTiRhi5uK/iZkfhSpBCGX7L70nSZEmK8=
459 github.com/ipfs/go-fetcher v1.6.1/go.mod h1:27d/xMV8bodjVs9pugh/RCjjK2OZ68UgAMspMdingNo=
458 -github.com/ipfs/go-filestore v1.1.0 h1:Pu4tLBi1bucu6/HU9llaOmb9yLFk/sgP+pW764zNDoE=
459 -github.com/ipfs/go-filestore v1.1.0/go.mod h1:6e1/5Y6NvLuCRdmda/KA4GUhXJQ3Uat6vcWm2DJfxc8=
460 +github.com/ipfs/go-filestore v1.1.1-0.20220302151633-1dfe2386cda8 h1:e92gjZ0hO8CCcdi7UN18ghULbd/ZoP524Qm9iZltaF0=
461 +github.com/ipfs/go-filestore v1.1.1-0.20220302151633-1dfe2386cda8/go.mod h1:EQKwAmJqrW20KGt+xU2DVK2RBFgcwYTF9eNM/M0EfKs=
462 github.com/ipfs/go-fs-lock v0.0.7 h1:6BR3dajORFrFTkb5EpCUFIAypsoxpGpDSVUdFwzgL9U=
463 github.com/ipfs/go-fs-lock v0.0.7/go.mod h1:Js8ka+FNYmgQRLrRXzU3CB/+Csr1BwrRilEcvYrHhhc=
464 github.com/ipfs/go-graphsync v0.11.0 h1:PiiD5CnoC3xEHMW8d6uBGqGcoTwiMB5d9CORIEyF6iA=
@@ -466,9 +468,8 @@ github.com/ipfs/go-ipfs-blockstore v0.1.0/go.mod h1:5aD0AvHPi7mZc6Ci1WCAhiBQu2Is
468 github.com/ipfs/go-ipfs-blockstore v0.1.4/go.mod h1:Jxm3XMVjh6R17WvxFEiyKBLUGr86HgIYJW/D/MwqeYQ=
469 github.com/ipfs/go-ipfs-blockstore v0.1.6/go.mod h1:Jxm3XMVjh6R17WvxFEiyKBLUGr86HgIYJW/D/MwqeYQ=
470 github.com/ipfs/go-ipfs-blockstore v0.2.1/go.mod h1:jGesd8EtCM3/zPgx+qr0/feTXGUeRai6adgwC+Q+JvE=
469 -github.com/ipfs/go-ipfs-blockstore v1.1.1/go.mod h1:w51tNR9y5+QXB0wkNcHt4O2aSZjTdqaEWaQdSxEyUOY=
470 -github.com/ipfs/go-ipfs-blockstore v1.1.2 h1:WCXoZcMYnvOTmlpX+RSSnhVN0uCmbWTeepTGX5lgiXw=
471 -github.com/ipfs/go-ipfs-blockstore v1.1.2/go.mod h1:w51tNR9y5+QXB0wkNcHt4O2aSZjTdqaEWaQdSxEyUOY=
471 +github.com/ipfs/go-ipfs-blockstore v1.1.3-0.20220302142350-af197de1c3da h1:/TU6rnYvsuKOwqpWxQXtO/K1Uj7IYY2GFE0WUr4Gh2Y=
472 +github.com/ipfs/go-ipfs-blockstore v1.1.3-0.20220302142350-af197de1c3da/go.mod h1:dFOiy6XAxbK5x1Jvx7OAO1rQsrcyHxaXdTLWN085QoE=
473 github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ=
474 github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk=
475 github.com/ipfs/go-ipfs-chunker v0.0.1/go.mod h1:tWewYK0we3+rMbOh7pPFGDyypCtvGcBFymgY4rSDLAw=
@@ -489,8 +490,9 @@ github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFq
490 github.com/ipfs/go-ipfs-exchange-interface v0.1.0 h1:TiMekCrOGQuWYtZO3mf4YJXDIdNgnKWZ9IE3fGlnWfo=
491 github.com/ipfs/go-ipfs-exchange-interface v0.1.0/go.mod h1:ych7WPlyHqFvCi/uQI48zLZuAWVP5iTQPXEfVaw5WEI=
492 github.com/ipfs/go-ipfs-exchange-offline v0.0.1/go.mod h1:WhHSFCVYX36H/anEKQboAzpUws3x7UeEGkzQc3iNkM0=
492 -github.com/ipfs/go-ipfs-exchange-offline v0.1.1 h1:mEiXWdbMN6C7vtDG21Fphx8TGCbZPpQnz/496w/PL4g=
493 github.com/ipfs/go-ipfs-exchange-offline v0.1.1/go.mod h1:vTiBRIbzSwDD0OWm+i3xeT0mO7jG2cbJYatp3HPk5XY=
494 +github.com/ipfs/go-ipfs-exchange-offline v0.1.2-0.20220302144615-a919970e8153 h1:GtLORXk45GpVMfhPz+IyZ9YNAe36BQ+rKZvem5Bo49Y=
495 +github.com/ipfs/go-ipfs-exchange-offline v0.1.2-0.20220302144615-a919970e8153/go.mod h1:fjwwh1LDdR2LrZ0qYeDbWx4pgdTq+Tw48YaLBjCS2qk=
496 github.com/ipfs/go-ipfs-files v0.0.3/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4=
497 github.com/ipfs/go-ipfs-files v0.0.8/go.mod h1:wiN/jSG8FKyk7N0WyctKSvq3ljIa2NNTiZB55kpTdOs=
498 github.com/ipfs/go-ipfs-files v0.0.9 h1:OFyOfmuVDu9c5YtjSDORmwXzE6fmZikzZpzsnNkgFEg=
@@ -520,8 +522,9 @@ github.com/ipfs/go-ipld-cbor v0.0.5 h1:ovz4CHKogtG2KB/h1zUp5U0c/IzZrL435rCh5+K/5
522 github.com/ipfs/go-ipld-cbor v0.0.5/go.mod h1:BkCduEx3XBCO6t2Sfo5BaHzuok7hbhdMm9Oh8B2Ftq4=
523 github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms=
524 github.com/ipfs/go-ipld-format v0.0.2/go.mod h1:4B6+FM2u9OJ9zCV+kSbgFAZlOrv1Hqbf0INGQgiKf9k=
523 -github.com/ipfs/go-ipld-format v0.2.0 h1:xGlJKkArkmBvowr+GMCX0FEZtkro71K1AwiKnL37mwA=
525 github.com/ipfs/go-ipld-format v0.2.0/go.mod h1:3l3C1uKoadTPbeNfrDi+xMInYKlx2Cvg1BuydPSdzQs=
526 +github.com/ipfs/go-ipld-format v0.2.1-0.20220302134852-d02e0e18fc65 h1:xxnD+fUS7hziDAnfrn3qsl0ql18DOjq4rwvzBTCr1iA=
527 +github.com/ipfs/go-ipld-format v0.2.1-0.20220302134852-d02e0e18fc65/go.mod h1:co/SdBE8h99968X0hViiw1MNlh6fvxxnHpvVLnH7jSM=
528 github.com/ipfs/go-ipld-git v0.1.1 h1:TWGnZjS0htmEmlMFEkA3ogrNCqWjIxwr16x1OsdhG+Y=
529 github.com/ipfs/go-ipld-git v0.1.1/go.mod h1:+VyMqF5lMcJh4rwEppV0e6g4nCCHXThLYYDpKUkJubI=
530 github.com/ipfs/go-ipld-legacy v0.1.0 h1:wxkkc4k8cnvIGIjPO0waJCe7SHEyFgl+yQdafdjGrpA=
@@ -545,8 +548,9 @@ github.com/ipfs/go-merkledag v0.0.6/go.mod h1:QYPdnlvkOg7GnQRofu9XZimC5ZW5Wi3bKy
548 github.com/ipfs/go-merkledag v0.2.3/go.mod h1:SQiXrtSts3KGNmgOzMICy5c0POOpUNQLvB3ClKnBAlk=
549 github.com/ipfs/go-merkledag v0.3.2/go.mod h1:fvkZNNZixVW6cKSZ/JfLlON5OlgTXNdRLz0p6QG/I2M=
550 github.com/ipfs/go-merkledag v0.4.0/go.mod h1:XshXBkhyeS63YNGisLL1uDSfuTyrQIxVUOg3ojR5MOE=
548 -github.com/ipfs/go-merkledag v0.5.1 h1:tr17GPP5XtPhvPPiWtu20tSGZiZDuTaJRXBLcr79Umk=
551 github.com/ipfs/go-merkledag v0.5.1/go.mod h1:cLMZXx8J08idkp5+id62iVftUQV+HlYJ3PIhDfZsjA4=
552 +github.com/ipfs/go-merkledag v0.5.2-0.20220302145706-4c7f7bfbe598 h1:LBBmuAf+riiqOFU/YbErKaHF2kZ5ajc1cjy2puuNyLs=
553 +github.com/ipfs/go-merkledag v0.5.2-0.20220302145706-4c7f7bfbe598/go.mod h1:nYh/2ZlUEAHL8glS7y93pPA3Ut7JHkY5fYThsrp8+RY=
554 github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg=
555 github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY=
556 github.com/ipfs/go-metrics-prometheus v0.0.2 h1:9i2iljLg12S78OhC6UAiXi176xvQGiZaGVF1CUVdE+s=
@@ -580,6 +584,10 @@ github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZ
584 github.com/ipfs/interface-go-ipfs-core v0.4.0/go.mod h1:UJBcU6iNennuI05amq3FQ7g0JHUkibHFAfhfUIy927o=
585 github.com/ipfs/interface-go-ipfs-core v0.5.2 h1:m1/5U+WpOK2ZE7Qzs5iIu80QM1ZA3aWYi2Ilwpi+tdg=
586 github.com/ipfs/interface-go-ipfs-core v0.5.2/go.mod h1:lNBJrdXHtWS46evMPBdWtDQMDsrKcGbxCOGoKLkztOE=
587 +github.com/ipfs/interface-go-ipfs-core v0.5.3-0.20220302154624-b7f863f05698 h1:PidDOk6cfYYKsO+1LVRpKQUccKJMxB/7It75TATpruA=
588 +github.com/ipfs/interface-go-ipfs-core v0.5.3-0.20220302154624-b7f863f05698/go.mod h1:1wpi0hALzziD775jYmRiehbakCmxZA3XTlTlF3D2z2c=
589 +github.com/ipfs/interface-go-ipfs-core v0.5.3-0.20220302172844-ebde7297b2a0 h1:Y+PmGrp9gF9UTIQHMc6PGEMvV6Ylk5zAQJYyIg8z5Mk=
590 +github.com/ipfs/interface-go-ipfs-core v0.5.3-0.20220302172844-ebde7297b2a0/go.mod h1:1wpi0hALzziD775jYmRiehbakCmxZA3XTlTlF3D2z2c=
591 github.com/ipfs/tar-utils v0.0.2 h1:UNgHB4x/PPzbMkmJi+7EqC9LNMPDztOVSnx1HAqSNg4=
592 github.com/ipfs/tar-utils v0.0.2/go.mod h1:4qlnRWgTVljIMhSG2SqRYn66NT+3wrv/kZt9V+eqxDM=
593 github.com/ipld/go-car v0.3.2 h1:V9wt/80FNfbMRWSD98W5br6fyjUAyVgI2lDOTZX16Lg=