deals: Log fetch errors
This commit is contained in:
parent
feee3893bf
commit
5e176eed78
@ -52,6 +52,11 @@ type Handler struct {
|
|||||||
stopped chan struct{}
|
stopped chan struct{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type fetchResult struct {
|
||||||
|
id cid.Cid
|
||||||
|
err error
|
||||||
|
}
|
||||||
|
|
||||||
func NewHandler(w *wallet.Wallet, ds dtypes.MetadataDS, sb *sectorbuilder.SectorBuilder, dag dtypes.StagingDAG) (*Handler, error) {
|
func NewHandler(w *wallet.Wallet, ds dtypes.MetadataDS, sb *sectorbuilder.SectorBuilder, dag dtypes.StagingDAG) (*Handler, error) {
|
||||||
addr, err := ds.Get(datastore.NewKey("miner-address"))
|
addr, err := ds.Get(datastore.NewKey("miner-address"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -79,7 +84,7 @@ func (h *Handler) Run(ctx context.Context) {
|
|||||||
go func() {
|
go func() {
|
||||||
defer log.Error("quitting deal handler loop")
|
defer log.Error("quitting deal handler loop")
|
||||||
defer close(h.stopped)
|
defer close(h.stopped)
|
||||||
fetched := make(chan cid.Cid)
|
fetched := make(chan fetchResult)
|
||||||
|
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
@ -95,17 +100,20 @@ func (h *Handler) Run(ctx context.Context) {
|
|||||||
go func(id cid.Cid) {
|
go func(id cid.Cid) {
|
||||||
log.Info("fetching data for a deal")
|
log.Info("fetching data for a deal")
|
||||||
err := merkledag.FetchGraph(ctx, deal.Ref, h.dag)
|
err := merkledag.FetchGraph(ctx, deal.Ref, h.dag)
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
select {
|
select {
|
||||||
case fetched <- id:
|
case fetched <- fetchResult{
|
||||||
|
id: id,
|
||||||
|
err: err,
|
||||||
|
}:
|
||||||
case <-h.stop:
|
case <-h.stop:
|
||||||
}
|
}
|
||||||
log.Info("Fetched!")
|
|
||||||
}(deal.ProposalCid)
|
}(deal.ProposalCid)
|
||||||
case id := <-fetched:
|
case result := <-fetched:
|
||||||
|
if result.err != nil {
|
||||||
|
log.Errorf("failed to fetch data for deal: %s", result.err)
|
||||||
|
// TODO: fail deal
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: send response if client still there
|
// TODO: send response if client still there
|
||||||
// TODO: staging
|
// TODO: staging
|
||||||
|
|
||||||
@ -113,7 +121,7 @@ func (h *Handler) Run(ctx context.Context) {
|
|||||||
log.Info("sealing deal")
|
log.Info("sealing deal")
|
||||||
|
|
||||||
var deal MinerDeal
|
var deal MinerDeal
|
||||||
err := h.deals.MutateMiner(id, func(in MinerDeal) (MinerDeal, error) {
|
err := h.deals.MutateMiner(result.id, func(in MinerDeal) (MinerDeal, error) {
|
||||||
in.State = Sealing
|
in.State = Sealing
|
||||||
deal = in
|
deal = in
|
||||||
return in, nil
|
return in, nil
|
||||||
|
Loading…
Reference in New Issue
Block a user