Skip to content

Commit 497ceb9

Browse files
authored
Merge pull request #1031 from ipfs-force-community/cherry-pick-pr-1022-1024-1027-1028-to-release-v0.9
Cherry pick #1022 #1024 #1027 #1028 to release v0.9
2 parents 38b54b1 + 90b90d7 commit 497ceb9

File tree

10 files changed

+61
-31
lines changed

10 files changed

+61
-31
lines changed

CHANGELOG.zh.md

+10-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
# Changelog
22

3+
## v0.9.0-rc7
4+
- damocles-manager
5+
- 暂时移除 `move partition` 相关的命令 [#1022](https://github.com/ipfs-force-community/damocles/pull/1022)
6+
- 修复 wait for message, 如果消息失败了则不继续等待消息而是直接返回错误。[#1024](https://github.com/ipfs-force-community/damocles/pull/1024)
7+
- 优化 wdpost, 允许 worker 向任意状态的任务发送心跳。[#1028](https://github.com/ipfs-force-community/damocles/pull/1028)
8+
39
## v0.9.0-rc6
4-
- damocles-manager
5-
- 简化扇区存储配置 [#1010](https://github.com/ipfs-force-community/damocles/pull/1010)
10+
- damocles-manager
11+
- 简化扇区存储配置 [#1010](https://github.com/ipfs-force-community/damocles/pull/1010)
612

713
## v0.9.0-rc5
8-
- damocles-manager
9-
- 升级 venus 依赖: v1.14.0-rc3 -> v1.14.0-rc4
14+
- damocles-manager
15+
- 升级 venus 依赖: v1.14.0-rc3 -> v1.14.0-rc4
1016

1117
## v0.9.0-rc4
1218

damocles-manager/cmd/damocles-manager/internal/global.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,8 @@ WAIT_RET:
239239
case messager.MessageState.OnChainMsg, messager.MessageState.NonceConflictMsg:
240240
mret = ret
241241
break WAIT_RET
242-
242+
case messager.MessageState.FailedMsg:
243+
return fmt.Errorf("message failed %s: %s", mid, ret.ErrorMsg)
243244
default:
244245
mlog.Debugf("msg state: %s", messager.MessageStateToString(ret.State))
245246
}

damocles-manager/cmd/damocles-manager/internal/util_sealer_proving.go

+4
Original file line numberDiff line numberDiff line change
@@ -1068,6 +1068,10 @@ var utilSealerProvingRecoverFaultsCmd = &cli.Command{
10681068
Name: "from",
10691069
Usage: "Specify the address of the address to send message, default miner's worker",
10701070
},
1071+
&cli.StringFlag{
1072+
Name: "exid",
1073+
Usage: "external identifier of the message, ensure that we could make the message unique, or we could catch up with a previous message",
1074+
},
10711075
},
10721076
Action: func(cctx *cli.Context) error {
10731077
api, actx, astop, err := extractAPI(cctx)

damocles-manager/cmd/damocles-manager/internal/util_sealer_sectors.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,9 @@ var utilSealerSectorsCmd = &cli.Command{
100100
utilSealerSectorsRebuildCmd,
101101
utilSealerSectorsExportCmd,
102102
utilSealerSectorsUnsealCmd,
103-
utilSealerSectorsMovePartitionsCmd,
103+
104+
// todo: consider add this command back until next update in which FIP0070 maybe be in scope
105+
// utilSealerSectorsMovePartitionsCmd,
104106
},
105107
}
106108

damocles-manager/go.mod

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ require (
2020
github.com/filecoin-project/go-jsonrpc v0.3.1
2121
github.com/filecoin-project/go-paramfetch v0.0.4
2222
github.com/filecoin-project/go-state-types v0.12.5
23-
github.com/filecoin-project/lotus v1.24.0-rc1
23+
github.com/filecoin-project/lotus v1.24.0-rc6
2424
github.com/filecoin-project/specs-storage v0.4.1
25-
github.com/filecoin-project/venus v1.14.0-rc4
25+
github.com/filecoin-project/venus v1.14.0-rc6
2626
github.com/golang/mock v1.6.0
2727
github.com/google/uuid v1.3.0
2828
github.com/hako/durafmt v0.0.0-20200710122514-c0fb7b4da026

damocles-manager/go.sum

+4-4
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,8 @@ github.com/filecoin-project/go-storedcounter v0.1.0 h1:Mui6wSUBC+cQGHbDUBcO7rfh5
297297
github.com/filecoin-project/go-storedcounter v0.1.0/go.mod h1:4ceukaXi4vFURIoxYMfKzaRF5Xv/Pinh2oTnoxpv+z8=
298298
github.com/filecoin-project/kubo-api-client v0.0.1 h1:IR1b+sm+VYxSRvbgECVv9SbhIgygcXcSoN1Q7xsHDXg=
299299
github.com/filecoin-project/kubo-api-client v0.0.1/go.mod h1:c36PPMIVOkKfHDwDG5U05gUlPRY9wNuh/BePwo0e+6Y=
300-
github.com/filecoin-project/lotus v1.24.0-rc1 h1:cuJ0JiJ5MYjGV3rXp0ghqdFkOPLxvgZOSSUwH1K8NSU=
301-
github.com/filecoin-project/lotus v1.24.0-rc1/go.mod h1:Az8bI5Xpyk04IgonL4TywkqgCkTjtHeiMbPgRbAzXiA=
300+
github.com/filecoin-project/lotus v1.24.0-rc6 h1:IJd0YjeL1Xq0efQJZdPMaX5/XfF3HC4/IDJZefwpF7s=
301+
github.com/filecoin-project/lotus v1.24.0-rc6/go.mod h1:hKVsRPYzHjx8+8/hD+Yc3lRmLa6gTqGHLqJR8c9NEhg=
302302
github.com/filecoin-project/pubsub v1.0.0 h1:ZTmT27U07e54qV1mMiQo4HDr0buo8I1LDHBYLXlsNXM=
303303
github.com/filecoin-project/pubsub v1.0.0/go.mod h1:GkpB33CcUtUNrLPhJgfdy4FDx4OMNR9k+46DHx/Lqrg=
304304
github.com/filecoin-project/specs-actors v0.9.13/go.mod h1:TS1AW/7LbG+615j4NsjMK1qlpAwaFsG9w0V2tg2gSao=
@@ -321,8 +321,8 @@ github.com/filecoin-project/specs-actors/v8 v8.0.1 h1:4u0tIRJeT5G7F05lwLRIsDnsrN
321321
github.com/filecoin-project/specs-actors/v8 v8.0.1/go.mod h1:UYIPg65iPWoFw5NEftREdJwv9b/5yaLKdCgTvNI/2FA=
322322
github.com/filecoin-project/specs-storage v0.4.1 h1:yvLEaLZj8f+uByhNC4mFOtCUyL2wQku+NGBp6hjTe9M=
323323
github.com/filecoin-project/specs-storage v0.4.1/go.mod h1:Z2eK6uMwAOSLjek6+sy0jNV2DSsMEENziMUz0GHRFBw=
324-
github.com/filecoin-project/venus v1.14.0-rc4 h1:DN0lVKUFlNZzPPIltoiex2DtIzP4hfBTfqk/Z1V7Qwc=
325-
github.com/filecoin-project/venus v1.14.0-rc4/go.mod h1:nCXhYe+mtrtrF+ZAVWDNRprNfXOzRYznXkplAZTofyg=
324+
github.com/filecoin-project/venus v1.14.0-rc6 h1:NiLlvc11lX1tCvxeLRGbjU+GKZlxC+MT4wiLLDj0GKQ=
325+
github.com/filecoin-project/venus v1.14.0-rc6/go.mod h1:/apMxQl6VYz1FMeBStrP3BUsBCmDhyGUW91SLjVg5e8=
326326
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
327327
github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ=
328328
github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=

damocles-manager/modules/impl/prover/worker/job_mgr_kv.go

+33-16
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ type kvJobManager struct {
2929
// TODO(0x5459): Consider putting `txn` into context?
3030
func (tm *kvJobManager) filter(ctx context.Context, txn kvstore.TxnExt, state core.WdPoStJobState, limit uint32, f func(*core.WdPoStJob) bool) (jobs []*core.WdPoStJob, err error) {
3131
var it kvstore.Iter
32-
it, err = txn.Scan([]byte(makeWdPoStPrefix(state)))
32+
it, err = txn.Scan(kvstore.Prefix(makeWdPoStPrefix(state)))
3333
if err != nil {
3434
return
3535
}
@@ -134,7 +134,7 @@ func (tm *kvJobManager) Create(ctx context.Context, deadlineIdx uint64, partitio
134134
CreatedAt: uint64(now),
135135
UpdatedAt: uint64(now),
136136
}
137-
return txn.PutJson([]byte(makeWdPoStKey(core.WdPoStJobReadyToRun, jobID)), &job)
137+
return txn.PutJson(kvstore.Key(makeWdPoStKey(core.WdPoStJobReadyToRun, jobID)), &job)
138138
})
139139

140140
if err == nil {
@@ -163,7 +163,7 @@ func (tm *kvJobManager) AllocateJobs(ctx context.Context, spec core.AllocateWdPo
163163
now := uint64(time.Now().Unix())
164164
for _, job := range readyToRun {
165165
// Moving ready to run jobs to running jobs
166-
if err := txn.Del([]byte(makeWdPoStKey(core.WdPoStJobReadyToRun, job.ID))); err != nil {
166+
if err := txn.Del(kvstore.Key(makeWdPoStKey(core.WdPoStJobReadyToRun, job.ID))); err != nil {
167167
return err
168168
}
169169
job.State = string(core.WdPoStJobRunning)
@@ -172,7 +172,7 @@ func (tm *kvJobManager) AllocateJobs(ctx context.Context, spec core.AllocateWdPo
172172
job.WorkerName = workerName
173173
job.HeartbeatAt = now
174174
job.UpdatedAt = now
175-
if err := txn.PutJson([]byte(makeWdPoStKey(core.WdPoStJobRunning, job.ID)), job); err != nil {
175+
if err := txn.PutJson(kvstore.Key(makeWdPoStKey(core.WdPoStJobRunning, job.ID)), job); err != nil {
176176
return err
177177
}
178178
allocatedJobs = append(allocatedJobs, &core.WdPoStAllocatedJob{
@@ -196,16 +196,28 @@ func (tm *kvJobManager) Heartbeat(ctx context.Context, jobIDs []string, workerNa
196196
err := tm.kv.UpdateMustNoConflict(ctx, func(txn kvstore.TxnExt) error {
197197
for _, jobID := range jobIDs {
198198
var job core.WdPoStJob
199-
if err := txn.Peek([]byte(makeWdPoStKey(core.WdPoStJobRunning, jobID)), kvstore.LoadJSON(&job)); err != nil {
199+
key, err := txn.PeekAny(
200+
kvstore.LoadJSON(&job),
201+
kvstore.Key(makeWdPoStKey(core.WdPoStJobRunning, jobID)),
202+
kvstore.Key(makeWdPoStKey(core.WdPoStJobReadyToRun, jobID)),
203+
kvstore.Key(makeWdPoStKey(core.WdPoStJobFinished, jobID)),
204+
)
205+
if err != nil {
206+
return err
207+
}
208+
209+
if err := txn.Del(key); err != nil {
200210
return err
201211
}
212+
202213
if job.StartedAt == 0 {
203214
job.StartedAt = now
204215
}
205216
job.HeartbeatAt = now
206217
job.WorkerName = workerName
218+
job.State = string(core.WdPoStJobRunning)
207219
job.UpdatedAt = now
208-
if err := txn.PutJson([]byte(makeWdPoStKey(core.WdPoStJobRunning, jobID)), &job); err != nil {
220+
if err := txn.PutJson(kvstore.Key(makeWdPoStKey(core.WdPoStJobRunning, jobID)), &job); err != nil {
209221
return err
210222
}
211223
}
@@ -219,12 +231,17 @@ func (tm *kvJobManager) Heartbeat(ctx context.Context, jobIDs []string, workerNa
219231

220232
func (tm *kvJobManager) Finish(ctx context.Context, jobID string, output *stage.WindowPoStOutput, errorReason string) error {
221233
err := tm.kv.UpdateMustNoConflict(ctx, func(txn kvstore.TxnExt) error {
222-
runningKey := []byte(makeWdPoStKey(core.WdPoStJobRunning, jobID))
223234
var job core.WdPoStJob
224-
if err := txn.Peek(runningKey, kvstore.LoadJSON(&job)); err != nil {
235+
key, err := txn.PeekAny(
236+
kvstore.LoadJSON(&job),
237+
kvstore.Key(makeWdPoStKey(core.WdPoStJobRunning, jobID)),
238+
kvstore.Key(makeWdPoStKey(core.WdPoStJobReadyToRun, jobID)),
239+
kvstore.Key(makeWdPoStKey(core.WdPoStJobFinished, jobID)),
240+
)
241+
if err != nil {
225242
return err
226243
}
227-
if err := txn.Del(runningKey); err != nil {
244+
if err := txn.Del(key); err != nil {
228245
return err
229246
}
230247
now := uint64(time.Now().Unix())
@@ -233,7 +250,7 @@ func (tm *kvJobManager) Finish(ctx context.Context, jobID string, output *stage.
233250
job.ErrorReason = errorReason
234251
job.FinishedAt = now
235252
job.UpdatedAt = now
236-
return txn.PutJson([]byte(makeWdPoStKey(core.WdPoStJobFinished, jobID)), &job)
253+
return txn.PutJson(kvstore.Key(makeWdPoStKey(core.WdPoStJobFinished, jobID)), &job)
237254
})
238255

239256
if err == nil {
@@ -260,15 +277,15 @@ func (tm *kvJobManager) MakeJobsDie(ctx context.Context, heartbeatTimeout time.D
260277
}
261278
now := uint64(time.Now().Unix())
262279
for _, job := range shouldDead {
263-
if err := txn.Del([]byte(makeWdPoStKey(core.WdPoStJobRunning, job.ID))); err != nil {
280+
if err := txn.Del(kvstore.Key(makeWdPoStKey(core.WdPoStJobRunning, job.ID))); err != nil {
264281
return err
265282
}
266283
job.State = string(core.WdPoStJobFinished)
267284
job.FinishedAt = now
268285
job.Output = nil
269286
job.ErrorReason = "heartbeat timeout"
270287
job.UpdatedAt = now
271-
if err := txn.PutJson([]byte(makeWdPoStKey(core.WdPoStJobFinished, job.ID)), job); err != nil {
288+
if err := txn.PutJson(kvstore.Key(makeWdPoStKey(core.WdPoStJobFinished, job.ID)), job); err != nil {
272289
return err
273290
}
274291
}
@@ -297,7 +314,7 @@ func (tm *kvJobManager) CleanupExpiredJobs(ctx context.Context, jobLifetime time
297314
return err
298315
}
299316
for _, job := range shouldClean {
300-
if err := txn.Del([]byte(makeWdPoStKey(core.WdPoStJobFinished, job.ID))); err != nil {
317+
if err := txn.Del(kvstore.Key(makeWdPoStKey(core.WdPoStJobFinished, job.ID))); err != nil {
301318
return err
302319
}
303320
}
@@ -324,7 +341,7 @@ func (tm *kvJobManager) RetryFailedJobs(ctx context.Context, maxTry, limit uint3
324341
}
325342
now := uint64(time.Now().Unix())
326343
for _, job := range shouldRetry {
327-
err := txn.Del([]byte(makeWdPoStKey(core.WdPoStJobFinished, job.ID)))
344+
err := txn.Del(kvstore.Key(makeWdPoStKey(core.WdPoStJobFinished, job.ID)))
328345
if err != nil {
329346
return err
330347
}
@@ -334,7 +351,7 @@ func (tm *kvJobManager) RetryFailedJobs(ctx context.Context, maxTry, limit uint3
334351
job.StartedAt = 0
335352
job.FinishedAt = 0
336353
job.UpdatedAt = now
337-
if err := txn.PutJson([]byte(makeWdPoStKey(core.WdPoStJobReadyToRun, job.ID)), job); err != nil {
354+
if err := txn.PutJson(kvstore.Key(makeWdPoStKey(core.WdPoStJobReadyToRun, job.ID)), job); err != nil {
338355
return err
339356
}
340357
}
@@ -379,7 +396,7 @@ func (tm *kvJobManager) Reset(ctx context.Context, jobID string) error {
379396
if err := txn.Del(key); err != nil {
380397
return err
381398
}
382-
return txn.PutJson([]byte(makeWdPoStKey(core.WdPoStJobReadyToRun, jobID)), &job)
399+
return txn.PutJson(kvstore.Key(makeWdPoStKey(core.WdPoStJobReadyToRun, jobID)), &job)
383400
})
384401

385402
if err == nil {

damocles-manager/ver/ver.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package ver
22

33
import "fmt"
44

5-
const Version = "0.9.0-rc6"
5+
const Version = "0.9.0-rc7"
66

77
var Commit string
88

damocles-worker/Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

damocles-worker/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "damocles-worker"
3-
version = "0.9.0-rc6"
3+
version = "0.9.0-rc7"
44
authors = ["dtynn <[email protected]>"]
55
edition = "2021"
66
exclude = [".github"]

0 commit comments

Comments
 (0)