diff --git a/client/db/bolt/upgrades.go b/client/db/bolt/upgrades.go index 3956be0a4c..2b460788de 100644 --- a/client/db/bolt/upgrades.go +++ b/client/db/bolt/upgrades.go @@ -8,6 +8,7 @@ import ( "path/filepath" dexdb "decred.org/dcrdex/client/db" + "decred.org/dcrdex/dex" "decred.org/dcrdex/dex/encode" "decred.org/dcrdex/dex/order" "go.etcd.io/bbolt" @@ -57,6 +58,8 @@ func setDBVersion(tx *bbolt.Tx, newVersion uint32) error { return bucket.Put(versionKey, encode.Uint32Bytes(newVersion)) } +var upgradeLog = dex.Disabled + // upgradeDB checks whether any upgrades are necessary before the database is // ready for application usage. If any are, they are performed. func (db *BoltDB) upgradeDB() error { @@ -77,6 +80,7 @@ func (db *BoltDB) upgradeDB() error { } db.log.Infof("Upgrading database from version %d to %d", version, DBVersion) + upgradeLog = db.log // Backup the current version's DB file before processing the upgrades to // DBVersion. Note that any intermediate versions are not stored. @@ -307,6 +311,12 @@ func v6Upgrade(dbtx *bbolt.Tx) error { return err } + var nActive, nArchived int + + defer func() { + upgradeLog.Infof("%d active matches moved, %d archived matches unmoved", nActive, nArchived) + }() + archivedMatchesBkt := dbtx.Bucket(oldMatchesBucket) activeMatchesBkt := dbtx.Bucket(newActiveMatchesBucket) @@ -333,9 +343,15 @@ func v6Upgrade(dbtx *bbolt.Tx) error { } // If match is active, move to activeMatchesBucket. if !dexdb.MatchIsActive(match, proof) { + nArchived++ return nil } + upgradeLog.Infof("Moving match %v (%v, revoked = %v, refunded = %v, sigs (init/redeem): %v, %v) to active bucket.", + match, match.Status, proof.IsRevoked(), len(proof.RefundCoin) > 0, + len(proof.Auth.InitSig) > 0, len(proof.Auth.RedeemSig) > 0) + nActive++ + activeMBkt, err := activeMatchesBkt.CreateBucket(k) if err != nil { return err diff --git a/client/db/bolt/upgrades_test.go b/client/db/bolt/upgrades_test.go index cfb8b29e17..876a72733b 100644 --- a/client/db/bolt/upgrades_test.go +++ b/client/db/bolt/upgrades_test.go @@ -38,6 +38,7 @@ var dbUpgradeTests = [...]struct { } func TestUpgrades(t *testing.T) { + upgradeLog = tLogger t.Run("group", func(t *testing.T) { for _, tc := range dbUpgradeTests { tc := tc // capture range variable