Skip to content

Commit 54a8be1

Browse files
committed
Better test coverage
1 parent f09f6ea commit 54a8be1

15 files changed

+514
-343
lines changed

src/bucket/BucketManagerImpl.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -1683,7 +1683,6 @@ BucketManagerImpl::getSearchableLiveBucketListSnapshot()
16831683
std::shared_ptr<SearchableHotArchiveBucketListSnapshot>
16841684
BucketManagerImpl::getSearchableHotArchiveBucketListSnapshot()
16851685
{
1686-
releaseAssert(mApp.getConfig().isUsingBucketListDB());
16871686
// Any other threads must maintain their own snapshot
16881687
releaseAssert(threadIsMain());
16891688
if (!mSearchableHotArchiveBucketListSnapshot)

src/ledger/LedgerManagerImpl.cpp

+33-36
Original file line numberDiff line numberDiff line change
@@ -1685,50 +1685,47 @@ LedgerManagerImpl::transferLedgerEntriesToBucketList(
16851685
if (blEnabled &&
16861686
protocolVersionStartsFrom(initialLedgerVers, SOROBAN_PROTOCOL_VERSION))
16871687
{
1688+
auto ttlKeys = ltx.getAllTTLKeysWithoutSealing();
1689+
auto deletedPersistentDataKeys =
1690+
ltx.getAllDeletedPersistentContractDataKeysWithoutSealing();
1691+
auto createdPersistentDataKeys =
1692+
ltx.getAllCreatedPersistentContractDataKeysWithoutSealing();
1693+
LedgerTxn ltxEvictions(ltx);
1694+
1695+
auto evictedEntries =
1696+
mApp.getBucketManager().resolveBackgroundEvictionScan(
1697+
ltxEvictions, lh.ledgerSeq, ttlKeys, initialLedgerVers);
1698+
1699+
if (protocolVersionStartsFrom(
1700+
initialLedgerVers,
1701+
Bucket::FIRST_PROTOCOL_SUPPORTING_PERSISTENT_EVICTION))
16881702
{
1689-
auto deletedPersistentDataKeys =
1690-
ltx.getAllDeletedPersistentContractDataKeysWithoutSealing();
1691-
auto createdPersistentDataKeys =
1692-
ltx.getAllCreatedPersistentContractDataKeysWithoutSealing();
1693-
LedgerTxn ltxEvictions(ltx);
1703+
auto createdVec =
1704+
std::vector<LedgerKey>(createdPersistentDataKeys.begin(),
1705+
createdPersistentDataKeys.end());
1706+
auto deletedVec =
1707+
std::vector<LedgerKey>(deletedPersistentDataKeys.begin(),
1708+
deletedPersistentDataKeys.end());
1709+
mApp.getBucketManager().addHotArchiveBatch(
1710+
mApp, lh, evictedEntries.second, createdVec, deletedVec);
16941711

1695-
auto evictedEntries =
1696-
mApp.getBucketManager().resolveBackgroundEvictionScan(
1697-
ltxEvictions, lh.ledgerSeq, keys, initialLedgerVers);
1698-
1699-
if (protocolVersionStartsFrom(
1700-
initialLedgerVers,
1701-
Bucket::FIRST_PROTOCOL_SUPPORTING_PERSISTENT_EVICTION))
1712+
if (ledgerCloseMeta)
17021713
{
1703-
auto createdVec = std::vector<LedgerKey>(
1704-
createdPersistentDataKeys.begin(),
1705-
createdPersistentDataKeys.end());
1706-
auto deletedVec = std::vector<LedgerKey>(
1707-
deletedPersistentDataKeys.begin(),
1708-
deletedPersistentDataKeys.end());
1709-
mApp.getBucketManager().addHotArchiveBatch(
1710-
mApp, lh, evictedEntries.second, createdVec,
1711-
deletedVec);
1712-
}
1713-
1714-
if (ledgerCloseMeta)
1715-
{
1716-
ledgerCloseMeta->populateEvictedEntries(evictedEntries);
1717-
}
1714+
ledgerCloseMeta->populateEvictedEntries(evictedEntries);
17181715
}
1719-
else
1720-
{
1716+
}
1717+
else
1718+
{
17211719

1722-
if (ledgerCloseMeta)
1723-
{
1724-
ledgerCloseMeta->populateEvictedEntriesLegacy(
1725-
ltxEvictions.getChanges());
1726-
}
1720+
if (ledgerCloseMeta)
1721+
{
1722+
ledgerCloseMeta->populateEvictedEntriesLegacy(
1723+
ltxEvictions.getChanges());
17271724
}
1728-
1729-
ltxEvictions.commit();
17301725
}
17311726

1727+
ltxEvictions.commit();
1728+
17321729
getSorobanNetworkConfigInternal().maybeSnapshotBucketListSize(
17331730
lh.ledgerSeq, ltx, mApp);
17341731
}

src/main/SettingsUpgradeUtils.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ getWasmRestoreTx(PublicKey const& publicKey, SequenceNumber seqNum)
1313
TransactionEnvelope txEnv;
1414
txEnv.type(ENVELOPE_TYPE_TX);
1515

16+
#ifdef ENABLE_NEXT_PROTOCOL_VERSION_UNSAFE_FOR_PRODUCTION
17+
txEnv.v1().tx.ext.sorobanData().ext.v(1);
18+
#endif
19+
1620
auto& tx = txEnv.v1().tx;
1721
tx.sourceAccount = toMuxedAccount(publicKey);
1822
tx.fee = 100'000'000;
@@ -49,6 +53,10 @@ getWasmRestoreTx(PublicKey const& publicKey, SequenceNumber seqNum)
4953
tx.ext.sorobanData().resources = restoreResources;
5054
tx.ext.sorobanData().resourceFee = 55'000'000;
5155

56+
#ifdef ENABLE_NEXT_PROTOCOL_VERSION_UNSAFE_FOR_PRODUCTION
57+
tx.ext.sorobanData().ext.v(1);
58+
#endif
59+
5260
return {txEnv, contractCodeLedgerKey};
5361
}
5462

@@ -96,6 +104,10 @@ getUploadTx(PublicKey const& publicKey, SequenceNumber seqNum)
96104
tx.ext.sorobanData().resources = uploadResources;
97105
tx.ext.sorobanData().resourceFee = 55'000'000;
98106

107+
#ifdef ENABLE_NEXT_PROTOCOL_VERSION_UNSAFE_FOR_PRODUCTION
108+
tx.ext.sorobanData().ext.v(1);
109+
#endif
110+
99111
return {txEnv, contractCodeLedgerKey};
100112
}
101113

@@ -180,6 +192,10 @@ getCreateTx(PublicKey const& publicKey, LedgerKey const& contractCodeLedgerKey,
180192
tx.ext.sorobanData().resources = uploadResources;
181193
tx.ext.sorobanData().resourceFee = 15'000'000;
182194

195+
#ifdef ENABLE_NEXT_PROTOCOL_VERSION_UNSAFE_FOR_PRODUCTION
196+
tx.ext.sorobanData().ext.v(1);
197+
#endif
198+
183199
return {txEnv, contractSourceRefLedgerKey, contractID};
184200
}
185201

@@ -274,6 +290,10 @@ getInvokeTx(PublicKey const& publicKey, LedgerKey const& contractCodeLedgerKey,
274290
tx.ext.sorobanData().resources = invokeResources;
275291
tx.ext.sorobanData().resourceFee = 65'000'000;
276292

293+
#ifdef ENABLE_NEXT_PROTOCOL_VERSION_UNSAFE_FOR_PRODUCTION
294+
tx.ext.sorobanData().ext.v(1);
295+
#endif
296+
277297
ConfigUpgradeSetKey key;
278298
key.contentHash = upgradeHash;
279299
key.contractID = contractID;

0 commit comments

Comments
 (0)