Skip to content

Recover from network failure #336

@jelly

Description

@jelly

When we start parsing a new db and a network issue occurs in reporead, an exception is throw and no retry occurs. Meaning the repository will only be updated once someone pushes something new.

Mar 04 03:01:06 gemini.archlinux.org python[2543417]: 2021-03-04 03:01:06 -> INFO: Finished repo parsing, 415 total packages
Mar 04 03:01:06 gemini.archlinux.org python[2543417]: Process Process-577:
Mar 04 03:01:06 gemini.archlinux.org python[2543417]: Traceback (most recent call last):
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     self.connect()
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     return func(*args, **kwargs)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/backends/base/base.py", line 200, in connect
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     self.connection = self.get_new_connection(conn_params)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     return func(*args, **kwargs)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/backends/postgresql/base.py", line 187, in get_new_connection
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     connection = Database.connect(**conn_params)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/usr/lib/python3.9/site-packages/psycopg2/__init__.py", line 127, in connect
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]: psycopg2.OperationalError: could not translate host name "archlinux.org" to address: Name or service not known
Mar 04 03:01:06 gemini.archlinux.org python[2543417]: The above exception was the direct cause of the following exception:
Mar 04 03:01:06 gemini.archlinux.org python[2543417]: Traceback (most recent call last):
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     self.run()
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/usr/lib/python3.9/multiprocessing/process.py", line 108, in run
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     self._target(*self._args, **self._kwargs)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/devel/management/commands/reporead_inotify.py", line 164, in run
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     read_repo(self.arch, self.path, {})
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/devel/management/commands/reporead.py", line 610, in read_repo
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     for arch in Arch.objects.filter(agnostic=True):
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/models/query.py", line 287, in __iter__
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     self._fetch_all()
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/models/query.py", line 1308, in _fetch_all
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     self._result_cache = list(self._iterable_class(self))
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/models/query.py", line 53, in __iter__
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/models/sql/compiler.py", line 1154, in execute_sql
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     cursor = self.connection.cursor()
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     return func(*args, **kwargs)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/backends/base/base.py", line 259, in cursor
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     return self._cursor()
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/backends/base/base.py", line 235, in _cursor
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     self.ensure_connection()
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     return func(*args, **kwargs)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     self.connect()
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/utils.py", line 90, in __exit__
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     raise dj_exc_value.with_traceback(traceback) from exc_value
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     self.connect()
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     return func(*args, **kwargs)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/backends/base/base.py", line 200, in connect
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     self.connection = self.get_new_connection(conn_params)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     return func(*args, **kwargs)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/srv/http/archweb/env/lib/python3.9/site-packages/django/db/backends/postgresql/base.py", line 187, in get_new_connection
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     connection = Database.connect(**conn_params)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:   File "/usr/lib/python3.9/site-packages/psycopg2/__init__.py", line 127, in connect
Mar 04 03:01:06 gemini.archlinux.org python[2543417]:     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
Mar 04 03:01:06 gemini.archlinux.org python[2543417]: django.db.utils.OperationalError: could not translate host name "archlinux.org" to address: Name or service not known```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions