Bug 758703

Summary: ESI not working on squid 3.1.4 or 3.1.10
Product: Red Hat Enterprise Linux 6 Reporter: Ioannis Aslanidis <iaslanidis>
Component: squidAssignee: Jiri Skala <jskala>
Status: CLOSED NOTABUG QA Contact: BaseOS QE Security Team <qe-baseos-security>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.1CC: aglotov, prc
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-02-16 11:34:12 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Ioannis Aslanidis 2011-11-30 14:30:29 UTC
Description of problem:

ESI (http://jrenard.info/blog/about-esi.html) is enabled in squid (the spec file compiles squid with --enable-ise in the RHEL os repository) but it does not seem to work.


Version-Release number of selected component (if applicable):
3.1.4
3.1.10 (r1 and r1.1)


How reproducible:
Always


Steps to Reproduce:
1. Set up a standard squid server.
2. Set up a standard web server (httpd, nginx, etc.)
3. Serve an html file through the web server.
4. Configure squid to proxy the requests.
5. Squid correctly fetches the file from the web server but it does not pre-process the file with ESI directives before serving the file to the end client.
  
Actual results:
Html files with ESI directives do not get pre-processed by squid before being served to the end client.

Expected results:
Html files should pre-process ESI directives.

Additional info:
You may use http://esi-examples.akamai.com/index.html to perform your tests. The full source code can be downloaded here: http://esi-examples.akamai.com/esi-examples.zip

Comment 2 Jiri Skala 2011-12-05 12:11:22 UTC
I'd like to ask you for additional info:

- cache.log after setting 'debug_options ALL,1 86,9 88,3' in squid.conf
- squid.conf

Thank you, Jiri

Comment 3 Ioannis Aslanidis 2011-12-05 14:05:33 UTC
I will send what you asked to your email address, as it contains confidential information.

Comment 4 Jiri Skala 2011-12-16 14:30:06 UTC
(In reply to comment #3)
> I will send what you asked to your email address, as it contains confidential
> information.

I've got the conf file, thank you - of course the file is confidential.

I've tested ESI a bit using following setting:

http://wiki.squid-cache.org/Features/Surrogate

The ESI module works only if the web server will insert 'Surrogate-control' header into HTTP response. Could you catch the packets and verify if there will be mandatory 'Surrogate-control' header?

Thanks, Jiri

Comment 5 Jiri Skala 2012-01-20 09:42:51 UTC
Some news? What about 'Surrogate-control' header if HTTP response? If there is no this header then I don't see it as a squid's fault. Please, let me know about it.

Thank you

Jiri

Comment 6 Ioannis Aslanidis 2012-01-20 12:05:07 UTC
Thank you for the reply. I was not able to test it. Can you give an example of how you pass the Surrogate-control header and its contents with a curl request, for instance?

Comment 7 Jiri Skala 2012-01-20 14:57:55 UTC
See following link:

http://wiki.squid-cache.org/Features/Surrogate

There are details inclusive Surrogate-control. This header is mandatory for further squid's ESI handling

Comment 9 Suzanne Logcher 2012-02-14 23:22:03 UTC
This request was evaluated by Red Hat Product Management for
inclusion in the current release of Red Hat Enterprise Linux.
Because the affected component is not scheduled to be updated
in the current release, Red Hat is unfortunately unable to
address this request at this time. Red Hat invites you to
ask your support representative to propose this request, if
appropriate and relevant, in the next release of Red Hat
Enterprise Linux. If you would like it considered as an
exception in the current release, please ask your support
representative.

Comment 10 Jiri Skala 2012-02-15 13:04:04 UTC
As I wrote in the comment #7 there is a mandatory option for squid ESI hanling. I'm not sure if this option was fulfilled.

Will you attach tcpdump/wireshark traces that contains ESI related tags to verify if the server sends appropriate headers to squid?

Thank you, Jiri

Comment 11 Ioannis Aslanidis 2012-02-16 10:52:47 UTC
At this moment my priorities have changed, so I will not be able to check up on this until later. Unless you disagree, I set this to deferred.

Comment 12 Jiri Skala 2012-02-16 11:34:12 UTC
Well, I don't currently observe any fault from squid side. Therefore I'm going to close the bug.

If you find the squid will not handle esi support as intended despite of fulfilled conditions (see squid wiki) in the future don't hesitate to reopen this bug and, please, attach required traces.