From b7ca80265c6dc7a630e449b377cb8312886c61f9 Mon Sep 17 00:00:00 2001 From: vyzo Date: Wed, 4 May 2022 13:35:48 +0300 Subject: [PATCH 01/10] use filecoin-ffi@fix/issue-523 --- extern/filecoin-ffi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index 791b68203..248cdddf6 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit 791b68203d33ac494b9904f04b7239674b068df4 +Subproject commit 248cdddf63419c8ea42ba77f0636a5d613095573 From f9a5c17c5a459bcfc816ece7417976e88b5a7100 Mon Sep 17 00:00:00 2001 From: vyzo Date: Wed, 4 May 2022 13:47:01 +0300 Subject: [PATCH 02/10] update builtin-actors --- build/builtin-actors/bundles.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/builtin-actors/bundles.env b/build/builtin-actors/bundles.env index 3c7681d7a..d9b1ab43e 100644 --- a/build/builtin-actors/bundles.env +++ b/build/builtin-actors/bundles.env @@ -1,2 +1,2 @@ actors7_release="" -actors8_release=940d99d34ffe413b +actors8_release=c718ae4f957b1806 From 89418a5c34a35c88b28c18680bc249c470019d1c Mon Sep 17 00:00:00 2001 From: vyzo Date: Wed, 4 May 2022 13:40:07 +0300 Subject: [PATCH 03/10] propagate gas outputs in fvm ApplyRet --- chain/vm/fvm.go | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/chain/vm/fvm.go b/chain/vm/fvm.go index f5c3ce7aa..381f8f285 100644 --- a/chain/vm/fvm.go +++ b/chain/vm/fvm.go @@ -14,8 +14,6 @@ import ( "github.com/filecoin-project/go-state-types/network" - "github.com/filecoin-project/go-state-types/big" - "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/state" cbor "github.com/ipfs/go-ipld-cbor" @@ -349,14 +347,13 @@ func (vm *FVM) ApplyMessage(ctx context.Context, cmsg types.ChainMsg) (*ApplyRet GasUsed: ret.GasUsed, }, GasCosts: &GasOutputs{ - // TODO: do the other optional fields eventually - BaseFeeBurn: big.Zero(), - OverEstimationBurn: big.Zero(), + BaseFeeBurn: ret.BaseFeeBurn, + OverEstimationBurn: ret.OverEstimationBurn, MinerPenalty: ret.MinerPenalty, MinerTip: ret.MinerTip, - Refund: big.Zero(), - GasRefund: 0, - GasBurned: 0, + Refund: ret.Refund, + GasRefund: ret.GasRefund, + GasBurned: ret.GasBurned, }, ActorErr: aerr, ExecutionTrace: et.ToExecutionTrace(), From a8f97b5849041d870450305c3bc852f2f0863795 Mon Sep 17 00:00:00 2001 From: vyzo Date: Wed, 4 May 2022 16:01:47 +0300 Subject: [PATCH 04/10] kill test depending on ffi generated stuffs that no longer exist --- .../sector-storage/ffiwrapper/sealer_test.go | 84 ------------------- 1 file changed, 84 deletions(-) diff --git a/extern/sector-storage/ffiwrapper/sealer_test.go b/extern/sector-storage/ffiwrapper/sealer_test.go index 97102e50e..4ec7977fc 100644 --- a/extern/sector-storage/ffiwrapper/sealer_test.go +++ b/extern/sector-storage/ffiwrapper/sealer_test.go @@ -32,7 +32,6 @@ import ( "github.com/filecoin-project/specs-storage/storage" ffi "github.com/filecoin-project/filecoin-ffi" - "github.com/filecoin-project/filecoin-ffi/generated" "github.com/filecoin-project/lotus/chain/actors/policy" "github.com/filecoin-project/lotus/extern/sector-storage/ffiwrapper/basicfs" @@ -869,89 +868,6 @@ func TestAddPiece512MPadded(t *testing.T) { require.Equal(t, "baga6ea4seaqonenxyku4o7hr5xkzbqsceipf6xgli3on54beqbk6k246sbooobq", c.PieceCID.String()) } -func setupLogger(t *testing.T) *bytes.Buffer { - _ = os.Setenv("RUST_LOG", "info") - - var bb bytes.Buffer - r, w, err := os.Pipe() - if err != nil { - t.Fatal(err) - } - - go func() { - _, _ = io.Copy(&bb, r) - runtime.KeepAlive(w) - }() - - resp := generated.FilInitLogFd(int32(w.Fd())) - resp.Deref() - - defer generated.FilDestroyInitLogFdResponse(resp) - - if resp.StatusCode != generated.FCPResponseStatusFCPNoError { - t.Fatal(generated.RawString(resp.ErrorMsg).Copy()) - } - - return &bb -} - -func TestMulticoreSDR(t *testing.T) { - if os.Getenv("TEST_RUSTPROOFS_LOGS") != "1" { - t.Skip("skipping test without TEST_RUSTPROOFS_LOGS=1") - } - - rustLogger := setupLogger(t) - - getGrothParamFileAndVerifyingKeys(sectorSize) - - dir, err := ioutil.TempDir("", "sbtest") - if err != nil { - t.Fatal(err) - } - - miner := abi.ActorID(123) - - sp := &basicfs.Provider{ - Root: dir, - } - sb, err := New(sp) - if err != nil { - t.Fatalf("%+v", err) - } - - t.Cleanup(func() { - if t.Failed() { - fmt.Printf("not removing %s\n", dir) - return - } - if err := os.RemoveAll(dir); err != nil { - t.Error(err) - } - }) - - si := storage.SectorRef{ - ID: abi.SectorID{Miner: miner, Number: 1}, - ProofType: sealProofType, - } - - s := seal{ref: si} - - // check multicore - _ = os.Setenv("FIL_PROOFS_USE_MULTICORE_SDR", "1") - rustLogger.Reset() - s.precommit(t, sb, si, func() {}) - - ok := false - for _, s := range strings.Split(rustLogger.String(), "\n") { - if strings.Contains(s, "create_label::multi") { - ok = true - break - } - } - - require.True(t, ok) -} - func TestPoStChallengeAssumptions(t *testing.T) { var r [32]byte rand.Read(r[:]) From ca9ad49ba8d824a43031bb3e2c0f47a18b92b54e Mon Sep 17 00:00:00 2001 From: vyzo Date: Wed, 4 May 2022 16:02:43 +0300 Subject: [PATCH 05/10] go mod tidy --- go.mod | 9 --------- go.sum | 24 ------------------------ 2 files changed, 33 deletions(-) diff --git a/go.mod b/go.mod index 84f3827c3..a36b8b23b 100644 --- a/go.mod +++ b/go.mod @@ -312,7 +312,6 @@ require ( github.com/prometheus/common v0.30.0 // indirect github.com/prometheus/procfs v0.7.3 // indirect github.com/prometheus/statsd_exporter v0.21.0 // indirect - github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 // indirect github.com/rivo/uniseg v0.1.0 // indirect github.com/rs/cors v1.7.0 // indirect github.com/russross/blackfriday/v2 v2.0.1 // indirect @@ -321,7 +320,6 @@ require ( github.com/sirupsen/logrus v1.8.1 // indirect github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect - github.com/tj/go-spin v1.1.0 // indirect github.com/uber/jaeger-client-go v2.25.0+incompatible // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.0.1 // indirect @@ -329,8 +327,6 @@ require ( github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f // indirect github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 // indirect github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee // indirect - github.com/xlab/c-for-go v0.0.0-20201112171043-ea6dce5809cb // indirect - github.com/xlab/pkgconfig v0.0.0-20170226114623-cea12a0fd245 // indirect github.com/zondax/hid v0.9.0 // indirect github.com/zondax/ledger-go v0.12.1 // indirect go.opentelemetry.io/otel/metric v0.25.0 // indirect @@ -352,11 +348,6 @@ require ( gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect lukechampine.com/blake3 v1.1.7 // indirect - modernc.org/cc v1.0.0 // indirect - modernc.org/golex v1.0.1 // indirect - modernc.org/mathutil v1.1.1 // indirect - modernc.org/strutil v1.1.0 // indirect - modernc.org/xc v1.0.0 // indirect ) replace github.com/filecoin-project/filecoin-ffi => ./extern/filecoin-ffi diff --git a/go.sum b/go.sum index 8c4a1dac9..67596145c 100644 --- a/go.sum +++ b/go.sum @@ -1780,8 +1780,6 @@ github.com/raulk/clock v1.1.0/go.mod h1:3MpVxdZ/ODBQDxbN+kzshf5OSZwPjtMDx6BBXBmO github.com/raulk/go-watchdog v1.2.0 h1:konN75pw2BMmZ+AfuAm5rtFsWcJpKF3m02rKituuXNo= github.com/raulk/go-watchdog v1.2.0/go.mod h1:lzSbAl5sh4rtI8tYHU01BWIDzgzqaQLj6RcA1i4mlqI= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= @@ -1894,8 +1892,6 @@ github.com/tidwall/match v1.0.1 h1:PnKP62LPNxHKTwvHHZZzdOAOCtsJTjo6dZLCwpKm5xc= github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tj/go-spin v1.1.0 h1:lhdWZsvImxvZ3q1C5OIB7d72DuOwP4O2NdBg9PyzNds= -github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= @@ -1977,10 +1973,6 @@ github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee h1:lYbXeSv github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee/go.mod h1:m2aV4LZI4Aez7dP5PMyVKEHhUyEJ/RjmPEDOpDvudHg= github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xlab/c-for-go v0.0.0-20201112171043-ea6dce5809cb h1:/7/dQyiKnxAOj9L69FhST7uMe17U015XPzX7cy+5ykM= -github.com/xlab/c-for-go v0.0.0-20201112171043-ea6dce5809cb/go.mod h1:pbNsDSxn1ICiNn9Ct4ZGNrwzfkkwYbx/lw8VuyutFIg= -github.com/xlab/pkgconfig v0.0.0-20170226114623-cea12a0fd245 h1:Sw125DKxZhPUI4JLlWugkzsrlB50jR9v2khiD9FxuSo= -github.com/xlab/pkgconfig v0.0.0-20170226114623-cea12a0fd245/go.mod h1:C+diUUz7pxhNY6KAoLgrTYARGWnt82zWTylZlxT92vk= github.com/xorcare/golden v0.6.0/go.mod h1:7T39/ZMvaSEZlBPoYfVFmsBLmUl3uz9IuzWj/U6FtvQ= github.com/xorcare/golden v0.6.1-0.20191112154924-b87f686d7542 h1:oWgZJmC1DorFZDpfMfWg7xk29yEOZiXmo/wZl+utTI8= github.com/xorcare/golden v0.6.1-0.20191112154924-b87f686d7542/go.mod h1:7T39/ZMvaSEZlBPoYfVFmsBLmUl3uz9IuzWj/U6FtvQ= @@ -2139,7 +2131,6 @@ golang.org/x/crypto v0.0.0-20211209193657-4570a0811e8b h1:QAqMVf3pSa6eeTsuklijuk golang.org/x/crypto v0.0.0-20211209193657-4570a0811e8b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20181106170214-d68db9428509/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2453,7 +2444,6 @@ golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200711155855-7342f9734a7d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= @@ -2634,20 +2624,6 @@ howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCU lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0= lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= -modernc.org/cc v1.0.0 h1:nPibNuDEx6tvYrUAtvDTTw98rx5juGsa5zuDnKwEEQQ= -modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw= -modernc.org/fileutil v1.0.0/go.mod h1:JHsWpkrk/CnVV1H/eGlFf85BEpfkrp56ro8nojIq9Q8= -modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= -modernc.org/golex v1.0.1 h1:EYKY1a3wStt0RzHaH8mdSRNg78Ub0OHxYfCRWw35YtM= -modernc.org/golex v1.0.1/go.mod h1:QCA53QtsT1NdGkaZZkF5ezFwk4IXh4BGNafAARTC254= -modernc.org/lex v1.0.0/go.mod h1:G6rxMTy3cH2iA0iXL/HRRv4Znu8MK4higxph/lE7ypk= -modernc.org/lexer v1.0.0/go.mod h1:F/Dld0YKYdZCLQ7bD0USbWL4YKCyTDRDHiDTOs0q0vk= -modernc.org/mathutil v1.1.1 h1:FeylZSVX8S+58VsyJlkEj2bcpdytmp9MmDKZkKx8OIE= -modernc.org/mathutil v1.1.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/strutil v1.1.0 h1:+1/yCzZxY2pZwwrsbH+4T7BQMoLQ9QiBshRC9eicYsc= -modernc.org/strutil v1.1.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= -modernc.org/xc v1.0.0 h1:7ccXrupWZIS3twbUGrtKmHS2DXY6xegFua+6O3xgAFU= -modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= pgregory.net/rapid v0.4.7/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= From de1df6b2fee27e94765a7cc08a4d03d7a7cd5ed4 Mon Sep 17 00:00:00 2001 From: vyzo Date: Wed, 4 May 2022 16:03:03 +0300 Subject: [PATCH 06/10] update test-vectors --- extern/test-vectors | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/test-vectors b/extern/test-vectors index d9a75a787..d96ce1131 160000 --- a/extern/test-vectors +++ b/extern/test-vectors @@ -1 +1 @@ -Subproject commit d9a75a7873aee0db28b87e3970d2ea16a2f37c6a +Subproject commit d96ce11315dfd219a7279dfa129214212e1b0510 From b5d3487ce60fb41a31430f9028e4338501d07728 Mon Sep 17 00:00:00 2001 From: vyzo Date: Wed, 4 May 2022 20:20:19 +0300 Subject: [PATCH 07/10] update filecoin-ffi@fix/issue-523 --- extern/filecoin-ffi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index 248cdddf6..e8e33abc4 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit 248cdddf63419c8ea42ba77f0636a5d613095573 +Subproject commit e8e33abc4be760651b30ae35706bdc0989fdf071 From 24e68feb5903aa572d2eff57adcf16faec769b4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Mon, 9 May 2022 23:48:47 +0100 Subject: [PATCH 08/10] update filecoin-ffi to 57accc2a83db1c84. --- extern/filecoin-ffi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index e8e33abc4..57accc2a8 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit e8e33abc4be760651b30ae35706bdc0989fdf071 +Subproject commit 57accc2a83db1c841ef0faf98bb9e2b5f764f1f9 From b4dae335e13624c03b6460bdc20a0a3567336db2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Tue, 10 May 2022 13:20:05 +0100 Subject: [PATCH 09/10] reinstantiate sealer test. --- .../sector-storage/ffiwrapper/sealer_test.go | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/extern/sector-storage/ffiwrapper/sealer_test.go b/extern/sector-storage/ffiwrapper/sealer_test.go index 4ec7977fc..de310c084 100644 --- a/extern/sector-storage/ffiwrapper/sealer_test.go +++ b/extern/sector-storage/ffiwrapper/sealer_test.go @@ -32,6 +32,7 @@ import ( "github.com/filecoin-project/specs-storage/storage" ffi "github.com/filecoin-project/filecoin-ffi" + "github.com/filecoin-project/filecoin-ffi/cgo" "github.com/filecoin-project/lotus/chain/actors/policy" "github.com/filecoin-project/lotus/extern/sector-storage/ffiwrapper/basicfs" @@ -868,6 +869,83 @@ func TestAddPiece512MPadded(t *testing.T) { require.Equal(t, "baga6ea4seaqonenxyku4o7hr5xkzbqsceipf6xgli3on54beqbk6k246sbooobq", c.PieceCID.String()) } +func setupLogger(t *testing.T) *bytes.Buffer { + _ = os.Setenv("RUST_LOG", "info") + + var bb bytes.Buffer + r, w, err := os.Pipe() + if err != nil { + t.Fatal(err) + } + + go func() { + _, _ = io.Copy(&bb, r) + runtime.KeepAlive(w) + }() + + err = cgo.InitLogFd(int32(w.Fd())) + require.NoError(t, err) + + return &bb +} + +func TestMulticoreSDR(t *testing.T) { + if os.Getenv("TEST_RUSTPROOFS_LOGS") != "1" { + t.Skip("skipping test without TEST_RUSTPROOFS_LOGS=1") + } + + rustLogger := setupLogger(t) + + getGrothParamFileAndVerifyingKeys(sectorSize) + + dir, err := ioutil.TempDir("", "sbtest") + if err != nil { + t.Fatal(err) + } + + miner := abi.ActorID(123) + + sp := &basicfs.Provider{ + Root: dir, + } + sb, err := New(sp) + if err != nil { + t.Fatalf("%+v", err) + } + + t.Cleanup(func() { + if t.Failed() { + fmt.Printf("not removing %s\n", dir) + return + } + if err := os.RemoveAll(dir); err != nil { + t.Error(err) + } + }) + + si := storage.SectorRef{ + ID: abi.SectorID{Miner: miner, Number: 1}, + ProofType: sealProofType, + } + + s := seal{ref: si} + + // check multicore + _ = os.Setenv("FIL_PROOFS_USE_MULTICORE_SDR", "1") + rustLogger.Reset() + s.precommit(t, sb, si, func() {}) + + ok := false + for _, s := range strings.Split(rustLogger.String(), "\n") { + if strings.Contains(s, "create_label::multi") { + ok = true + break + } + } + + require.True(t, ok) +} + func TestPoStChallengeAssumptions(t *testing.T) { var r [32]byte rand.Read(r[:]) From 10d77f1f0cf9593ec71d784bb6ae6a318f03d634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Tue, 10 May 2022 15:00:58 +0100 Subject: [PATCH 10/10] run gen. --- build/openrpc/full.json.gz | Bin 27004 -> 27009 bytes build/openrpc/miner.json.gz | Bin 13533 -> 13537 bytes build/openrpc/worker.json.gz | Bin 4525 -> 4528 bytes documentation/en/cli-lotus-miner.md | 2 +- documentation/en/cli-lotus-worker.md | 2 +- documentation/en/cli-lotus.md | 2 +- 6 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 89b2a8dab726d86458f66ed491992177e8de8ce2..0a34184ec75ba08931d6990f2b544df28e1ea410 100644 GIT binary patch literal 27009 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%0A96iI3F(O8ZGRAG)`kYDMZ6ai3; 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 literal 27004 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

a+O@-pJD{m-Nl(6{vn|Ji#*HrF~ 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 CrH+mO diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 213c955fc0b635ecfb2d6eee87c65cd5e029ec66..5b6c1729fdbf22ff91184ca3fd6220a90c9931fc 100644 GIT binary patch delta 4441 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 delta 4438 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