Return-Path: X-Original-To: apmail-trafficserver-users-archive@www.apache.org Delivered-To: apmail-trafficserver-users-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 40AF910332 for ; Sat, 23 Nov 2013 03:25:11 +0000 (UTC) Received: (qmail 87042 invoked by uid 500); 23 Nov 2013 03:25:01 -0000 Delivered-To: apmail-trafficserver-users-archive@trafficserver.apache.org Received: (qmail 86972 invoked by uid 500); 23 Nov 2013 03:24:57 -0000 Mailing-List: contact users-help@trafficserver.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@trafficserver.apache.org Delivered-To: mailing list users@trafficserver.apache.org Received: (qmail 86955 invoked by uid 99); 23 Nov 2013 03:24:55 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 23 Nov 2013 03:24:55 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of chanshukit@gmail.com designates 74.125.82.182 as permitted sender) Received: from [74.125.82.182] (HELO mail-we0-f182.google.com) (74.125.82.182) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 23 Nov 2013 03:24:47 +0000 Received: by mail-we0-f182.google.com with SMTP id q59so1890616wes.41 for ; Fri, 22 Nov 2013 19:24:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=jGV8+TAktGpIul9Xm9W6mLEAN3+++L+kVGZkT1L6KTI=; b=LgT5xpLcpCmuuM6pa16ngzgUOATrn4ItyegyXNRIs1JUBC5WqfvhXqCi9Iamfr/JgE akBRM/KcwT4K9duuKvy5adVkt8RPKNWCp8eSZq6vkng5my85FhazIp0D56mhZIiKeb2p PM2GmglXQTBz/BbDX8V7qyr+CkmwY/BIuUMu2BytFZl9gQl4qnsbdAEbJQ84K3dtlp/j QqzXgMEZl0CBefJxgSbL1VQLbs17hGWY2jOFlfpV86TG6j9oODQF2XWV1pLW9+1R080c sZgIppgtbeWDL/OpFj49Obfr14ORxY5lYcfxEIZ5OTvRkdyML3cOM9nZR1VafBC8vVRg Epqg== MIME-Version: 1.0 X-Received: by 10.180.101.197 with SMTP id fi5mr5156401wib.46.1385177067516; Fri, 22 Nov 2013 19:24:27 -0800 (PST) Received: by 10.216.144.73 with HTTP; Fri, 22 Nov 2013 19:24:27 -0800 (PST) In-Reply-To: References: Date: Fri, 22 Nov 2013 19:24:27 -0800 Message-ID: Subject: Re: Adding headers to 304 Responses From: Shu Kit Chan To: "users@trafficserver.apache.org" Content-Type: multipart/alternative; boundary=f46d0444e8d70f76c004ebcfab1b X-Virus-Checked: Checked by ClamAV on apache.org --f46d0444e8d70f76c004ebcfab1b Content-Type: text/plain; charset=ISO-8859-1 I think the problem is not with the plugin. The debug log is telling us that, i think. We can add a static header to the 304 response with no problem. The situation is that - 1) There is a custom header (X-From-Apache) in the original response from origin server. 2) This response is cached in ATS 3) When client uses IMS in the request, ATS responds with a 304. 4) The custom header is nowhere to be found in the 304 respond 5) And thus the header_rewrite plugin cannot get its value. I think ATS is doing the right thing for 304 as mentioned here - http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5 So how do we override this behavior and/or let the header_rewrite plugin to know about the X-From-Apache header in the original response? Thanks. Kit On Fri, Nov 22, 2013 at 6:36 PM, Mark Moseley wrote: > On Fri, Nov 22, 2013 at 6:14 PM, James Peach wrote: > >> On Nov 22, 2013, at 4:59 PM, Mark Moseley wrote: >> >> > On Fri, Nov 22, 2013 at 4:46 PM, Shu Kit Chan >> wrote: >> > From the header_rewrite plugin perspective, >> > the 304 is coming straight out of ATS and not from origin server. >> That's fine. >> > So all the plugin does is to look up "X-From-Apache" from this >> particular HTTP response between ATS and the client. It can't find it. So >> it cancelled the add-header operation for "X-ATS-1". >> > But the add-header operation for "X-ATS-2" is still getting done >> without problem. >> > >> > >> > >> > However the header that's not seen by the headers_rewrite module is >> stored in the cached response. If I do a non-conditional, non-"Pragma: >> no-cache" request, there's likewise no request to the origin server but the >> header gets seen by the headers_module. >> > >> > So I'm trying to figure out how to amend the list of headers ATS should >> send back, in the event of a cache-fulfilled 304 request. >> >> It might help to trace the "header_rewrite" diagnostic tag with >> proxy.config.diags.debug.tags. Can you also post your header_rewrite config >> file ... I've found that the syntax can be unintuitive .. > > > > The header_rewrite config: > > > cond %{SEND_RESPONSE_HDR_HOOK} > add-header X-ATS-1 %{HEADER:X-From-Apache} > > cond %{SEND_RESPONSE_HDR_HOOK} > add-header X-ATS-2 Hi > > > > Trace output: > > This is after the initial "Pragma: no-cache" request: > > [Nov 22 21:32:51.548] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > number of arguments: 2 > [Nov 22 21:32:51.548] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Loading header_rewrite config from /etc/trafficserver/header_rewrite.config > [Nov 22 21:32:51.548] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Reading line: 1: cond %{SEND_RESPONSE_HDR_HOOK} > [Nov 22 21:32:51.548] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Parser > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Reading line: 2: add-header X-ATS-1 %{HEADER:X-From-Apache} > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Parser > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Statement > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Operator > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for OperatorHeaders > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Statement > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Value > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for OperatorAddHeader > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Adding operator: add-header(X-ATS-1) > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Parser > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Statement > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Condition > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for ConditionHeader, client 0 > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Matcher > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Reading line: 3: > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Reading line: 4: cond %{SEND_RESPONSE_HDR_HOOK} > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Parser > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Adding rule to hook=5 > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Reading line: 5: add-header X-ATS-2 Hi > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Parser > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Statement > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Operator > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for OperatorHeaders > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Statement > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Value > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for OperatorAddHeader > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Adding operator: add-header(X-ATS-2) > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Reading line: 6: > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Adding rule to hook=5 > [Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > adding hook: 5 > > > Then this is the If-Modified-Since request for the same header (satisfied > out of the cache, no origin request) > > [Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Resources (InkAPI) > [Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Building resource structure for hook (5) > [Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Adding TXN client request header buffers > [Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Adding TXN client response header buffers > [Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Getting Header: X-From-Apache, field_loc: 0x4fc6fa0 > [Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Appending HEADER(X-From-Apache) to evaluation value -> Hi from apache > [Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > OperatorAddHeader::exec() invoked on header X-ATS-1: Hi from apache > [Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > adding header X-ATS-1 > [Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > OperatorAddHeader::exec() invoked on header X-ATS-2: Hi > [Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > adding header X-ATS-2 > [Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) > Calling CTOR for Resources (InkAPI) > [Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Building resource structure for hook (5) > [Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Adding TXN client request header buffers > [Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Adding TXN client response header buffers > [Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > Getting Header: X-From-Apache, field_loc: (nil) > [Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) Would > set header X-ATS-1 to an empty value, skipping > [Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > OperatorAddHeader::exec() invoked on header X-ATS-2: Hi > [Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) > adding header X-ATS-2 > --f46d0444e8d70f76c004ebcfab1b Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
I think the problem is not with the plugin. The debug log = is telling us that, i think.=A0
We can add a static header to the 304 r= esponse with no problem.

The situation is that -= =A0

1) There is a custom header (X-From-Apache) in the orig= inal response from origin server.
2) This response is cached in A= TS
3) When client uses IMS in the request, ATS responds with a 30= 4.=A0
4) The custom header is nowhere to be found in the 304 respond
5) And thus the header_rewrite plugin cannot get its value.
I think ATS is doing the right thing for 304 as mentioned here= -=A0http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5=
So how do we override this behavior and/or let the header_rewrite plug= in to know about the X-From-Apache header in the original response?=A0

Thanks.

Kit


On Fri, Nov 22, 2013 at 6:36 PM, Mark Mo= seley <moseleymark@gmail.com> wrote:
On Fri, Nov 22, 2013 at 6:14 PM, James Peach <jpeach@= apache.org> wrote:
On Nov 22, 2013= , at 4:59 PM, Mark Moseley <moseleymark@gmail.com> wrote:

> On Fri, Nov 22, 2013 at 4:46 PM, Shu Kit Chan <chanshukit@gmail.com> wrote: > From the header_rewrite plugin perspective,
> the 304 is coming straight out of ATS and not from origin server. That= 's fine.
> So all the plugin does is to look up "X-From-Apache" from th= is particular HTTP response between ATS and the client. It can't find i= t. So it cancelled the add-header operation for "X-ATS-1".
> But the add-header operation for "X-ATS-2" is still getting = done without problem.
>
>
>
> However the header that's not seen by the headers_rewrite module i= s stored in the cached response. If I do a non-conditional, non-"Pragm= a: no-cache" request, there's likewise no request to the origin se= rver but the header gets seen by the headers_module.
>
> So I'm trying to figure out how to amend the list of headers ATS s= hould send back, in the event of a cache-fulfilled 304 request.

It might help to trace the "header_rewrite" diagnosti= c tag with proxy.config.diags.debug.tags. Can you also post your header_rew= rite config file ... I've found that the syntax can be unintuitive ..


The header_rewrite config:


cond %{SEND_RESPONSE_HDR_HOOK}
add-header X-ATS-1 %{HEADER:= X-From-Apache}

cond %{SEND_RESPONSE_HDR_HOOK}
add-header X-ATS-2 = Hi



Trace output:

This is after the initial "= Pragma: no-cache" request:

[Nov 22 21:32:51.548] Ser= ver {0x2ebb4ce3ddc0} DIAG: (header_rewrite) number of arguments: 2
[Nov 22 21:32:51.548] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) Loadin= g header_rewrite config from /etc/trafficserver/header_rewrite.config
[Nov 22 21:32:51.548] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Re= ading line: 1: cond %{SEND_RESPONSE_HDR_HOOK}
[Nov 22 21:32:51.548] Serv= er {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Calling CTOR for Parser
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Re= ading line: 2: add-header X-ATS-1 %{HEADER:X-From-Apache}
[Nov 22 21:32:= 51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Calling CTOR for= Parser
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Ca= lling CTOR for Statement
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} D= IAG: (header_rewrite_dbg) Calling CTOR for Operator
[Nov 22 21:32:51.549= ] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Calling CTOR for Opera= torHeaders
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Ca= lling CTOR for Statement
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} D= IAG: (header_rewrite_dbg) Calling CTOR for Value
[Nov 22 21:32:51.549] S= erver {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Calling CTOR for Operator= AddHeader
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) Adding= operator: add-header(X-ATS-1)
[Nov 22 21:32:51.549] Server {0x2ebb4ce3d= dc0} DIAG: (header_rewrite_dbg) Calling CTOR for Parser
[Nov 22 21:32:51= .549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Calling CTOR for S= tatement
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Ca= lling CTOR for Condition
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} D= IAG: (header_rewrite_dbg) Calling CTOR for ConditionHeader, client 0
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Ca= lling CTOR for Matcher
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIA= G: (header_rewrite_dbg) Reading line: 3:
[Nov 22 21:32:51.549] Server {0= x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Reading line: 4: cond %{SEND_RESP= ONSE_HDR_HOOK}
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Ca= lling CTOR for Parser
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG= : (header_rewrite) Adding rule to hook=3D5
[Nov 22 21:32:51.549] Server = {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Reading line: 5: add-header X-A= TS-2 Hi
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Ca= lling CTOR for Parser
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG= : (header_rewrite_dbg) Calling CTOR for Statement
[Nov 22 21:32:51.549] = Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Calling CTOR for Operato= r
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Ca= lling CTOR for OperatorHeaders
[Nov 22 21:32:51.549] Server {0x2ebb4ce3d= dc0} DIAG: (header_rewrite_dbg) Calling CTOR for Statement
[Nov 22 21:32= :51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Calling CTOR fo= r Value
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Ca= lling CTOR for OperatorAddHeader
[Nov 22 21:32:51.549] Server {0x2ebb4ce= 3ddc0} DIAG: (header_rewrite) Adding operator: add-header(X-ATS-2)
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Re= ading line: 6:
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) Adding= rule to hook=3D5
[Nov 22 21:32:51.549] Server {0x2ebb4ce3ddc0} DIAG: (h= eader_rewrite) adding hook: 5


Then this is the If-Mod= ified-Since request for the same header (satisfied out of the cache, no ori= gin request)

[Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_= rewrite_dbg) Calling CTOR for Resources (InkAPI)
[Nov 22 21:32:56.772] S= erver {0x2ebb4ce3ddc0} DIAG: (header_rewrite) Building resource structure f= or hook (5)
[Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite)=A0=A0= =A0 Adding TXN client request header buffers
[Nov 22 21:32:56.772] Serve= r {0x2ebb4ce3ddc0} DIAG: (header_rewrite)=A0=A0=A0 Adding TXN client respon= se header buffers
[Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) Gettin= g Header: X-From-Apache, field_loc: 0x4fc6fa0
[Nov 22 21:32:56.772] Serv= er {0x2ebb4ce3ddc0} DIAG: (header_rewrite) Appending HEADER(X-From-Apache) = to evaluation value -> Hi from apache
[Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) Operat= orAddHeader::exec() invoked on header X-ATS-1: Hi from apache
[Nov 22 21= :32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite)=A0=A0=A0 adding = header X-ATS-1
[Nov 22 21:32:56.772] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) Operat= orAddHeader::exec() invoked on header X-ATS-2: Hi
[Nov 22 21:32:56.772] = Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite)=A0=A0=A0 adding header X-ATS= -2
[Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite_dbg) Ca= lling CTOR for Resources (InkAPI)
[Nov 22 21:33:04.412] Server {0x2ebb4c= e3ddc0} DIAG: (header_rewrite) Building resource structure for hook (5)
[Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite)=A0=A0= =A0 Adding TXN client request header buffers
[Nov 22 21:33:04.412] Serve= r {0x2ebb4ce3ddc0} DIAG: (header_rewrite)=A0=A0=A0 Adding TXN client respon= se header buffers
[Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) Gettin= g Header: X-From-Apache, field_loc: (nil)
[Nov 22 21:33:04.412] Server {= 0x2ebb4ce3ddc0} DIAG: (header_rewrite) Would set header X-ATS-1 to an empty= value, skipping
[Nov 22 21:33:04.412] Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite) Operat= orAddHeader::exec() invoked on header X-ATS-2: Hi
[Nov 22 21:33:04.412] = Server {0x2ebb4ce3ddc0} DIAG: (header_rewrite)=A0=A0=A0 adding header X-ATS= -2

--f46d0444e8d70f76c004ebcfab1b--