dandi / dandisets

737 Dandisets, 812.2 TB total. DataLad super-dataset of all Dandisets from https://github.com/dandisets
10 stars 0 forks source link

000108 crashes with create_sibling_github(error): #203

Closed yarikoptic closed 1 year ago

yarikoptic commented 2 years ago
(base) dandi@drogon:/mnt/backup/dandi/dandisets$ tools/backups2datalad-update-cron-108
> eval python -m tools.backups2datalad -l WARNING --pdb --backup-root . --config tools/backups2datalad.cfg.yaml update-from-backup 000108
>> python -m tools.backups2datalad -l WARNING --pdb --backup-root . --config tools/backups2datalad.cfg.yaml update-from-backup 000108
A newer version (0.40.1) of dandi/dandi-cli is available. You are using 0.40.0
run(ok): /mnt/backup/dandi/dandisets/dandisets (dataset) [/home/dandi/miniconda3/envs/dandisets/bi...]
create(ok): . (dataset)
action summary:
  create (ok: 1)
  run (ok: 1)
run(ok): /mnt/backup/dandi/dandisets/dandisets/000108 (dataset) [/home/dandi/miniconda3/envs/dandisets/bi...]
create(ok): . (dataset)
action summary:
  create (ok: 1)
  run (ok: 1)
create(ok): . (dataset)
create(ok): . (dataset)
create(ok): . (dataset)
create(ok): . (dataset)
add(ok): .dandi/.gitattributes (file)
save(ok): . (dataset)
action summary:
  add (ok: 1)
  save (ok: 1)
add(ok): .dandi/.gitattributes (file)
save(ok): . (dataset)
action summary:
  add (ok: 1)
  save (ok: 1)
create_sibling_github(error): [A repository 'd241fe01-a13a-412c-9774-fc28518f41b9' already exists at 'https://api.github.com', use existing=reconfigure to use it as a sibling]
add(ok): .dandi/.gitattributes (file)
save(ok): . (dataset)
action summary:
  add (ok: 1)
  save (ok: 1)
create_sibling_github(error): [A repository 'bf47be1a-4fed-4105-bcb4-c52534a45b82' already exists at 'https://api.github.com', use existing=reconfigure to use it as a sibling]
add(ok): .dandi/.gitattributes (file)
save(ok): . (dataset)
action summary:
  add (ok: 1)
  save (ok: 1)
create_sibling_github(error): [A repository 'f7e3a560-c4a6-4652-b8c8-66afe580e4cb' already exists at 'https://api.github.com', use existing=reconfigure to use it as a sibling]
create_sibling_github(error): [A repository '66dbcc6f-0396-441d-aea6-0af8d5500562' already exists at 'https://api.github.com', use existing=reconfigure to use it as a sibling]
2022-06-13T16:33:16-0400 [ERROR   ] backups2datalad: Operation failed with exception:
Traceback (most recent call last):
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/asyncer.py", line 413, in async_assets
    nursery.start_soon(dm.read_addurl)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 660, in __aexit__
    raise ExceptionGroup(exceptions)
