Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9416ceb7de | ||
|
|
2cbc29ea09 | ||
|
|
0b30261e5c | ||
|
|
ea4b57854b | ||
|
|
5c656133e2 | ||
|
|
1a5e38ecf9 | ||
|
|
887f00856e | ||
|
|
e68b8e96c7 | ||
|
|
c32b8af65f |
@@ -1,5 +1,28 @@
|
||||
# Lotus changelog
|
||||
|
||||
# 1.18.2 / 2022-12-10
|
||||
|
||||
This is an OPTIONAL patch release that fixes a recently reported bug, where the miner process crashes due to a panic during an AddPiece process. More details can be found [here](https://github.com/filecoin-project/lotus/pull/9822).
|
||||
|
||||
|
||||
# 1.18.1 / 2022-11-28
|
||||
|
||||
This is a small OPTIONAL patch release for the mandatory v1.18.0 release that supports the Filecoin nv17 Shark Upgrade.
|
||||
We highly recommend you to read the full [v1.18.0 release note](https://github.com/filecoin-project/lotus/releases/tag/v1.18.0) if you haven't already.
|
||||
|
||||
Note to SPs:
|
||||
If you are running into issue with updating your miner node from an earlier release and is failing to restart your miner, check your `journalctl` and see if you noticed the following error:
|
||||
```
|
||||
New sector storage: <%d>
|
||||
Nov 19 15:03:43 g0lotus01 lotus-miner[<id>]: ERROR: creating node: starting node: could not build arguments for function "reflect".makeFuncStub (/usr/local/go/src/reflect/asm_amd64.s:28): failed to build *paths.Local: received non-nil error from function "reflect".makeFuncStub (/usr/local/go/src/reflect/asm_amd64.s:28): opening path /media/data1/lotusstorage: path with ID <%d> already opened: '<path>'
|
||||
```
|
||||
If so, this check is introduced via [#9032](https://github.com/filecoin-project/lotus/pull/9032), precisely this [line](https://github.com/filecoin-project/lotus/blame/master/storage/paths/local.go#L164-L166
|
||||
). It's added to prevents double-attaching paths given it's now possible to manipulate paths at runtime. Verify storage.json configs if you encounter this error or remove the undesired depulicated path as you see fit accordingly.
|
||||
|
||||
## Bug Fixes
|
||||
|
||||
- fix: cli: check found before dereferencing SectorInfo #9703
|
||||
|
||||
# 1.18.0 / 2022-11-15
|
||||
|
||||
> ⚠️ **Please note that from Lotus v1.17.2&^ will require a Go-version of v1.18.1&^**
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -37,7 +37,7 @@ func BuildTypeString() string {
|
||||
}
|
||||
|
||||
// BuildVersion is the local build version
|
||||
const BuildVersion = "1.18.0"
|
||||
const BuildVersion = "1.18.2"
|
||||
|
||||
func UserVersion() string {
|
||||
if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" {
|
||||
|
||||
@@ -918,12 +918,12 @@ var sectorsRenewCmd = &cli.Command{
|
||||
}
|
||||
|
||||
si, found := activeSectorsInfo[abi.SectorNumber(id)]
|
||||
if len(si.DealIDs) > 0 && cctx.Bool("only-cc") {
|
||||
continue
|
||||
}
|
||||
if !found {
|
||||
return xerrors.Errorf("sector %d is not active", id)
|
||||
}
|
||||
if len(si.DealIDs) > 0 && cctx.Bool("only-cc") {
|
||||
continue
|
||||
}
|
||||
|
||||
sis = append(sis, si)
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ USAGE:
|
||||
lotus-miner [global options] command [command options] [arguments...]
|
||||
|
||||
VERSION:
|
||||
1.18.0
|
||||
1.18.2
|
||||
|
||||
COMMANDS:
|
||||
init Initialize a lotus miner repo
|
||||
|
||||
@@ -7,7 +7,7 @@ USAGE:
|
||||
lotus-worker [global options] command [command options] [arguments...]
|
||||
|
||||
VERSION:
|
||||
1.18.0
|
||||
1.18.2
|
||||
|
||||
COMMANDS:
|
||||
run Start lotus worker
|
||||
|
||||
@@ -7,7 +7,7 @@ USAGE:
|
||||
lotus [global options] command [command options] [arguments...]
|
||||
|
||||
VERSION:
|
||||
1.18.0
|
||||
1.18.2
|
||||
|
||||
COMMANDS:
|
||||
daemon Start a lotus daemon process
|
||||
|
||||
@@ -443,6 +443,9 @@ func (m *Sealing) updateInput(ctx context.Context, sp abi.RegisteredSealProof) e
|
||||
if err != nil {
|
||||
return 0, big.Zero(), err
|
||||
}
|
||||
if onChainInfo == nil {
|
||||
return 0, big.Zero(), xerrors.Errorf("sector info for sector %d not found", sn)
|
||||
}
|
||||
memo[sn] = struct {
|
||||
e abi.ChainEpoch
|
||||
p abi.TokenAmount
|
||||
@@ -488,10 +491,6 @@ func (m *Sealing) updateInput(ctx context.Context, sp abi.RegisteredSealProof) e
|
||||
continue
|
||||
}
|
||||
if !ok {
|
||||
exp, _, _ := getExpirationCached(sector.number)
|
||||
|
||||
// todo move this log into checkDealAssignable, make more detailed about the reason
|
||||
log.Debugf("CC update sector %d cannot fit deal, expiration %d before deal end epoch %d", id, exp, piece.deal.DealProposal.EndEpoch)
|
||||
continue
|
||||
}
|
||||
|
||||
|
||||
@@ -142,8 +142,21 @@ type openSector struct {
|
||||
}
|
||||
|
||||
func (o *openSector) checkDealAssignable(piece *pendingPiece, expF expFn) (bool, error) {
|
||||
log := log.With(
|
||||
"sector", o.number,
|
||||
|
||||
"deal", piece.deal.DealID,
|
||||
"dealEnd", piece.deal.DealProposal.EndEpoch,
|
||||
"dealStart", piece.deal.DealProposal.StartEpoch,
|
||||
"dealClaimEnd", piece.claimTerms.claimTermEnd,
|
||||
|
||||
"lastAssignedDealEnd", o.lastDealEnd,
|
||||
"update", o.ccUpdate,
|
||||
)
|
||||
|
||||
// if there are deals assigned, check that no assigned deal expires after termMax
|
||||
if o.lastDealEnd > piece.claimTerms.claimTermEnd {
|
||||
log.Debugw("deal not assignable to sector", "reason", "term end beyond last assigned deal end")
|
||||
return false, nil
|
||||
}
|
||||
|
||||
@@ -153,15 +166,26 @@ func (o *openSector) checkDealAssignable(piece *pendingPiece, expF expFn) (bool,
|
||||
}
|
||||
sectorExpiration, _, err := expF(o.number)
|
||||
if err != nil {
|
||||
log.Debugw("deal not assignable to sector", "reason", "error getting sector expiranion", "error", err)
|
||||
return false, err
|
||||
}
|
||||
|
||||
log = log.With(
|
||||
"sectorExpiration", sectorExpiration,
|
||||
)
|
||||
|
||||
// check that in case of upgrade sector, it's expiration isn't above deals claim TermMax
|
||||
if sectorExpiration > piece.claimTerms.claimTermEnd {
|
||||
log.Debugw("deal not assignable to sector", "reason", "term end beyond sector expiration")
|
||||
return false, nil
|
||||
}
|
||||
|
||||
return sectorExpiration >= piece.deal.DealProposal.EndEpoch, nil
|
||||
if sectorExpiration < piece.deal.DealProposal.EndEpoch {
|
||||
log.Debugw("deal not assignable to sector", "reason", "sector expiration less than deal expiration")
|
||||
return false, nil
|
||||
}
|
||||
|
||||
return true, nil
|
||||
}
|
||||
|
||||
type pieceAcceptResp struct {
|
||||
|
||||
Reference in New Issue
Block a user