Issue #21 new

Inconsistencies during update process.

Georges Racinet
created an issue

pep381run will fetch the main PyPI 'simple' page at the beginning of the process:

    def _synchronize(self):
        'Run synchronization. Can be interrupted and restarted at any time.'
        if self.last_started == 0:
            # no synchronization in progress. Fetch changelog
            self.last_started = now()
            changes = xmlrpc().changelog(self.last_completed-1)
            if not changes:
                self.update_timestamp(self.last_started)
                return
            for change in changes:
                self.projects_to_do.add(change[0])
            self.copy_simple_page('')
            self.store()

(copy_simple_page('') will fetch the general one)

Same issue for a single project: the 'simple' page gets written before the packages are actually updated.

If the process is long (e.g, if last update is a while ago, or because of #20, or because it gets interrupted), that's a real problem : clients of the mirror will get installation errors, because 'simple' pages will be served by the web front right away.

The 'simple' pages should be kept in status and updated at the end of the process (whole or per-package).

Comments (0)

  1. Log in to comment