Issue #6121
Updated by dalley almost 5 years ago
A Pulp 2 immediate-mode sync of 150,000 files using this repository [0] takes 37.5 minutes With Pulp 3, the same sync takes about 3x as long (about 2 hours). hours) and then fails at the end with the following error: ~~~ Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: pulp: rq.worker:ERROR: aiohttp.client_exceptions.ServerDisconnectedError Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: Traceback (most recent call last): Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/worker.py", line 822, in perform_job Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: rv = job.perform() Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 605, in perform Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: self._result = self._execute() Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 611, in _execute Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: return self.func(*self.args, **self.kwargs) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulp_file/pulp_file/app/tasks/synchronizing.py", line 45, in synchronize Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: dv.create() Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/declarative_version.py", line 149, in create Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: loop.run_until_complete(pipeline) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/lib64/python3.6/asyncio/base_events.py", line 484, in run_until_complete Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: return future.result() Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/api.py", line 209, in create_pipeline Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: await asyncio.gather(*futures) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/api.py", line 43, in __call__ Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: await self.run() Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/artifact_stages.py", line 132, in run Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: pb.done += task.result() # download_count Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/artifact_stages.py", line 157, in _handle_content_unit Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: await asyncio.gather(*downloaders_for_content) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/models.py", line 81, in download Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: download_result = await downloader.run(extra_data=self.extra_data) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/download/base.py", line 221, in run Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: return await self._run(extra_data=extra_data) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/backoff/_async.py", line 133, in retry Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: ret = await target(*args, **kwargs) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/download/http.py", line 184, in _run Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: async with self.session.get(self.url, proxy=self.proxy) as response: Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/aiohttp/client.py", line 1012, in __aenter__ Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: self._resp = await self._coro Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/aiohttp/client.py", line 504, in _request Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: await resp.start(conn) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/aiohttp/client_reqrep.py", line 847, in start Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: message, payload = await self._protocol.read() # type: ignore # noqa Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/aiohttp/streams.py", line 591, in read Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: await self._waiter Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: aiohttp.client_exceptions.ServerDisconnectedError Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: Traceback (most recent call last): Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/worker.py", line 822, in perform_job Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: rv = job.perform() Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 605, in perform Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: self._result = self._execute() Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 611, in _execute Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: return self.func(*self.args, **self.kwargs) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulp_file/pulp_file/app/tasks/synchronizing.py", line 45, in synchronize Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: dv.create() Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/declarative_version.py", line 149, in create Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: loop.run_until_complete(pipeline) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/lib64/python3.6/asyncio/base_events.py", line 484, in run_until_complete Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: return future.result() Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/api.py", line 209, in create_pipeline Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: await asyncio.gather(*futures) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/api.py", line 43, in __call__ Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: await self.run() Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/artifact_stages.py", line 132, in run Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: pb.done += task.result() # download_count Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/artifact_stages.py", line 157, in _handle_content_unit Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: await asyncio.gather(*downloaders_for_content) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/plugin/stages/models.py", line 81, in download Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: download_result = await downloader.run(extra_data=self.extra_data) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/download/base.py", line 221, in run Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: return await self._run(extra_data=extra_data) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/backoff/_async.py", line 133, in retry Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: ret = await target(*args, **kwargs) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/home/vagrant/devel/pulpcore/pulpcore/download/http.py", line 184, in _run Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: async with self.session.get(self.url, proxy=self.proxy) as response: Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/aiohttp/client.py", line 1012, in __aenter__ Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: self._resp = await self._coro Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/aiohttp/client.py", line 504, in _request Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: await resp.start(conn) Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/aiohttp/client_reqrep.py", line 847, in start Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: message, payload = await self._protocol.read() # type: ignore # noqa Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: File "/usr/local/lib/pulp/lib64/python3.6/site-packages/aiohttp/streams.py", line 591, in read Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: await self._waiter Feb 09 19:52:24 pulp2-nightly-pulp3-source-centos7.localhost.example.com rq[9501]: aiohttp.client_exceptions.ServerDisconnectedError ~~~ An on_demand sync of the same repo in Pulp 3 is able to successfully finish, but it still takes about 90 minutes, still much longer than Pulp 2. The first 50k files seem sync roughly as fast as they do for Pulp 2, but once the number grows higher to progress starts being made very very noticeably slower than at the beginning. [0] http://quartet.usersys.redhat.com/pub/fake-repos/very_large_file_150k/