Skip to content

TagFuse: unhandled exceptions in write and flush when writing image to non-existent version #64

@danome

Description

@danome

If no version is specified in the file path of the destination (sd/0/img/) then TagFuse throws unhandled exceptions.

DEBUG:fuse.log-mixin:<- write '[Unhandled Exception]'
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/fuse.py", line 495, in _wrapper
    return func(*args, **kwargs) or 0
  File "/usr/local/lib/python2.7/dist-packages/fuse.py", line 604, in write
    offset, fh)
  File "/usr/local/lib/python2.7/dist-packages/fuse.py", line 972, in __call__
    ret = getattr(self, op)(path, *args)
  File "tagfuse/tagfuse.py", line 288, in write
    return handler.write(path_list, data, offset)
  File "tagfuse/taghandlers.py", line 394, in write
    offset)
  File "tagfuse/radioimage.py", line 90, in im_put_file
    offset)
  File "tagfuse/radioimage.py", line 76, in _put_msg
    tlv_list.append(TagTlv(tlv_types.VERSION, path_list[-1].split('.')))
  File "/mnt/Open/TagNet/tagfuse/../tagnet/tagnet/tagtlv.py", line 568, in __init__
    self.mytlv = _Tlv(t,v)              #  tuple
  File "/mnt/Open/TagNet/tagfuse/../tagnet/tagnet/tagtlv.py", line 320, in __init__
    self.mytuple = self._build_tlv(t, v)
  File "/mnt/Open/TagNet/tagfuse/../tagnet/tagnet/tagtlv.py", line 449, in _build_tlv
    major, minor, build = v
ValueError: need more than 2 values to unpack
DEBUG:fuse.log-mixin:-> flush /a0b696b4fb29/tag/sd/0/img/main442.bin (<fuse.fuse_file_info object at 0x76a46bc0>,)
DEBUG:fuse.log-mixin:<- flush '[Unhandled Exception]'
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/fuse.py", line 495, in _wrapper
    return func(*args, **kwargs) or 0
  File "/usr/local/lib/python2.7/dist-packages/fuse.py", line 621, in flush
    return self.operations('flush', self._decode_optional_path(path), fh)
  File "/usr/local/lib/python2.7/dist-packages/fuse.py", line 972, in __call__
    ret = getattr(self, op)(path, *args)
  File "tagfuse/tagfuse.py", line 123, in flush
    return handler.flush(path_list)
  File "tagfuse/taghandlers.py", line 356, in flush
    self['st_size'] = im_close_file(self.radio, path_list)
  File "tagfuse/radioimage.py", line 163, in im_close_file
    close_req = _close_msg(path_list)
  File "tagfuse/radioimage.py", line 159, in _close_msg
    im_name = TagName(path2tlvs(path_list))
  File "tagfuse/radioutils.py", line 171, in path2tlvs
    t = _build_tlv(p)
  File "tagfuse/radioutils.py", line 167, in _build_tlv
    return TagTlv(val)
  File "/mnt/Open/TagNet/tagfuse/../tagnet/tagnet/tagtlv.py", line 585, in __init__
    raise TlvBadException(t, v)
TlvBadException: Bad Tlv: type:<version:main442.bin>, value:None
DEBUG:fuse.log-mixin:-> release /a0b696b4fb29/tag/sd/0/img/main442.bin (<fuse.fuse_file_info object at 0x76a46bc0>,)
** tag release
*** image io release
*** imagedir.release (close) [u'<node_id:a0b696b4fb29>', u'tag', u'sd', u'0', u'img', u'main442.bin']
DEBUG:fuse.log-mixin:<- release 0

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions