Skip to content

Commit c59330c

Browse files
committed
Stop throwing exceptions on unrecoverable errors
1 parent 2b3438a commit c59330c

File tree

3 files changed

+19
-18
lines changed

3 files changed

+19
-18
lines changed

src/ledger/LedgerManagerImpl.cpp

+11-12
Original file line numberDiff line numberDiff line change
@@ -1632,7 +1632,7 @@ LedgerManagerImpl::applyThread(AppConnector& app, ThreadEntryMap& entryMap,
16321632
RestoredKeys threadRestoredKeys;
16331633
for (auto const& txBundle : thread)
16341634
{
1635-
releaseAssertOrThrow(txBundle.getResPayload());
1635+
releaseAssert(txBundle.getResPayload());
16361636

16371637
SHA256 txSubSeedSha;
16381638
txSubSeedSha.add(sorobanBasePrngSeed);
@@ -1657,10 +1657,9 @@ LedgerManagerImpl::applyThread(AppConnector& app, ThreadEntryMap& entryMap,
16571657
auto it = entryMap.find(ttlKey);
16581658
if (it != entryMap.end())
16591659
{
1660-
releaseAssertOrThrow(it->second.mLedgerEntry);
1661-
releaseAssertOrThrow(it->second.mLedgerEntry->data.ttl()
1662-
.liveUntilLedgerSeq <=
1663-
extIt->second);
1660+
releaseAssert(it->second.mLedgerEntry);
1661+
releaseAssert(it->second.mLedgerEntry->data.ttl()
1662+
.liveUntilLedgerSeq <= extIt->second);
16641663

16651664
it->second.mLedgerEntry->data.ttl().liveUntilLedgerSeq =
16661665
extIt->second;
@@ -1706,16 +1705,16 @@ LedgerManagerImpl::applyThread(AppConnector& app, ThreadEntryMap& entryMap,
17061705
auto const& updatedLe = entry.second;
17071706

17081707
auto it = entryMap.find(lk);
1709-
releaseAssertOrThrow(it != entryMap.end());
1708+
releaseAssert(it != entryMap.end());
17101709

17111710
auto isReadOnlyTTLIt = isReadOnlyTTLMap.find(lk);
1712-
releaseAssertOrThrow(lk.type() != TTL ||
1713-
isReadOnlyTTLIt != isReadOnlyTTLMap.end());
1711+
releaseAssert(lk.type() != TTL ||
1712+
isReadOnlyTTLIt != isReadOnlyTTLMap.end());
17141713

17151714
if (lk.type() == TTL && it->second.mLedgerEntry && updatedLe &&
17161715
isReadOnlyTTLIt->second /*isReadOnly*/)
17171716
{
1718-
releaseAssertOrThrow(
1717+
releaseAssert(
17191718
updatedLe->data.ttl().liveUntilLedgerSeq >
17201719
it->second.mLedgerEntry->data.ttl().liveUntilLedgerSeq);
17211720

@@ -1743,18 +1742,18 @@ LedgerManagerImpl::applyThread(AppConnector& app, ThreadEntryMap& entryMap,
17431742
for (auto const& key : res.getRestoredKeys().hotArchive)
17441743
{
17451744
auto [_, inserted] = threadRestoredKeys.hotArchive.emplace(key);
1746-
releaseAssertOrThrow(inserted);
1745+
releaseAssert(inserted);
17471746
}
17481747
for (auto const& key : res.getRestoredKeys().liveBucketList)
17491748
{
17501749
auto [_, inserted] =
17511750
threadRestoredKeys.liveBucketList.emplace(key);
1752-
releaseAssertOrThrow(inserted);
1751+
releaseAssert(inserted);
17531752
}
17541753
}
17551754
else
17561755
{
1757-
releaseAssertOrThrow(!txBundle.getResPayload()->isSuccess());
1756+
releaseAssert(!txBundle.getResPayload()->isSuccess());
17581757
}
17591758
}
17601759

src/transactions/OperationFrame.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ OperationFrame::preloadEntryHelper(
183183
auto ttlKey = getTTLKey(lk);
184184
auto ttlLtxe = ltx.loadWithoutRecord(ttlKey);
185185
// TTL entry must exist
186-
releaseAssertOrThrow(ttlLtxe);
186+
releaseAssert(ttlLtxe);
187187

188188
entryMap.emplace(ttlKey,
189189
ThreadEntry{ttlLtxe.current(), false});
@@ -198,7 +198,7 @@ OperationFrame::preloadEntryHelper(
198198
auto ttlKey = getTTLKey(lk);
199199
auto ttlLtxe = ltx.loadWithoutRecord(ttlKey);
200200
// TTL entry must not exist
201-
releaseAssertOrThrow(!ttlLtxe);
201+
releaseAssert(!ttlLtxe);
202202
entryMap.emplace(ttlKey, ThreadEntry{std::nullopt, false});
203203
}
204204
}

src/transactions/TransactionFrame.cpp

+6-4
Original file line numberDiff line numberDiff line change
@@ -1703,11 +1703,11 @@ TransactionFrame::preloadEntriesForParallelApply(
17031703
AbstractLedgerTxn& ltx, ThreadEntryMap& entryMap,
17041704
MutableTxResultPtr txResult) const
17051705
{
1706-
releaseAssertOrThrow(isSoroban());
1707-
releaseAssertOrThrow(mOperations.size() == 1);
1706+
releaseAssert(isSoroban());
1707+
releaseAssert(mOperations.size() == 1);
17081708

17091709
auto sorobanData = txResult->getSorobanData();
1710-
releaseAssertOrThrow(sorobanData);
1710+
releaseAssert(sorobanData);
17111711

17121712
auto op = mOperations.front();
17131713
auto& opResult = txResult->getOpResultAt(0);
@@ -1830,7 +1830,9 @@ TransactionFrame::parallelApply(
18301830
ledgerInfo.getLedgerVersion() >=
18311831
config.LEDGER_PROTOCOL_MIN_VERSION_INTERNAL_ERROR_REPORT;
18321832

1833-
releaseAssertOrThrow(txResult);
1833+
// We can't set an internal error if this is missing, which is why this
1834+
// aborts instead of throwing.
1835+
releaseAssert(txResult);
18341836

18351837
// This tx failed validation earlier, do not apply it
18361838
if (!txResult->isSuccess())

0 commit comments

Comments
 (0)