Skip to content

Errors from running `marv run --col=bags --keep-going` seem to crash front end web

Several errors were raised when running marv run --col=bags --keep-going. I assume --keep-going would allow us to ignore those problematic bags while it seems ending up crashing the front end web. No bags can be seen from the web.

Screenshot of the webpage: Screenshot_from_2020-12-21_17-19-02

Errors:

Traceback (most recent call last):
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 2001, in _read_sized
    size = _read_uint32(f)
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 1969, in _read_uint32
    def _read_uint32(f): return _unpack_uint32(f.read(4))
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 1976, in _unpack_uint32
    def _unpack_uint32(v): return struct.unpack('<L', v)[0]
struct.error: unpack requires a buffer of 4 bytes

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 2059, in _read_header
    header = _read_sized(f)
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 2003, in _read_sized
    raise ROSBagFormatException('error unpacking uint32: %s' % str(ex))
marv_ros.rosbag.ROSBagFormatException: error unpacking uint32: unpack requires a buffer of 4 bytes

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 2350, in start_reading
    connection_info = self.read_connection_record(self.bag._file, True)
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 2425, in read_connection_record
    header = self.bag._encryptor.read_encrypted_header(_read_header, f, _OP_CONNECTION)
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 231, in read_encrypted_header
    return read_header(f, req_op)
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 2061, in _read_header
    raise ROSBagFormatException('Error reading header: %s' % str(ex))
marv_ros.rosbag.ROSBagFormatException: Error reading header: error unpacking uint32: unpack requires a buffer of 4 bytes

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/marv/lib/python3.8/site-packages/marv/cli.py", line 508, in marvcli_run
    await site.run(setid, selected_nodes, deps, force, keep,
  File "/opt/marv/lib/python3.8/site-packages/marv/site.py", line 397, in run
    changed = await run_nodes(dataset, nodes, store, force=force,
  File "/opt/marv/lib/python3.8/site-packages/marv_node/run.py", line 64, in run_nodes
    done, send_queue_empty = await process_task(current, task)
  File "/opt/marv/lib/python3.8/site-packages/marv_node/run.py", line 364, in process_task
    return await loop()
  File "/opt/marv/lib/python3.8/site-packages/marv_node/run.py", line 246, in loop
    promise = await current.asend(send)
  File "/opt/marv/lib/python3.8/site-packages/marv_node/driver.py", line 85, in _run
    request = await agen.asend(send)
  File "/opt/marv/lib/python3.8/site-packages/marv_node/node.py", line 200, in invoke
    request = gen.send(response)
  File "/opt/marv/lib/python3.8/site-packages/marv_robotics/bag.py", line 208, in bagmeta
    with rosbag.Bag(path) as bag:
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 530, in __init__
    self._open(f, mode, allow_unindexed)
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 1483, in _open
    if   mode == 'r': self._open_read(f, allow_unindexed)
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 1519, in _open_read
    self._reader.start_reading()
  File "/opt/marv/lib/python3.8/site-packages/marv_ros/rosbag.py", line 2371, in start_reading
    raise ROSBagUnindexedException()
marv_ros.rosbag.ROSBagUnindexedException: Unindexed bag```
Edited by Yilun Zhang