Bug 2010138

Summary: Satellite doesn't forward the "If-Modified-Since" header for /accessible_content endpoint to Candlepin
Product: Red Hat Satellite Reporter: Hao Chang Yu <hyu>
Component: Subscription ManagementAssignee: satellite6-bugs <satellite6-bugs>
Status: CLOSED ERRATA QA Contact: Cole Higgins <chiggins>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 6.9.0CC: ahumbe, apatel, fhirtz, jinjli, mmccune, pcreech, pdwyer, pmendezh
Target Milestone: 6.11.0Keywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2027367 2030683 (view as bug list) Environment:
Last Closed: 2022-07-05 14:30:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
tfm-rubygem-katello-3.16.0.26-2.HOTFIXRHBZ2010138.el7sat.noarch.rpm none

Description Hao Chang Yu 2021-10-04 01:49:51 UTC
Description of problem:
Subscription manager will send the following request to the Candlepin. This request has a "If-Modified-Since" header which is used to query if any certificate has been updated since the specified time. If no certificate has been updated, Candlepin will respond with 304 Not Modified status and empty data.

Satellite doesn't forward the header to the Candlepin causing Candlepin to return the certificate every time.
-------------------------------------
xx.xx.xx.xx - - [01/Oct/2021:17:07:39 +1000] "GET /rhsm/consumers/82b2ddaa-70ae-4ca8-9576-d8f31750caba/accessible_content HTTP/1.1" 200 6606 "-" "RHSM/1.0 (cmd=yum)"
-------------------------------------

This is causing subscription-manager to think that content access certificate has been updated on the server and then it will performs certificate and repos update locally. Because of this, subscription-manager sends a few redundant '/content-overrides' and '/release' calls to the Satellite.


Steps to Reproduce:
1. Register client to the Satellite with SCA enabled
2. Tail the foreman ssl access log

tail -f /var/log/httpd/foreman-ssl_access_ssl.log | grep "/rhsm"

3. Run yum repolist multiple times

Actual results:
Notice that '/accessible_content' api always return 200 status

Expected results:
'/accessible_content' api should return 304 Not Modified status

Comment 5 Jonathon Turel 2021-10-20 19:39:33 UTC
Connecting redmine issue https://projects.theforeman.org/issues/33618 from this bug

Comment 6 Mike McCune 2021-10-25 18:04:17 UTC
Created attachment 1836950 [details]
tfm-rubygem-katello-3.16.0.26-2.HOTFIXRHBZ2010138.el7sat.noarch.rpm

Comment 7 Mike McCune 2021-10-25 18:05:32 UTC
*** Satellite 6.8.6 Hotfix Available ***


1) Download tfm-rubygem-katello-3.16.0.26-2.HOTFIXRHBZ2010138.el7sat.noarch.rpm from this bugzilla to your Satellite

2) stop services:

satellite-maintain service stop

3) Install:

rpm -Uvh tfm-rubygem-katello-3.16.0.26-2.HOTFIXRHBZ2010138.el7sat.noarch.rpm

4) restart:

satellite-maintain service start

5) resume operations

Comment 15 errata-xmlrpc 2022-07-05 14:30:00 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: Satellite 6.11 Release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2022:5498