Also, the checksum of the package is stored as "pkgId" rather than as
"checksum".  Simply because that's what the RPM tools call it.  There's no
field actually named "checksum".

pulp=> select * from rpm_package;
>  content_ptr_id | name | epoch | version | release | arch | pkgId |
> checksum_type | summary | description | url | changelogs | files | requires
> | provides | conflicts | obsoletes | suggests | enhances | recommends |
> supplements | location
> _base | location_href | rpm_buildhost | rpm_group | rpm_license |
> rpm_packager | rpm_sourcerpm | rpm_vendor | rpm_header_start |
> rpm_header_end | is_modular | size_archive | size_installed | size_package
> | time_build | time_file | evr
>
> ----------------+------+-------+---------+---------+------+-------+---------------+---------+-------------+-----+------------+-------+----------+----------+-----------+-----------+----------+----------+------------+-------------+---------
>
> ------+---------------+---------------+-----------+-------------+--------------+---------------+------------+------------------+----------------+------------+--------------+----------------+--------------+------------+-----------+-----
> (0 rows)
>

Going back to the original error though, this almost sounds like the file
being downloaded doesn't match the checksum it's supposed to have.

Received checksum b8b257c32135daf51e703d439594f1a676871d7d for
> http://something/something/flume-1.9.0-1.noarch.rpm but expected
> c281a94a354178c42800d47b63479c2621772351
>

Is there any chance you could manually download that file and verify its
checksum, to make sure it's not corrupted at the source?

On Tue, Mar 16, 2021 at 2:24 PM Daniel Alley <dal...@redhat.com> wrote:

