happyleavesaoc/aoc-mgz

could not read enough bytes - (parsing) -> scenario -> players -> ai -> file

Closed this issue · 1 comments

Hi, thanks for fixing the bug with the Action 135. I found some more errors. I will create separate issues for better tracking. I f you need more sample games where the errors occur I can provide them.

match_id: 66711026
profile_id: 316055

Traceback (most recent call last):
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 2784, in _parse
    return self.subcon._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 311, in _parse
    return self._decode(self.subcon._parse(stream, context, path), context)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 2293, in _parse
    stream2 = BytesIO(_read_stream(stream, length))
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 69, in _read_stream
    raise FieldError("could not read enough bytes, expected %d, found %d" % (length, len(data)))
construct.core.FieldError: could not read enough bytes, expected 4294967295, found 624234

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 1042, in _parse
    obj.append(self.subcon._parse(stream, context._, path))
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 2784, in _parse
    return self.subcon._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 867, in _parse
    subobj = sc._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 2788, in _parse
    raise e.__class__("%s\n    %s" % (e, path))
construct.core.FieldError: could not read enough bytes, expected 4294967295, found 624234
    (parsing) -> scenario -> players -> ai -> file

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 2784, in _parse
    return self.subcon._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 867, in _parse
    subobj = sc._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 1050, in _parse
    raise RangeError("expected %d to %d, found %d" % (min, max, len(obj)))
construct.core.RangeError: expected 16 to 16, found 2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/pypy-latest-linux64/site-packages/mgz/summary/__init__.py", line 72, in __init__
    self._header = mgz.header.parse_stream(self._handle)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 171, in parse_stream
    return self._parse(stream, context2, "(parsing)")
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 867, in _parse
    subobj = sc._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 295, in _parse
    return self.subcon._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 867, in _parse
    subobj = sc._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 295, in _parse
    return self.subcon._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/mgz/util.py", line 57, in _parse
    return self.subcon._parse(new_stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 357, in _parse
    return self.subcon.parse(data, context)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 158, in parse
    return self.parse_stream(BytesIO(data), context, **kw)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 171, in parse_stream
    return self._parse(stream, context2, "(parsing)")
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 867, in _parse
    subobj = sc._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 2784, in _parse
    return self.subcon._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 867, in _parse
    subobj = sc._parse(stream, context, path)
  File "/root/pypy-latest-linux64/site-packages/construct/core.py", line 2788, in _parse
    raise e.__class__("%s\n    %s" % (e, path))
construct.core.RangeError: expected 16 to 16, found 2
    (parsing) -> scenario -> players

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "src/process.py", line 42, in <module>
    summary = mgz.summary.Summary(handle, None)
  File "/root/pypy-latest-linux64/site-packages/mgz/summary/__init__.py", line 84, in __init__
    raise RuntimeError("invalid mgz file: {}".format(e))
RuntimeError: invalid mgz file: expected 16 to 16, found 2
    (parsing) -> scenario -> players