gilesknap / gphotos-sync

Google Photos and Albums backup with Google Photos Library API
Apache License 2.0
1.97k stars 163 forks source link

Byte offset exceeds length of segment #332

Closed 155martinmoreno closed 2 years ago

155martinmoreno commented 2 years ago

Describe the bug Running docker run -ti --name gphotos-sync -v C:\...\gPhotosSync\backup:/storage -v C:\...\gPhotosSync\config:/config -v C:\...:/old-storage gilesknap/gphotos-sync:latest --compare-folder /old-storage /storage produces an error on a .NEF file (reading EXIF data?)

Env Windows 11 - Intel i9 12900K 32GB RAM .NEF file is Nikon for .RAW

Log

Unable to find image 'gilesknap/gphotos-sync:latest' locally latest: Pulling from gilesknap/gphotos-sync 90fe46dd8199: Pull complete 35a4f1977689: Pull complete bbc37f14aded: Pull complete 74e27dc593d4: Pull complete 4352dcff7819: Pull complete deb569b08de6: Pull complete 1aa33568be24: Pull complete a8034acd5893: Pull complete 5ae88975c1eb: Pull complete 6f639827ebe9: Pull complete fa29ccdce1c3: Pull complete 7a0711ca4c3f: Pull complete 00fc23ced5cd: Pull complete Digest: sha256:b89168b8c864d8c9852e6d814b962a2cc99a82592ff51fa6305309fc6e029f44 Status: Downloaded newer image for gilesknap/gphotos-sync:latest 12-10 11:23:38 WARNING gphotos-sync 2.14.2 2021-12-10 11:23:38.978433 12-10 11:23:39 WARNING Indexing Google Photos Files ... 12-10 11:23:40 WARNING indexed 3 items 12-10 11:23:40 WARNING Downloading Photos ... 12-10 11:24:10 WARNING Downloaded 0 Items, Failed 0, Already Downloaded 24739 12-10 11:24:10 ERROR WARNING: skipped 1 files listed in /storage/gphotos.bad_ids.yaml 12-10 11:24:11 WARNING removing previous local scan data 12-10 11:24:13 WARNING Indexing comparison folder /old-storage 12-10 11:25:46 ERROR file /old-storage/.../DSC_5529.NEF could not be made into a media obj Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/gphotos/LocalFilesScan.py", line 75, in index_local_item lf = LocalFilesMedia(path) File "/usr/local/lib/python3.7/site-packages/gphotos/LocalFilesMedia.py", line 89, in init self.get_exif() File "/usr/local/lib/python3.7/site-packages/gphotos/LocalFilesMedia.py", line 137, in get_exif self.exif = exif.Image(image_file) File "/usr/local/lib/python3.7/site-packages/exif/_image.py", line 67, in init self._parse_segments(img_hex) File "/usr/local/lib/python3.7/site-packages/exif/_image.py", line 53, in _parse_segments self._segments['APP1'] = App1MetaData(img_hex[app1_start_index:cursor]) File "/usr/local/lib/python3.7/site-packages/exif/_app1_metadata.py", line 232, in init__ self._unpack_ifd_tags() File "/usr/local/lib/python3.7/site-packages/exif/_app1_metadata.py", line 123, in _unpack_ifd_tags self._segment_hex.set_endianness(self._segment_hex.read(cursor, 2)) File "/usr/local/lib/python3.7/site-packages/exif/_hex_interface.py", line 104, in read raise ValueError("byte offset exceeds length of segment") ValueError: byte offset exceeds length of segment 12-10 11:25:46 ERROR Process failed. Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/gphotos/Main.py", line 418, in main self.start(args) File "/usr/local/lib/python3.7/site-packages/gphotos/Main.py", line 369, in start self.do_sync(args) File "/usr/local/lib/python3.7/site-packages/gphotos/Main.py", line 364, in do_sync self.local_files_scan.scan_local_files() File "/usr/local/lib/python3.7/site-packages/gphotos/LocalFilesScan.py", line 49, in scan_local_files self.scan_folder(self._scan_folder, self.index_local_item) File "/usr/local/lib/python3.7/site-packages/gphotos/LocalFilesScan.py", line 61, in scan_folder self.scan_folder(pth, index) File "/usr/local/lib/python3.7/site-packages/gphotos/LocalFilesScan.py", line 64, in scan_folder self.count += index(pth) File "/usr/local/lib/python3.7/site-packages/gphotos/LocalFilesScan.py", line 75, in index_local_item lf = LocalFilesMedia(path) File "/usr/local/lib/python3.7/site-packages/gphotos/LocalFilesMedia.py", line 89, in init self.get_exif() File "/usr/local/lib/python3.7/site-packages/gphotos/LocalFilesMedia.py", line 137, in get_exif self.exif = exif.Image(image_file) File "/usr/local/lib/python3.7/site-packages/exif/_image.py", line 67, in init self._parse_segments(img_hex) File "/usr/local/lib/python3.7/site-packages/exif/_image.py", line 53, in _parse_segments self._segments['APP1'] = App1MetaData(img_hex[app1_start_index:cursor]) File "/usr/local/lib/python3.7/site-packages/exif/_app1_metadata.py", line 232, in init__ self._unpack_ifd_tags() File "/usr/local/lib/python3.7/site-packages/exif/_app1_metadata.py", line 123, in _unpack_ifd_tags self._segment_hex.set_endianness(self._segment_hex.read(cursor, 2)) File "/usr/local/lib/python3.7/site-packages/exif/_hex_interface.py", line 104, in read raise ValueError("byte offset exceeds length of segment") ValueError: byte offset exceeds length of segment 12-10 11:25:46 WARNING Done.

gilesknap commented 2 years ago

Thanks for this report and sorry for the late reply. I'm afraid I'm deprecating the comparison feature. It is really complex and not used frequently enough.