Merge pull request #198 from vulcanize/v1.10.15-statediff-3.0.1
fix possible race condition
This commit is contained in:
commit
f78f9be5d8
6
Makefile
6
Makefile
@ -73,8 +73,10 @@ devtools:
|
|||||||
|
|
||||||
.PHONY: statedifftest
|
.PHONY: statedifftest
|
||||||
statedifftest: | $(GOOSE)
|
statedifftest: | $(GOOSE)
|
||||||
MODE=statediff go test -p 1 ./statediff/... -v
|
GO111MODULE=on go get github.com/stretchr/testify/assert@v1.7.0
|
||||||
|
GO111MODULE=on MODE=statediff go test -p 1 ./statediff/... -v
|
||||||
|
|
||||||
.PHONY: statediff_filewriting_test
|
.PHONY: statediff_filewriting_test
|
||||||
statediff_filetest: | $(GOOSE)
|
statediff_filetest: | $(GOOSE)
|
||||||
MODE=statediff STATEDIFF_DB=file go test -p 1 ./statediff/... -v
|
GO111MODULE=on go get github.com/stretchr/testify/assert@v1.7.0
|
||||||
|
GO111MODULE=on MODE=statediff STATEDIFF_DB=file go test -p 1 ./statediff/... -v
|
||||||
|
@ -6,7 +6,7 @@ services:
|
|||||||
image: vulcanize/ipld-eth-db:v0.3.1
|
image: vulcanize/ipld-eth-db:v0.3.1
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: "vdbm"
|
POSTGRES_USER: "vdbm"
|
||||||
POSTGRES_DB: "vulcanize_public"
|
POSTGRES_DB: "vulcanize_testing_v3"
|
||||||
POSTGRES_PASSWORD: "password"
|
POSTGRES_PASSWORD: "password"
|
||||||
volumes:
|
volumes:
|
||||||
- geth_node:/var/lib/postgresql/data
|
- geth_node:/var/lib/postgresql/data
|
||||||
|
@ -24,7 +24,7 @@ const (
|
|||||||
VersionMajor = 1 // Major version component of the current release
|
VersionMajor = 1 // Major version component of the current release
|
||||||
VersionMinor = 10 // Minor version component of the current release
|
VersionMinor = 10 // Minor version component of the current release
|
||||||
VersionPatch = 15 // Patch version component of the current release
|
VersionPatch = 15 // Patch version component of the current release
|
||||||
VersionMeta = "statediff-3.0.0" // Version metadata to append to the version string
|
VersionMeta = "statediff-3.0.1" // Version metadata to append to the version string
|
||||||
)
|
)
|
||||||
|
|
||||||
// Version holds the textual version string.
|
// Version holds the textual version string.
|
||||||
|
@ -406,15 +406,20 @@ func TestFileIndexer(t *testing.T) {
|
|||||||
|
|
||||||
var nodeElements []interface{}
|
var nodeElements []interface{}
|
||||||
for idx, r := range results {
|
for idx, r := range results {
|
||||||
// Decode the log leaf node.
|
// Attempt to decode the log leaf node.
|
||||||
err = rlp.DecodeBytes(r.Data, &nodeElements)
|
err = rlp.DecodeBytes(r.Data, &nodeElements)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
if len(nodeElements) == 2 {
|
||||||
logRaw, err := rlp.EncodeToBytes(expectedLogs[idx])
|
logRaw, err := rlp.EncodeToBytes(expectedLogs[idx])
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
// 2nd element of the leaf node contains the encoded log data.
|
||||||
// 2nd element of the leaf node contains the encoded log data.
|
test_helpers.ExpectEqual(t, logRaw, nodeElements[1].([]byte))
|
||||||
test_helpers.ExpectEqual(t, logRaw, nodeElements[1].([]byte))
|
} else {
|
||||||
|
logRaw, err := rlp.EncodeToBytes(expectedLogs[idx])
|
||||||
|
require.NoError(t, err)
|
||||||
|
// raw log was IPLDized
|
||||||
|
test_helpers.ExpectEqual(t, logRaw, r.Data)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -150,8 +150,10 @@ func (sdi *StateDiffIndexer) PushBlock(block *types.Block, receipts types.Receip
|
|||||||
dbtx: tx,
|
dbtx: tx,
|
||||||
// handle transaction commit or rollback for any return case
|
// handle transaction commit or rollback for any return case
|
||||||
submit: func(self *BatchTx, err error) error {
|
submit: func(self *BatchTx, err error) error {
|
||||||
close(self.quit)
|
defer func() {
|
||||||
close(self.iplds)
|
close(self.quit)
|
||||||
|
close(self.iplds)
|
||||||
|
}()
|
||||||
if p := recover(); p != nil {
|
if p := recover(); p != nil {
|
||||||
rollback(sdi.ctx, tx)
|
rollback(sdi.ctx, tx)
|
||||||
panic(p)
|
panic(p)
|
||||||
|
@ -277,15 +277,11 @@ func TestPGXIndexer(t *testing.T) {
|
|||||||
err = rlp.DecodeBytes(r.Data, &nodeElements)
|
err = rlp.DecodeBytes(r.Data, &nodeElements)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
if len(nodeElements) == 2 {
|
if len(nodeElements) == 2 {
|
||||||
log := new(types.Log)
|
|
||||||
rlp.DecodeBytes(nodeElements[1].([]byte), log)
|
|
||||||
logRaw, err := rlp.EncodeToBytes(expectedLogs[idx])
|
logRaw, err := rlp.EncodeToBytes(expectedLogs[idx])
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// 2nd element of the leaf node contains the encoded log data.
|
// 2nd element of the leaf node contains the encoded log data.
|
||||||
test_helpers.ExpectEqual(t, logRaw, nodeElements[1].([]byte))
|
test_helpers.ExpectEqual(t, logRaw, nodeElements[1].([]byte))
|
||||||
} else {
|
} else {
|
||||||
log := new(types.Log)
|
|
||||||
rlp.DecodeBytes(r.Data, log)
|
|
||||||
logRaw, err := rlp.EncodeToBytes(expectedLogs[idx])
|
logRaw, err := rlp.EncodeToBytes(expectedLogs[idx])
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// raw log was IPLDized
|
// raw log was IPLDized
|
||||||
|
@ -50,8 +50,8 @@ var DefaultConfig = Config{
|
|||||||
Hostname: "localhost",
|
Hostname: "localhost",
|
||||||
Port: 5432,
|
Port: 5432,
|
||||||
DatabaseName: "vulcanize_testing_v3",
|
DatabaseName: "vulcanize_testing_v3",
|
||||||
Username: "postgres",
|
Username: "vdbm",
|
||||||
Password: "",
|
Password: "password",
|
||||||
}
|
}
|
||||||
|
|
||||||
// Config holds params for a Postgres db
|
// Config holds params for a Postgres db
|
||||||
|
@ -278,15 +278,11 @@ func TestSQLXIndexer(t *testing.T) {
|
|||||||
err = rlp.DecodeBytes(r.Data, &nodeElements)
|
err = rlp.DecodeBytes(r.Data, &nodeElements)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
if len(nodeElements) == 2 {
|
if len(nodeElements) == 2 {
|
||||||
log := new(types.Log)
|
|
||||||
rlp.DecodeBytes(nodeElements[1].([]byte), log)
|
|
||||||
logRaw, err := rlp.EncodeToBytes(expectedLogs[idx])
|
logRaw, err := rlp.EncodeToBytes(expectedLogs[idx])
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// 2nd element of the leaf node contains the encoded log data.
|
// 2nd element of the leaf node contains the encoded log data.
|
||||||
test_helpers.ExpectEqual(t, logRaw, nodeElements[1].([]byte))
|
test_helpers.ExpectEqual(t, logRaw, nodeElements[1].([]byte))
|
||||||
} else {
|
} else {
|
||||||
log := new(types.Log)
|
|
||||||
rlp.DecodeBytes(r.Data, log)
|
|
||||||
logRaw, err := rlp.EncodeToBytes(expectedLogs[idx])
|
logRaw, err := rlp.EncodeToBytes(expectedLogs[idx])
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// raw log was IPLDized
|
// raw log was IPLDized
|
||||||
|
Loading…
Reference in New Issue
Block a user