IndexError: list index out of range when continuing a sync started with Cyberduck

Ouverte
#581 8 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
22/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
python
Domaine
cli, cloud

Piste de recherche

The traceback points to _find_unfinished_file_if_possible in b2sdk/bucket.py (around line 696), where part_ranges[part.part_number - 1] indexes past the end, and it is reached from _upload_large_file (around line 649). Start by reading how the unfinished-file part list is compared with the computed part ranges, then reproduce with a large file that has a partial upload. Done means resuming an interrupted large upload no longer raises IndexError, and the sync completes or falls back to a fresh upload.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug help wanted

The error occurs while trying to sync a large number of files (~139000) for upload. The process worked correctly on default settings up until nearly the end where the following error occurred. This sync has never successfully completed and is going to a new bucket on a new account.

H:\>b2 sync --skipNewer . b2://FamilyLaCieBackup/Cyberduck
ERROR:b2sdk.sync.action:an exception occurred in a sync action
Traceback (most recent call last):
  File "c:\program files\python37\lib\site-packages\b2sdk\sync\action.py", line 49, in run
    self.do_action(bucket, reporter)
  File "c:\program files\python37\lib\site-packages\b2sdk\sync\action.py", line 129, in do_action
    progress_listener=SyncFileReporter(reporter)
  File "c:\program files\python37\lib\site-packages\logfury\v0_1\trace_call.py", line 84, in wrapper
    return function(*wrapee_args, **wrapee_kwargs)
  File "c:\program files\python37\lib\site-packages\b2sdk\bucket.py", line 591, in upload
    upload_source, file_name, content_type, file_info, progress_listener
  File "c:\program files\python37\lib\site-packages\b2sdk\bucket.py", line 649, in _upload_large_file
    part_ranges,
  File "c:\program files\python37\lib\site-packages\b2sdk\bucket.py", line 696, in _find_unfinished_file_if_possible
    offset, part_length = part_ranges[part.part_number - 1]
IndexError: list index out of range
b2_upload(\\?\H:\mp4FILES\REEL14.mp4, Cyberduck/mp4FILES/REEL14.mp4, 1369161244000): IndexError('list index out of range') list index out of range
ERROR:b2sdk.sync.action:an exception occurred in a sync action
Traceback (most recent call last):
  File "c:\program files\python37\lib\site-packages\b2sdk\sync\action.py", line 49, in run
    self.do_action(bucket, reporter)
  File "c:\program files\python37\lib\site-packages\b2sdk\sync\action.py", line 129, in do_action
    progress_listener=SyncFileReporter(reporter)
  File "c:\program files\python37\lib\site-packages\logfury\v0_1\trace_call.py", line 84, in wrapper
    return function(*wrapee_args, **wrapee_kwargs)
  File "c:\program files\python37\lib\site-packages\b2sdk\bucket.py", line 591, in upload
    upload_source, file_name, content_type, file_info, progress_listener
  File "c:\program files\python37\lib\site-packages\b2sdk\bucket.py", line 649, in _upload_large_file
    part_ranges,
  File "c:\program files\python37\lib\site-packages\b2sdk\bucket.py", line 696, in _find_unfinished_file_if_possible
    offset, part_length = part_ranges[part.part_number - 1]
IndexError: list index out of range
b2_upload(\\?\H:\mp4FILES\REEL5.mp4, Cyberduck/mp4FILES/REEL5.mp4, 1369151190000): IndexError('list index out of range') list index out of range
ERROR:b2.console_tool:ConsoleTool command error
Traceback (most recent call last):
  File "c:\program files\python37\lib\site-packages\b2\console_tool.py", line 1361, in run_command
    return command.run(args)
  File "c:\program files\python37\lib\site-packages\b2\console_tool.py", line 1184, in run
    allow_empty_source=allow_empty_source
  File "c:\program files\python37\lib\site-packages\logfury\v0_1\trace_call.py", line 84, in wrapper
    return function(*wrapee_args, **wrapee_kwargs)
  File "c:\program files\python37\lib\site-packages\b2sdk\sync\sync.py", line 273, in sync_folders
    raise CommandError('sync is incomplete')
b2sdk.exception.CommandError: sync is incomplete
ERROR: sync is incomplete

This is a copy paste from the last try but I have tried a few different things to get around this error.

  • Python 2.7 (32 bit and 64 bit)
  • Change number of threads (1, 10, 100)
  • Python 3.7 (64 bit)
  • reinstall the b2 CLI
Langage dominant
Python
Étoiles
638
Forks
138
Merge moyen
8 h 27 min
PR mergées (30 j)
8

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Backblaze/B2_Command_Line_Tool

Toutes les issues de Backblaze/B2_Command_Line_Tool

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.