Issue #5870
Updated by jsherril@redhat.com almost 5 years ago
Steps to reproduce: 1. Create some file repository in /file 2. Set permissions on it: <pre> chown root:root /file -R chmod 755 /file -R </pre> 3. create a remote pointed to file:///file/PULP_MANIFEST file:///file 4. Sync the remote with repository You will get an error: <pre> traceback: |2 File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/worker.py", line 822, in perform_job rv = job.perform() File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 605, in perform self._result = self._execute() File "/usr/local/lib/pulp/lib64/python3.6/site-packages/rq/job.py", line 611, in _execute return self.func(*self.args, **self.kwargs) File "/usr/local/lib/pulp/src/pulp-file/pulp_file/app/tasks/synchronizing.py", line 45, in synchronize dv.create() File "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/plugin/stages/declarative_version.py", line 149, in create loop.run_until_complete(pipeline) File "/usr/lib64/python3.6/asyncio/base_events.py", line 484, in run_until_complete return future.result() File "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/plugin/stages/api.py", line 209, in create_pipeline await asyncio.gather(*futures) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/plugin/stages/api.py", line 43, in __call__ await self.run() File "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/plugin/stages/artifact_stages.py", line 196, in run d_artifact.artifact for d_artifact in da_to_save)): File "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/app/models/content.py", line 42, in bulk_get_or_create return super().bulk_create(objs, batch_size=batch_size) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/query.py", line 468, in bulk_create self._batched_insert(objs_with_pk, fields, batch_size, ignore_conflicts=ignore_conflicts) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/query.py", line 1204, in _batched_insert ignore_conflicts=ignore_conflicts, File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/query.py", line 1186, in _insert return query.get_compiler(using=using).execute_sql(return_id) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/sql/compiler.py", line 1334, in execute_sql for sql, params in self.as_sql(): File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/sql/compiler.py", line 1278, in as_sql for obj in self.query.objs File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/sql/compiler.py", line 1278, in <listcomp> for obj in self.query.objs File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/sql/compiler.py", line 1277, in <listcomp> [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields] File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/sql/compiler.py", line 1228, in pre_save_val return field.pre_save(obj, add=True) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/app/models/fields.py", line 62, in pre_save return super().pre_save(model_instance, add) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/fields/files.py", line 288, in pre_save file.save(file.name, file.file, save=False) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/db/models/fields/files.py", line 87, in save self.name = self.storage.save(name, content, max_length=self.field.max_length) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/pulpcore/app/models/storage.py", line 108, in save return self._save(name, content) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/core/files/storage.py", line 261, in _save file_move_safe(content.temporary_file_path(), full_path) File "/usr/local/lib/pulp/lib64/python3.6/site-packages/django/core/files/move.py", line 80, in file_move_safe os.remove(old_file_name) description: "[Errno 30] Read-only file system: '/mnt/disk/file1/4.iso'" </pre> if you chmod 777 /file, it syncs fine fine.