aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2016-01-20 15:40:04 +0200
committerRiccardo Spagni <ric@spagni.net>2016-01-20 15:40:04 +0200
commit4ac4a5eb77be30ec0da0d2e969f693f4a5a085db (patch)
tree3f9010e94c0cb42cb202746377b0acc64640e7ff
parentMerge pull request #614 (diff)
parentdb_lmdb: Continue when tx has no outputs (diff)
downloadmonero-4ac4a5eb77be30ec0da0d2e969f693f4a5a085db.tar.xz
Merge pull request #615
24b6624 db_lmdb: Continue when tx has no outputs (warptangent)
-rw-r--r--src/blockchain_db/lmdb/db_lmdb.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/blockchain_db/lmdb/db_lmdb.cpp b/src/blockchain_db/lmdb/db_lmdb.cpp
index 17a0f9ec2..c18db7724 100644
--- a/src/blockchain_db/lmdb/db_lmdb.cpp
+++ b/src/blockchain_db/lmdb/db_lmdb.cpp
@@ -654,9 +654,11 @@ void BlockchainLMDB::remove_transaction_data(const crypto::hash& tx_hash, const
remove_tx_outputs(tx_hash, tx);
- if (mdb_del(*m_write_txn, m_tx_outputs, &val_h, NULL))
- throw1(DB_ERROR("Failed to add removal of tx outputs to db transaction"));
-
+ auto result = mdb_del(*m_write_txn, m_tx_outputs, &val_h, NULL);
+ if (result == MDB_NOTFOUND)
+ LOG_PRINT_L1("tx has no outputs to remove: " << tx_hash);
+ else if (result)
+ throw1(DB_ERROR(std::string("Failed to add removal of tx outputs to db transaction: ").append(mdb_strerror(result)).c_str()));
}
void BlockchainLMDB::add_output(const crypto::hash& tx_hash, const tx_out& tx_output, const uint64_t& local_index, const uint64_t unlock_time)
@@ -718,7 +720,7 @@ void BlockchainLMDB::remove_tx_outputs(const crypto::hash& tx_hash, const transa
auto result = mdb_cursor_get(cur, &k, &v, MDB_SET);
if (result == MDB_NOTFOUND)
{
- LOG_ERROR("Attempting to remove a tx's outputs, but none found. Continuing, but...be wary, because that's weird.");
+ LOG_PRINT_L2("tx has no outputs, so no global output indices");
}
else if (result)
{