anyio._backends._asyncio.ExceptionGroup: 4 exceptions were raised in the task group:
----------------------------
Traceback (most recent call last):
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/zarr.py", line 405, in sync_zarr
    await anyio.to_thread.run_sync(init_zarr_dataset, ds, asset, config.zarrs)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/to_thread.py", line 31, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
    return await future
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 867, in run
    result = context.run(func, *args)
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/zarr.py", line 480, in init_zarr_dataset
    create_github_sibling(ds, owner=zgh, name=asset.zarr, backup_remote=zcfg.remote)
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/util.py", line 477, in create_github_sibling
    ds.create_sibling_github(
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/distribution/dataset.py", line 502, in apply_func
    return f(*args, **kwargs)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/interface/utils.py", line 447, in eval_func
    return return_func(*args, **kwargs)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/interface/utils.py", line 439, in return_func
    results = list(results)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/interface/utils.py", line 424, in generator_func
    raise IncompleteResultsError(
datalad.support.exceptions.IncompleteResultsError: Command did not complete successfully. 1 failed:
[{'action': 'create_sibling_github',
  'message': ("A repository '%s' already exists at '%s', use "
              'existing=reconfigure to use it as a sibling',
              'd241fe01-a13a-412c-9774-fc28518f41b9',
              'https://api.github.com'),
  'preexisted': True,
  'refds': '/mnt/backup/dandi/dandisets/dandizarrs/d241fe01-a13a-412c-9774-fc28518f41b9',
  'status': 'error'}]
----------------------------
Traceback (most recent call last):
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/zarr.py", line 405, in sync_zarr
    await anyio.to_thread.run_sync(init_zarr_dataset, ds, asset, config.zarrs)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/to_thread.py", line 31, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
    return await future
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 867, in run
    result = context.run(func, *args)
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/zarr.py", line 480, in init_zarr_dataset
    create_github_sibling(ds, owner=zgh, name=asset.zarr, backup_remote=zcfg.remote)
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/util.py", line 477, in create_github_sibling
    ds.create_sibling_github(
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/distribution/dataset.py", line 502, in apply_func
    return f(*args, **kwargs)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/interface/utils.py", line 447, in eval_func
    return return_func(*args, **kwargs)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/interface/utils.py", line 439, in return_func
    results = list(results)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/interface/utils.py", line 424, in generator_func
    raise IncompleteResultsError(
datalad.support.exceptions.IncompleteResultsError: Command did not complete successfully. 1 failed:
[{'action': 'create_sibling_github',
  'message': ("A repository '%s' already exists at '%s', use "
              'existing=reconfigure to use it as a sibling',
              'bf47be1a-4fed-4105-bcb4-c52534a45b82',
              'https://api.github.com'),
  'preexisted': True,
  'refds': '/mnt/backup/dandi/dandisets/dandizarrs/bf47be1a-4fed-4105-bcb4-c52534a45b82',
  'status': 'error'}]
----------------------------
Traceback (most recent call last):
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/zarr.py", line 405, in sync_zarr
    await anyio.to_thread.run_sync(init_zarr_dataset, ds, asset, config.zarrs)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/to_thread.py", line 31, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
    return await future
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 867, in run
    result = context.run(func, *args)
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/zarr.py", line 480, in init_zarr_dataset
    create_github_sibling(ds, owner=zgh, name=asset.zarr, backup_remote=zcfg.remote)
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/util.py", line 477, in create_github_sibling
    ds.create_sibling_github(
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/distribution/dataset.py", line 502, in apply_func
    return f(*args, **kwargs)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/interface/utils.py", line 447, in eval_func
    return return_func(*args, **kwargs)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/interface/utils.py", line 439, in return_func
    results = list(results)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/interface/utils.py", line 424, in generator_func
    raise IncompleteResultsError(
datalad.support.exceptions.IncompleteResultsError: Command did not complete successfully. 1 failed:
[{'action': 'create_sibling_github',
  'message': ("A repository '%s' already exists at '%s', use "
              'existing=reconfigure to use it as a sibling',
              'f7e3a560-c4a6-4652-b8c8-66afe580e4cb',
              'https://api.github.com'),
  'preexisted': True,
  'refds': '/mnt/backup/dandi/dandisets/dandizarrs/f7e3a560-c4a6-4652-b8c8-66afe580e4cb',
  'status': 'error'}]
----------------------------
Traceback (most recent call last):
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/zarr.py", line 405, in sync_zarr
    await anyio.to_thread.run_sync(init_zarr_dataset, ds, asset, config.zarrs)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/to_thread.py", line 31, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
    return await future
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 867, in run
    result = context.run(func, *args)
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/zarr.py", line 480, in init_zarr_dataset
    create_github_sibling(ds, owner=zgh, name=asset.zarr, backup_remote=zcfg.remote)
  File "/mnt/backup/dandi/dandisets/tools/backups2datalad/util.py", line 477, in create_github_sibling
    ds.create_sibling_github(
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/distribution/dataset.py", line 502, in apply_func
    return f(*args, **kwargs)
  File "/home/dandi/miniconda3/envs/dandisets/lib/python3.8/site-packages/datalad/interface/utils.py", line 447, in eval_func
...

I have checked the 'd241fe01-a13a-412c-9774-fc28518f41b9' -- it was a dirty git repo, had github remote, and https://github.com/dandizarrs/d241fe01-a13a-412c-9774-fc28518f41b9 indeed exists. Did reset --hard there, and in the 2nd one. Didn't touch 3, 4th so you could have ...

Here is a dirty shell history of what I have done to make them all consistent etc

 2015  for f in *; do echo "--- $f"; git -C $f status; git remote; git fetch github;  done  | less
 2016  for f in *; do echo "--- $f"; git -C $f status; git -C $f remote; git -C $f fetch github;  done  | less
 2017  for f in *; do echo "--- $f"; git reset --hard; git -C $f remote; git -C $f fetch github;  done  | less
 2018  for f in *; do echo "--- $f"; git -C $f reset --hard; git -C $f remote; git -C $f fetch github;  done  | less
 2019  for f in *; do git -C $f remote | { grep github || echo $f; }; done
 2020  for f in *; do git -C $f status; done
 2021  for f in *; do git -C $f status | { grep 'upstream is gone' && echo "$f"; }; done
 2022  cd 0cadb13d-2ad9-43a8-8a52-947fa161cc49
 2023  git branch -a
 2024  git remote
 2025  git fetch github
 2026  git branch -a
 2027  cat .git/config
 2028  git push -u github 
 2029  datalad push --to github
 2030  cd ..
 2031  for f in *; do git -C $f status | { grep 'upstream is gone' && { echo "$f"; git -C $f push -u github ; datalad -C $f push --to github; }; done
 2032  for f in *; do git -C $f status | { grep 'upstream is gone' && { echo "$f"; git -C $f push -u github ; datalad -C $f push --to github; };  }; done
 2033  for f in *; do git -C $f status | { grep 'upstream is gone' && echo "$f"; }; done
 2034  for f in *; do git -C $f status || echo $f bad; done
 2035  for f in *; do git -C $f status >/dev/null || echo $f bad; done

And will rerun that script now again

yarikoptic commented 1 year ago

We know what it is about, so let's close