From cc4261aea51856215a267e2aa8561a89d22cf448 Mon Sep 17 00:00:00 2001 From: Andrew Chin Date: Fri, 13 Dec 2013 20:34:54 -0500 Subject: [PATCH] Ignore corrupt chunks from .get_chunks() in genpoi See #1038 --- overviewer_core/aux_files/genPOI.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/overviewer_core/aux_files/genPOI.py b/overviewer_core/aux_files/genPOI.py index ad8858d..4fe7aa3 100755 --- a/overviewer_core/aux_files/genPOI.py +++ b/overviewer_core/aux_files/genPOI.py @@ -47,9 +47,12 @@ def parseBucketChunks(bucket, rset): cnt = 0 l = len(bucket) for b in bucket: - data = rset.get_chunk(b[0],b[1]) - pois['TileEntities'] += data['TileEntities'] - pois['Entities'] += data['Entities'] + try: + data = rset.get_chunk(b[0],b[1]) + pois['TileEntities'] += data['TileEntities'] + pois['Entities'] += data['Entities'] + except nbt.CorruptChunkError: + logging.warning("Ignoring POIs in corrupt chunk %d,%d", b[0], b[1]) # Perhaps only on verbose ? i = i + 1 @@ -77,9 +80,12 @@ def handleEntities(rset, outputdir, render, rname, config): if numbuckets == 1: for (x,z,mtime) in rset.iterate_chunks(): - data = rset.get_chunk(x,z) - rset._pois['TileEntities'] += data['TileEntities'] - rset._pois['Entities'] += data['Entities'] + try: + data = rset.get_chunk(x,z) + rset._pois['TileEntities'] += data['TileEntities'] + rset._pois['Entities'] += data['Entities'] + except nbt.CorruptChunkError: + logging.warning("Ignoring POIs in corrupt chunk %d,%d", x,z) else: buckets = [[] for i in range(numbuckets)];