iterative / gto

🏷️ Git Tag Ops. Turn your Git repository into Artifact Registry or Model Registry.
https://dvc.org/doc/gto
Apache License 2.0
140 stars 16 forks source link

Bug: gto irresponsive #377

Closed francesco086 closed 1 year ago

francesco086 commented 1 year ago

Background

I have a dvc/gto repository (unfortunately private, cannot share it). Here the most recent tags:

Screenshot 2023-07-25 at 15 02 34

I tried to register a new version and I got an error. Then I tried to do a gto show, and that also result in the same problem...

Screenshot 2023-07-25 at 15 07 40

Screenshot 2023-07-25 at 15 08 07

I tried with gto 0.3.5, 0.3.3, 0.3.1.

Here the python (3.11.1) packages:

Package                                 Version
--------------------------------------- -----------
adal                                    1.2.7
adlfs                                   2023.4.0
aiohttp                                 3.8.4
aiohttp-retry                           2.8.3
aiosignal                               1.3.1
amqp                                    5.1.1
antlr4-python3-runtime                  4.9.3
appdirs                                 1.4.4
applicationinsights                     0.11.10
argcomplete                             2.1.2
async-timeout                           4.0.2
asyncssh                                2.13.1
atpublic                                3.1.1
attrs                                   23.1.0
azure-appconfiguration                  1.1.1
azure-batch                             13.0.0
azure-cli                               2.48.1
azure-cli-core                          2.48.1
azure-cli-telemetry                     1.0.8
azure-common                            1.1.28
azure-core                              1.26.4
azure-cosmos                            3.2.0
azure-data-tables                       12.4.0
azure-datalake-store                    0.0.53
azure-graphrbac                         0.60.0
azure-identity                          1.13.0
azure-keyvault                          1.1.0
azure-keyvault-administration           4.0.0b3
azure-keyvault-keys                     4.8.0b2
azure-loganalytics                      0.1.1
azure-mgmt-advisor                      9.0.0
azure-mgmt-apimanagement                3.0.0
azure-mgmt-appconfiguration             3.0.0
azure-mgmt-appcontainers                2.0.0
azure-mgmt-applicationinsights          1.0.0
azure-mgmt-authorization                3.0.0
azure-mgmt-batch                        17.0.0
azure-mgmt-batchai                      7.0.0b1
azure-mgmt-billing                      6.0.0
azure-mgmt-botservice                   2.0.0
azure-mgmt-cdn                          12.0.0
azure-mgmt-cognitiveservices            13.3.0
azure-mgmt-compute                      29.1.0
azure-mgmt-consumption                  2.0.0
azure-mgmt-containerinstance            10.1.0b1
azure-mgmt-containerregistry            10.1.0
azure-mgmt-containerservice             22.0.0
azure-mgmt-core                         1.4.0
azure-mgmt-cosmosdb                     9.0.0
azure-mgmt-databoxedge                  1.0.0
azure-mgmt-datalake-analytics           0.2.1
azure-mgmt-datalake-nspkg               3.0.1
azure-mgmt-datalake-store               0.5.0
azure-mgmt-datamigration                10.0.0
azure-mgmt-devtestlabs                  4.0.0
azure-mgmt-dns                          8.0.0
azure-mgmt-eventgrid                    10.2.0b2
azure-mgmt-eventhub                     10.1.0
azure-mgmt-extendedlocation             1.0.0b2
azure-mgmt-hdinsight                    9.0.0
azure-mgmt-imagebuilder                 1.1.0
azure-mgmt-iotcentral                   10.0.0b2
azure-mgmt-iothub                       2.3.0
azure-mgmt-iothubprovisioningservices   1.1.0
azure-mgmt-keyvault                     10.2.0
azure-mgmt-kusto                        0.3.0
azure-mgmt-loganalytics                 13.0.0b4
azure-mgmt-managedservices              1.0.0
azure-mgmt-managementgroups             1.0.0
azure-mgmt-maps                         2.0.0
azure-mgmt-marketplaceordering          1.1.0
azure-mgmt-media                        9.0.0
azure-mgmt-monitor                      5.0.1
azure-mgmt-msi                          7.0.0
azure-mgmt-netapp                       9.0.1
azure-mgmt-nspkg                        3.0.2
azure-mgmt-policyinsights               1.1.0b4
azure-mgmt-privatedns                   1.0.0
azure-mgmt-rdbms                        10.2.0b8
azure-mgmt-recoveryservices             2.2.0
azure-mgmt-recoveryservicesbackup       5.1.0
azure-mgmt-redhatopenshift              1.2.0
azure-mgmt-redis                        14.1.0
azure-mgmt-relay                        0.1.0
azure-mgmt-resource                     22.0.0
azure-mgmt-search                       9.0.0
azure-mgmt-security                     3.0.0
azure-mgmt-servicebus                   8.2.0
azure-mgmt-servicefabric                1.0.0
azure-mgmt-servicefabricmanagedclusters 1.0.0
azure-mgmt-servicelinker                1.2.0b1
azure-mgmt-signalr                      1.1.0
azure-mgmt-sql                          4.0.0b10
azure-mgmt-sqlvirtualmachine            1.0.0b5
azure-mgmt-storage                      21.0.0
azure-mgmt-synapse                      2.1.0b5
azure-mgmt-trafficmanager               1.0.0
azure-mgmt-web                          7.0.0
azure-multiapi-storage                  1.1.0
azure-nspkg                             3.0.2
azure-storage-blob                      12.16.0
azure-storage-common                    1.4.2
azure-synapse-accesscontrol             0.5.0
azure-synapse-artifacts                 0.15.0
azure-synapse-managedprivateendpoints   0.4.0
azure-synapse-spark                     0.2.0
bcrypt                                  4.0.1
billiard                                3.6.4.0
celery                                  5.2.7
certifi                                 2023.5.7
cffi                                    1.15.1
chardet                                 3.0.4
charset-normalizer                      3.1.0
click                                   8.1.3
click-didyoumean                        0.3.0
click-plugins                           1.1.1
click-repl                              0.2.0
colorama                                0.4.6
configobj                               5.0.8
cryptography                            40.0.2
Deprecated                              1.2.13
dictdiffer                              0.9.0
diskcache                               5.6.1
distro                                  1.8.0
dpath                                   2.1.6
dulwich                                 0.21.5
dvc                                     2.56.0
dvc-azure                               2.21.1
dvc-data                                0.47.5
dvc-http                                2.30.2
dvc-objects                             0.22.0
dvc-render                              0.5.3
dvc-studio-client                       0.9.2
dvc-task                                0.2.1
entrypoints                             0.4
fabric                                  2.7.1
filelock                                3.12.0
flatten-dict                            0.4.2
flufl.lock                              7.1.1
frozenlist                              1.3.3
fsspec                                  2023.5.0
funcy                                   2.0
gitdb                                   4.0.10
GitPython                               3.1.31
grandalf                                0.8
gto                                     0.3.3
humanfriendly                           10.0
hydra-core                              1.3.2
idna                                    3.4
invoke                                  1.7.3
isodate                                 0.6.1
iterative-telemetry                     0.0.8
javaproperties                          0.5.2
jmespath                                1.0.1
jsondiff                                2.0.0
knack                                   0.10.1
kombu                                   5.2.4
markdown-it-py                          2.2.0
mdurl                                   0.1.2
msal                                    1.20.0
msal-extensions                         1.0.0
msrest                                  0.7.1
msrestazure                             0.6.4
multidict                               6.0.4
nanotime                                0.5.2
networkx                                3.1
oauthlib                                3.2.2
omegaconf                               2.3.0
orjson                                  3.8.12
packaging                               23.1
paramiko                                3.1.0
pathlib2                                2.3.7.post1
pathspec                                0.11.1
pip                                     23.2.1
pkginfo                                 1.9.6
platformdirs                            3.5.1
portalocker                             2.7.0
prompt-toolkit                          3.0.38
psutil                                  5.9.5
pycparser                               2.21
pydantic                                1.10.12
pydot                                   1.4.2
pygit2                                  1.12.1
PyGithub                                1.58.2
Pygments                                2.15.1
pygtrie                                 2.5.0
PyJWT                                   2.7.0
PyNaCl                                  1.5.0
pyOpenSSL                               23.1.1
pyparsing                               3.0.9
PySocks                                 1.7.1
python-dateutil                         2.8.2
pytz                                    2023.3
PyYAML                                  6.0
requests                                2.30.0
requests-oauthlib                       1.3.1
rich                                    13.3.5
ruamel.yaml                             0.17.26
ruamel.yaml.clib                        0.2.7
scmrepo                                 1.0.3
scp                                     0.13.6
semver                                  3.0.1
setuptools                              68.0.0
shortuuid                               1.0.11
shtab                                   1.6.1
six                                     1.16.0
smmap                                   5.0.0
sqltrie                                 0.3.1
sshtunnel                               0.1.5
tabulate                                0.9.0
tomlkit                                 0.11.8
tqdm                                    4.65.0
typer                                   0.9.0
typing_extensions                       4.5.0
urllib3                                 2.0.2
urllib3-secure-extra                    0.1.0
vine                                    5.0.0
voluptuous                              0.13.1
wcwidth                                 0.2.6
websocket-client                        1.3.3
wheel                                   0.41.0
wrapt                                   1.15.0
xmltodict                               0.13.0
yarl                                    1.9.2
zc.lockfile                             3.0.post1

I cannot image what could be the problem.

francesco086 commented 1 year ago

I think I figured the problem. For whatever reason, two different versions have been registered in the same commit (dc8cccf1). I will figure out how to solve my issue, however perhaps there are couple of learnings for gto:

  1. More meaningful message would have helped. Perhaps Versions '['v1.4.0', 'v1.3.1']' of artifact 'base-churn' found on the git commit 'dc8cccf1'. Multiple versions are not allowed.
  2. does gto register have a protection in place to prevent this to happen? (It could well be that I created the tag manually, bypassing gto)
shcheklein commented 1 year ago

@francesco086 thanks for the research. Action points make sense to me, we'll try to prioritize it.

francesco086 commented 1 year ago

I created a PR for the point 1, which was a no-brainer.

Point 2 will require me a little more time, will do it in another moment.

shcheklein commented 1 year ago

thanks! @francesco086

francesco086 commented 1 year ago

For point 2.

I found that the check is already in place: https://github.com/iterative/gto/blob/73b1dfb8052c05d304d529ba459897c020cb18f0/gto/registry.py#L144

So, nothing to do, I can close this issue :)