> I tried to read content from v3/content/. There is too much content to be
>> listed. Not sure if I can specify a regex so I use select from db directly
>>
>
> You can use query parameters when making HTTP calls against Pulp, like so:
>
> POST  .../pulp/api/v3/content/packages/ name=flume
>
> There's a bunch of options available, they are documented here:
> https://pulp-rpm.readthedocs.io/en/latest/restapi.html#operation/content_rpm_packages_list
>
> On Tue, Mar 16, 2021 at 12:44 PM Brian Bouterse <bmbou...@redhat.com>
> wrote:
>
>> This doesn't help you today, but I think this type of use case is what
>> motivates an API call like this one that is being discussed:
>> https://pulp.plan.io/issues/8372
>>
>> On Tue, Mar 16, 2021 at 12:30 PM Bin Li (BLOOMBERG/ 120 PARK) <
>> bli...@bloomberg.net> wrote:
>>
>>> I tried to read content from v3/content/. There is too much content to
>>> be listed. Not sure if I can specify a regex so I use select from db
>>> directly to see if I can find the package which causes the issue
>>> originally. The query returns 0 rows. It looks like it was cleaned out
>>> unless another content causes this issue. Let me know if there is anything
>>> else I can try.
>>>
>>> Below is what I have tried.
>>>
>>> The original error:
>>> Received checksum b8b257c32135daf51e703d439594f1a676871d7d for
>>> http://something/something/flume-1.9.0-1.noarch.rpm but expected
>>> c281a94a354178c42800d47b63479c2621772351
>>>
>>> => select name from rpm_package where name like 'flume%' limit 100;
>>> name
>>> ------
>>> (0 rows)
>>>
>>> => select checksum from rpm_checksum where checksum like
>>> '%594f1a676871d7d' OR checksum like '%63479c2621772351';
>>> checksum
>>> ----------
>>> (0 rows)
>>>
>>>
>>>
>>>
>>> From: dal...@redhat.com At: 03/15/21 11:03:48
>>> To: Bin Li (BLOOMBERG/ 120 PARK ) <bli...@bloomberg.net>
>>> Cc: davidda...@redhat.com, pulp-list@redhat.com
>>> Subject: Re: [Pulp-list] pulp 3.7.3 sync with checksum error
>>>
>>> Do you know if that package could possibly have been present in any
>>> other repositories also?  If you know which content unit it is, try
>>> accessing it via the content API after having done the orphan cleanup.  If
>>> it still exists, it wasn't cleaned up for some reason, which may mean it's
>>> used by some other repository.
>>>
>>> This is... interesting.  Pulp seems to be attempting to save the
>>> package, hitting an IntegrityError because it already exists (expected),
>>> and then trying to retrieve the package, and not being able to find it.
>>>
>>> Please file an issue with all the information you've posted so far, we
>>> will look into how this could be happening.
>>>
>>> On Mon, Mar 15, 2021 at 9:37 AM Bin Li (BLOOMBERG/ 120 PARK) <
>>> bli...@bloomberg.net> wrote:
>>>
>>>> I deleted the repo which failed sync and run "delete
>>>> localhost/pulp/api/v3/orphans/" but I am still getting the same messages.
>>>>
>>>>
>>>> From: Bin Li (BLOOMBERG/ 120 PARK) At: 03/12/21 12:18:44
>>>> To: dal...@redhat.com
>>>> Cc: davidda...@redhat.com, pulp-list@redhat.com
>>>> Subject: Re: [Pulp-list] pulp 3.7.3 sync with checksum error
>>>>
>>>> Hi Dan,
>>>>
>>>> Here is the traceback?
>>>>
>>>> "error": {
>>>> "description": "Package matching query does not exist.",
>>>> "traceback": " File
>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/rq/worker.py\",
>>>> line 886, in perform_job\n rv = job.perform()\n File
>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/rq/job.py\",
>>>> line 664, in perform\n self._result = self._execute()\n File
>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/rq/job.py\",
>>>> line 670, in _execute\n return self.func(*self.args, **self.kwargs)\n File
>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulp_rpm/app/tasks/synchronizing.py\",
>>>> line 266, in synchronize\n dv.create()\n File
>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulpcore/plugin/stages/declarative_version.py\",
>>>> line 148, in create\n loop.run_until_complete(pipeline)\n File
>>>> \"/opt/python/3.7.3/lib64/python3.7/asyncio/base_events.py\", line 584, in
>>>> run_until_complete\n return future.result()\n File
>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulpcore/plugin/stages/api.py\",
>>>> line 225, in create_pipeline\n await asyncio.gather(*futures)\n File
>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulpcore/plugin/stages/api.py\",
>>>> line 43, in __call__\n await self.run()\n File
>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulpcore/plugin/stages/content_stages.py\",
>>>> line 105, in run\n d_content.content.q()\n File
>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/manager.py\",
>>>> line 82, in manager_method\n return getattr(self.get_queryset(),
>>>> name)(*args, **kwargs)\n File
>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/query.py\",
>>>> line 408, in get\n self.model._meta.object_name\n"
>>>>
>>>>
>>>> I will try removing the repo first and deleting orphans.
>>>>
>>>>
>>>>
>>>> From: dal...@redhat.com At: 03/12/21 11:19:17
>>>> To: Bin Li (BLOOMBERG/ 120 PARK ) <bli...@bloomberg.net>
>>>> Cc: davidda...@redhat.com, pulp-list@redhat.com
>>>> Subject: Re: [Pulp-list] pulp 3.7.3 sync with checksum error
>>>>
>>>> Hi Bin,
>>>>
>>>> It's difficult to understand what exactly this error is.  Is it an
>>>> error message being printed out nicely, or part of a Python exception
>>>> bubbling up?  And if it's the latter, do you have the rest of the 
>>>> traceback?
>>>>
>>>> You can't manually delete specific content units but you can delete
>>>> "orphan" content units that aren't part of any repository.  So if you know
>>>> the content unit in question, you can delete it from your repositories, and
>>>> then run orphan cleanup.
>>>>
>>>> On Thu, Mar 11, 2021 at 11:27 AM Bin Li (BLOOMBERG/ 120 PARK) <
>>>> bli...@bloomberg.net> wrote:
>>>>
>>>>> If inconsistent repo data can cause Pulp to become unrecoverable, this
>>>>> is very difficult to prevent. Any inconsistent updates from upstream could
>>>>> potentially cause this to happen. At this point, we are thinking to 
>>>>> restore
>>>>> the database from the backup before this sync issue happened, will this
>>>>> approach work?
>>>>>
>>>>>
>>>>> From: Bin Li (BLOOMBERG/ 120 PARK) At: 03/10/21 14:41:38
>>>>> To: davidda...@redhat.com
>>>>> Cc: bmbou...@redhat.com, pulp-list@redhat.com
>>>>> Subject: Re: [Pulp-list] pulp 3.7.3 sync with checksum error
>>>>>
>>>>>
>>>>> We know the rpm name which has different check sum with repodata and
>>>>> caused the sync failure earlier. I am guessing the current issue is caused
>>>>> by this rpm. Is there any way we can remove it from database?
>>>>>
>>>>> From: Bin Li (BLOOMBERG/ 120 PARK) At: 03/09/21 17:47:17
>>>>> To: davidda...@redhat.com
>>>>> Cc: bmbou...@redhat.com, pulp-list@redhat.com
>>>>> Subject: Re: [Pulp-list] pulp 3.7.3 sync with checksum error
>>>>>
>>>>> Please ignore the last message. It is irrelevant.
>>>>> We actually able to sync the upstream repo successfully after we reset
>>>>> the database. The question is how to we recover from previous failure? We
>>>>> keep getting "Package matching query does not exist." without reset the
>>>>> database. Recreating the repo didn't help either.
>>>>>
>>>>> From: Bin Li (BLOOMBERG/ 120 PARK) At: 03/09/21 17:06:53
>>>>> To: davidda...@redhat.com
>>>>> Cc: bmbou...@redhat.com, pulp-list@redhat.com
>>>>> Subject: Re: [Pulp-list] pulp 3.7.3 sync with checksum error
>>>>>
>>>>> It looks like the last error caused failed sync process. I reset the
>>>>> db on a dev host and try to sync the same upstream repo and got
>>>>> ""An error occurred (QuotaExceeded) when calling the PutObject
>>>>> operation: Unknown"
>>>>>
>>>>> Any idea how to fix this?
>>>>>
>>>>>
>>>>> "traceback": " File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/rq/worker.py\",
>>>>> line 886, in perform_job\n rv = job.perform()\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/rq/job.py\",
>>>>> line 664, in perform\n self._result = self._execute()\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/rq/job.py\",
>>>>> line 670, in _execute\n return self.func(*self.args, **self.kwargs)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulp_rpm/app/tasks/synchronizing.py\",
>>>>> line 266, in synchronize\n dv.create()\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulpcore/plugin/stages/declarative_version.py\",
>>>>> line 148, in create\n loop.run_until_complete(pipeline)\n File
>>>>> \"/opt/python/3.7.3/lib64/python3.7/asyncio/base_events.py\", line 584, in
>>>>> run_until_complete\n return future.result()\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulpcore/plugin/stages/api.py\",
>>>>> line 225, in create_pipeline\n await asyncio.gather(*futures)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulpcore/plugin/stages/api.py\",
>>>>> line 43, in __call__\n await self.run()\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulpcore/plugin/stages/artifact_stages.py\",
>>>>> line 219, in run\n d_artifact.artifact for d_artifact in da_to_save\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulpcore/app/models/content.py\",
>>>>> line 87, in bulk_get_or_create\n return super().bulk_create(objs,
>>>>> batch_size=batch_size)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/manager.py\",
>>>>> line 82, in manager_method\n return getattr(self.get_queryset(),
>>>>> name)(*args, **kwargs)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/query.py\",
>>>>> line 468, in bulk_create\n self._batched_insert(objs_with_pk, fields,
>>>>> batch_size, ignore_conflicts=ignore_conflicts)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/query.py\",
>>>>> line 1204, in _batched_insert\n ignore_conflicts=ignore_conflicts,\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/query.py\",
>>>>> line 1186, in _insert\n return
>>>>> query.get_compiler(using=using).execute_sql(return_id)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/sql/compiler.py\",
>>>>> line 1376, in execute_sql\n for sql, params in self.as_sql():\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django_readonly_field/compiler.py\",
>>>>> line 31, in as_sql\n return super(ReadonlySQLCompilerMixin,
>>>>> self).as_sql()\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/sql/compiler.py\",
>>>>> line 1320, in as_sql\n for obj in self.query.objs\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/sql/compiler.py\",
>>>>> line 1320, in <listcomp>\n for obj in self.query.objs\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/sql/compiler.py\",
>>>>> line 1319, in <listcomp>\n [self.prepare_value(field,
>>>>> self.pre_save_val(field, obj)) for field in fields]\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/sql/compiler.py\",
>>>>> line 1270, in pre_save_val\n return field.pre_save(obj, add=True)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/pulpcore/app/models/fields.py\",
>>>>> line 68, in pre_save\n return super().pre_save(model_instance, add)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/fields/files.py\",
>>>>> line 288, in pre_save\n file.save(file.name, file.file, save=False)\n
>>>>> File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/db/models/fields/files.py\",
>>>>> line 87, in save\n self.name = self.storage.save(name, content,
>>>>> max_length=self.field.max_length)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/django/core/files/storage.py\",
>>>>> line 52, in save\n return self._save(name, content)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/storages/backends/s3boto3.py\",
>>>>> line 447, in _save\n obj.upload_fileobj(content, ExtraArgs=params)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/boto3/s3/inject.py\",
>>>>> line 621, in object_upload_fileobj\n ExtraArgs=ExtraArgs,
>>>>> Callback=Callback, Config=Config)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/boto3/s3/inject.py\",
>>>>> line 539, in upload_fileobj\n return future.result()\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/s3transfer/futures.py\",
>>>>> line 106, in result\n return self._coordinator.result()\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/s3transfer/futures.py\",
>>>>> line 265, in result\n raise self._exception\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/s3transfer/tasks.py\",
>>>>> line 126, in __call__\n return self._execute_main(kwargs)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/s3transfer/tasks.py\",
>>>>> line 150, in _execute_main\n return_value = self._main(**kwargs)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/s3transfer/upload.py\",
>>>>> line 692, in _main\n client.put_object(Bucket=bucket, Key=key, Body=body,
>>>>> **extra_args)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/botocore/client.py\",
>>>>> line 357, in _api_call\n return self._make_api_call(operation_name,
>>>>> kwargs)\n File
>>>>> \"/opt/utils/venv/pulp/3.7.3/lib64/python3.7/site-packages/botocore/client.py\",
>>>>> line 676, in _make_api_call\n raise error_class(parsed_response,
>>>>> operation_name)\n"
>>>>>
>>>>>
>>>>> From: Bin Li (BLOOMBERG/ 120 PARK) At: 03/09/21 11:34:57
>>>>> To: davidda...@redhat.com
>>>>> Cc: bmbou...@redhat.com, pulp-list@redhat.com
>>>>> Subject: Re: [Pulp-list] pulp 3.7.3 sync with checksum error
>>>>>
>>>>> Got a new errors "Package matching query does not exist.". Is this
>>>>> also related to upstream repo? Can we have more details when this happens?
>>>>>
>>>>> From: davidda...@redhat.com At: 03/05/21 15:06:40
>>>>> To: Bin Li (BLOOMBERG/ 120 PARK ) <bli...@bloomberg.net>
>>>>> Cc: bmbou...@redhat.com, pulp-list@redhat.com
>>>>> Subject: Re: [Pulp-list] pulp 3.7.3 sync with checksum error
>>>>>
>>>>> Great, thanks for the update.
>>>>>
>>>>> David
>>>>>
>>>>>
>>>>> On Fri, Mar 5, 2021 at 2:47 PM Bin Li (BLOOMBERG/ 120 PARK) <
>>>>> bli...@bloomberg.net> wrote:
>>>>>
>>>>>> Thanks Dave. Got the filename which has the inconsistent checksum
>>>>>> after patching. We will ask upstream remote to update the repodata.
>>>>>>
>>>>>> From: davidda...@redhat.com At: 03/05/21 12:42:56
>>>>>> To: bmbou...@redhat.com
>>>>>> Cc: Bin Li (BLOOMBERG/ 120 PARK ) <bli...@bloomberg.net>,
>>>>>> pulp-list@redhat.com
>>>>>> Subject: Re: [Pulp-list] pulp 3.7.3 sync with checksum error
>>>>>>
>>>>>> Regarding the error message, I've observed the problem myself. and
>>>>>> have filed an issue:
>>>>>>
>>>>>> https://pulp.plan.io/issues/8357
>>>>>>
>>>>>> In the meantime, if you can patch the code, this should tell you give
>>>>>> you more info:
>>>>>>
>>>>>> https://gist.github.com/daviddavis/2e6ab1872d97230d144a6cd1f9d05e31
>>>>>>
>>>>>> David
>>>>>>
>>>>>>
>>>>>> On Fri, Mar 5, 2021 at 12:35 PM Brian Bouterse <bmbou...@redhat.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Did this happen inside a task? Did you see a traceback for it also?
>>>>>>>
>>>>>>> On Fri, Mar 5, 2021 at 12:00 PM Bin Li (BLOOMBERG/ 120 PARK) <
>>>>>>> bli...@bloomberg.net> wrote:
>>>>>>>
>>>>>>>> The sync process gave an error "A file failed validation due to
>>>>>>>> checksum". Is this error caused by remote repo? Is there a way to find 
>>>>>>>> out
>>>>>>>> which file cause the issue?
>>>>>>>> _______________________________________________
>>>>>>>> Pulp-list mailing list
>>>>>>>> Pulp-list@redhat.com
>>>>>>>> https://listman.redhat.com/mailman/listinfo/pulp-list
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Pulp-list mailing list
>>>>>>> Pulp-list@redhat.com
>>>>>>> https://listman.redhat.com/mailman/listinfo/pulp-list
>>>>>>
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> Pulp-list mailing list
>>>>> Pulp-list@redhat.com
>>>>> https://listman.redhat.com/mailman/listinfo/pulp-list
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> Pulp-list mailing list
>>> Pulp-list@redhat.com
>>> https://listman.redhat.com/mailman/listinfo/pulp-list
>>
>>
_______________________________________________
Pulp-list mailing list
Pulp-list@redhat.com
https://listman.redhat.com/mailman/listinfo/pulp-list

Reply via email to