summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/database-redis.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/database-redis.cpp b/src/database-redis.cpp
index cc4e5bade..d7f537977 100644
--- a/src/database-redis.cpp
+++ b/src/database-redis.cpp
@@ -118,12 +118,21 @@ std::string Database_Redis::loadBlock(const v3s16 &pos)
freeReplyObject(reply);
return str;
}
- case REDIS_REPLY_ERROR:
- errorstream << "WARNING: loadBlock: loading block " << PP(pos)
- << " failed: " << reply->str << std::endl;
+ case REDIS_REPLY_ERROR: {
+ std::string errstr = reply->str;
+ freeReplyObject(reply);
+ errorstream << "loadBlock: loading block " << PP(pos)
+ << " failed: " << errstr << std::endl;
+ throw FileNotGoodException(std::string(
+ "Redis command 'HGET %s %s' errored: ") + errstr);
+ }
}
+ errorstream << "loadBlock: loading block " << PP(pos)
+ << " returned invalid reply type " << reply->type
+ << ": " << reply->str << std::endl;
freeReplyObject(reply);
- return "";
+ throw FileNotGoodException(std::string(
+ "Redis command 'HGET %s %s' gave invalid reply."));
}
bool Database_Redis::deleteBlock(const v3s16 &pos)