aimhubio / aim

Aim πŸ’« β€” An easy-to-use & supercharged open-source experiment tracker.
https://aimstack.io
Apache License 2.0
5.23k stars 321 forks source link

Typo: `errorsRocksIOError` vs `errors.RocksIOError` #3207

Closed sulan closed 3 months ago

sulan commented 3 months ago

πŸ› Bug

In aim/storage/union.pyx, line 56, the exception in the except clause is errorsRocksIOError. I guess it should be errors.RocksIOError, since that's what is in the other methods.

This causes the following exception:

To reproduce

List corrupted runs (e.g., by aim runs ls --corrupted or Repo.list_corrupted_runs() for a repository that contains corrupted runs. Actually, I couldn't reproduce it on a newly initialised repository, after creating runs and deleting random files from them, so it may not be that simple.

However, trying to list corrupted runs on the repository that I actually use produced the following:

% aim runs ls --corrupted
Traceback (most recent call last):
  File "/home/sulan/miniconda3/envs/aim_newest/bin/aim", line 8, in <module>
    sys.exit(cli_entry_point())
  File "/home/sulan/miniconda3/envs/aim_newest/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/sulan/miniconda3/envs/aim_newest/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/sulan/miniconda3/envs/aim_newest/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/sulan/miniconda3/envs/aim_newest/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/sulan/miniconda3/envs/aim_newest/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/sulan/miniconda3/envs/aim_newest/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/sulan/miniconda3/envs/aim_newest/lib/python3.10/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/sulan/miniconda3/envs/aim_newest/lib/python3.10/site-packages/aim/cli/runs/commands.py", line 34, in list_runs
    run_hashes = repo.list_corrupted_runs() if corrupted else repo.list_all_runs()
  File "/home/sulan/miniconda3/envs/aim_newest/lib/python3.10/site-packages/aim/sdk/repo.py", line 433, in list_corrupted_runs
    return list(map(get_run_hash_from_prefix, container.corrupted_dbs))
  File "aim/storage/union.pyx", line 313, in aim.storage.union.RocksUnionContainer.corrupted_dbs
  File "aim/storage/union.pyx", line 56, in aim.storage.union.ItemsIterator.seek_to_first
AttributeError: module 'aimrocks' has no attribute 'errorsRocksIOError'

Expected behavior

The command runs without raising an AttributeError and lists the corrupted runs.

Environment

mihran113 commented 3 months ago

Hey @sulan! Thanks a lot for pointing out the issue. Would you like to open a PR with a fix? That would be much appreciated. πŸ™Œ

sulan commented 3 months ago

Sure. Sorry about the late reply, here it is: #3208

sulan commented 3 months ago

Fixed in #3208. Thanks!