Many Thanks Shu, everything works fine now.
On 30/05/2012, at 16:58, Shu Kit Chan wrote: > https://github.com/shukitchan/trafficserver-plugins/ > > Please let me know if it works. > > On Wed, May 30, 2012 at 7:17 AM, Jorge Román Novalbos > <jro...@linux-it.es> wrote: >> Great! Which is your git location???? >> >> Thanks. >> >> On 30/05/2012, at 16:12, Shu Kit Chan wrote: >> >>> The fix is done. I hope it works for you. You can download that again >>> from my github location. >>> >>> On Sun, May 20, 2012 at 12:27 AM, Jorge Román Novalbos >>> <jro...@linux-it.es> wrote: >>>> You are right!!! >>>> >>>> If I ask for the content without gzip the data are displayed fine. >>>> >>>> Many thanks for your help. I'm looking forward the fix. >>>> >>>> Jorge >>>> >>>> >>>> On 19/05/2012, at 10:51, Shu Kit Chan wrote: >>>> >>>>> I have verified that there is a bug on the plugin. it will not work if >>>>> the origin server is returning gzip content. >>>>> >>>>> I setup a test trafficserver with remap.config to connect to your >>>>> origin server - ori.servotic.com >>>>> >>>>> This will not work. >>>>> curl --compress -v -H 'Host: www.servotic.com' >>>>> "http://10.212.114.36/esi/esi.html" >>>>> >>>>> But this will >>>>> curl -v -H 'Host: www.servotic.com' "http://10.212.114.36/esi/esi.html" >>>>> >>>>> I will try to fix this once i get back home and will update TS 1249 >>>>> accordingly >>>>> https://issues.apache.org/jira/browse/TS-1249 >>>>> >>>>> Thanks. >>>>> >>>>> Kit >>>>> >>>>> On Fri, May 18, 2012 at 11:34 PM, Kit Chan <chanshu...@gmail.com> wrote: >>>>>> Sorry that i have to go through this multiple times. I am on vacation >>>>>> now and can't fire a session to debug it myself. I can only guess why it >>>>>> does not work from traffic.out >>>>>> >>>>>> It looks like esi/esi.html is requested and the response is of 126 bytes >>>>>> in size (gzipped). It looks like the parser does not do well with these >>>>>> 126 bytes and return empty string after parsing. So you must be not >>>>>> getting any response body. >>>>>> >>>>>> There may be bug in the gunzip of the origin server response. So u can >>>>>> try to use curl instead of using browser to access the url. This should >>>>>> make the request/response to not use gzip encoding. >>>>>> >>>>>> curl -v -H "Host: www.servotic.com" >>>>>> "http://your-staging-ts-server/esi/esi.html" >>>>>> >>>>>> If the above works, then thats indeed a problem in the plugin. i think i >>>>>> can take a look and try to fix it once i get back home around 10 days >>>>>> later. >>>>>> >>>>>> Thanks >>>>>> >>>>>> Kit >>>>>> >>>>>> Sent from my iPhone >>>>>> >>>>>> On May 18, 2012, at 1:03 PM, Jorge Román Novalbos <jro...@linux-it.es> >>>>>> wrote: >>>>>> >>>>>>> I have tried writing the whole url in src: >>>>>>> >>>>>>> <HTML> >>>>>>> <BODY> >>>>>>> The time is: <esi:include src="http://www.servotic.com/date.php"/> >>>>>>> at this very moment. >>>>>>> </BODY> >>>>>>> </HTML> >>>>>>> >>>>>>> >>>>>>> TRaffic.out: >>>>>>> >>>>>>> [May 18 12:56:20.001] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [isInterceptRequest] Skipping external request >>>>>>> [May 18 12:56:20.001] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [globalHookHandler] handling read request header event... >>>>>>> [May 18 12:56:20.001] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [globalHookHandler] Not setting up intercept >>>>>>> [May 18 12:56:20.001] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [isInterceptRequest] Skipping external request >>>>>>> [May 18 12:56:20.002] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [globalHookHandler] handling cache lookup complete event... >>>>>>> [May 18 12:56:20.002] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [isCacheObjTransformable] cache object's status is 0; not transformable >>>>>>> [May 18 12:56:20.314] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [isInterceptRequest] Skipping external request >>>>>>> [May 18 12:56:20.314] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [globalHookHandler] handling read response header event... >>>>>>> [May 18 12:56:20.314] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [isCacheObjTransformable] cache object's status is 0; not transformable >>>>>>> [May 18 12:56:20.314] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [getClientState] Got request URL >>>>>>> [http://ori.servotic.com/esi/esi.html?ppppp] >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: >>>>>>> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Accept] >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: >>>>>>> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Accept] >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: >>>>>>> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Accept] >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: >>>>>>> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Accept] >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: >>>>>>> (plugin_esi_vars_0x2372890) [populate] Not retaining header >>>>>>> [Accept-Encoding] >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [getClientState] Client accepts gzip encoding; will compress output >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: >>>>>>> (plugin_esi_vars_0x2372890) [populate] Not retaining header >>>>>>> [Accept-Encoding] >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: >>>>>>> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Connection] >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: >>>>>>> (plugin_esi_vars_0x2372890) [populate] Not retaining header [Pragma] >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: >>>>>>> (plugin_esi_vars_0x2372890) [populate] Not retaining header >>>>>>> [Cache-Control] >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [getServerState] Not retaining 'vary: accept-encoding' header >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [getServerState] Not retaining 'content-encoding: gzip' header >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [getServerState] Not retaining 'X-Esi' header >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [getServerState] Not retaining 'Content-length' header >>>>>>> [May 18 12:56:20.315] Server {47736083166976} DIAG: (plugin_esi) >>>>>>> [addTransform] Added transformation (0x0x2372890) >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [init] Set input data type to [GZIPPED_ESI] >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformHandler] initialized continuation data >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_fetcher_0x2372890) [_isFetchEvent] Event id 1 not within >>>>>>> fetch event id range [10000, 10000) >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformHandler] handling TS_EVENT_IMMEDIATE... >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformData] upstream VC has 126 bytes >>>>>>> available to read >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformData] Added chunk of 126 bytes >>>>>>> starting with [] to parse list >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformData] Consumed 126 bytes from upstream >>>>>>> VC >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformData] Completed reading input... >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_processor_0x2372890) [completeParse] Implicit call to >>>>>>> start() >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_parser_0x2372890) [_setup] Returning true for empty data >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_parser_0x2372890) [_completeParse] No data to parse! >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_processor_0x2372890) [_handleParseComplete] Parsed ESI >>>>>>> document with 0 nodes >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformData] data ready; going to process doc >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_processor_0x2372890) [process] ESI processed document of >>>>>>> size 0 starting with [(null)] >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformData] ESI processor output document of >>>>>>> size 0 starting with [(null)] >>>>>>> [May 18 12:56:20.315] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformData] Compressed document from size 0 >>>>>>> to 20 bytes >>>>>>> [May 18 12:56:20.315] Server {47736080008960} DIAG: >>>>>>> (plugin_esi_fetcher_0x2372890) [_isFetchEvent] Event id 1 not within >>>>>>> fetch event id range [10000, 10000) >>>>>>> [May 18 12:56:20.316] Server {47736080008960} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformHandler] handling TS_EVENT_IMMEDIATE... >>>>>>> [May 18 12:56:20.316] Server {47736080008960} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformData] input_vio NULL, marking >>>>>>> transformation to be terminated >>>>>>> [May 18 12:56:20.324] Server {47736062606624} DIAG: (plugin_esi) >>>>>>> [modifyResponseHeader] Removing header with name [Cache-Control] >>>>>>> [May 18 12:56:20.325] Server {47736062606624} DIAG: (plugin_esi) >>>>>>> [modifyResponseHeader] Removing header with name [X-Esi] >>>>>>> [May 18 12:56:20.325] Server {47736062606624} DIAG: (plugin_esi) >>>>>>> [modifyResponseHeader] Removing header with name [Age] >>>>>>> [May 18 12:56:20.325] Server {47736062606624} DIAG: (plugin_esi) >>>>>>> [modifyResponseHeader] Inspected client-bound headers >>>>>>> [May 18 12:56:20.336] Server {47736082114304} DIAG: >>>>>>> (plugin_esi_fetcher_0x2372890) [_isFetchEvent] Event id 103 not within >>>>>>> fetch event id range [10000, 10000) >>>>>>> [May 18 12:56:20.337] Server {47736082114304} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformHandler] shutting down transformation >>>>>>> [May 18 12:56:20.348] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [checkXformStatus] Vconn closed >>>>>>> [May 18 12:56:20.349] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_fetcher_0x2372890) [_isFetchEvent] Event id 1 not within >>>>>>> fetch event id range [10000, 10000) >>>>>>> [May 18 12:56:20.349] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformHandler] Transformation closed. >>>>>>> Post-processing... >>>>>>> [May 18 12:56:20.349] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformHandler] Processing is complete, not >>>>>>> processing current event 1 >>>>>>> [May 18 12:56:20.349] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [transformHandler] transformation closed; >>>>>>> cleaning up data... >>>>>>> [May 18 12:56:20.349] Server {47736084219648} DIAG: >>>>>>> (plugin_esi_0x2372890) [~ContData] Destroying continuation data >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> quid.blog: >>>>>>> 1337338580.337 335 10.6.0.6 TCP_MISS/200 296 GET >>>>>>> http://www.servotic.com/esi/esi.html?ppppp - DIRECT/ori.servotic.com >>>>>>> text/html Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0) >>>>>>> Gecko/20100101 Firefox/12.0 - >>>>>>> >>>>>>> >>>>>>> The remap_config is like this right now: >>>>>>> >>>>>>> map http://www.servotic.com/ http://ori.servotic.com/ >>>>>>> >>>>>>> I don't know what is wrong… :( >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 17/05/2012, at 23:28, Kit Chan wrote: >>>>>>> >>>>>>>> I am not 100% sure but i think the plugin is not smart enough yet to >>>>>>>> understand the "../" >>>>>>>> >>>>>>>> This may work in esi/esi.html >>>>>>>> >>>>>>>> <esi:include src="http://www.servotic.com/date.php"/> >>>>>>>> >>>>>>>> If not, can u make sure that conf_remap is not doing anything funny >>>>>>>> for your request? and pls post the traffic.out & squid.blog/squid.log >>>>>>>> again after the suggested change. >>>>>>>> >>>>>>>> Thanks >>>>>>>> Kit >>>>>>>> >>>>>>>> Sent from my iPhone >>>>>>>> >>>>>>>> On May 17, 2012, at 10:39 PM, Jorge Román Novalbos >>>>>>>> <jro...@linux-it.es> wrote: >>>>>>>> >>>>>>>>> First of all, I'm sorry I'm a newbie in esi tags and it's being so >>>>>>>>> confusing for me…. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 17/05/2012, at 21:41, Kit Chan wrote: >>>>>>>>> >>>>>>>>>> It seems that the plugin is not getting any response body from the >>>>>>>>>> first request. >>>>>>>>>> >>>>>>>>>>> http://ori.servotic.com/esi/esi.php?p >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> So it thinks that there is no esi markup to interpret. >>>>>>>>> >>>>>>>>> >>>>>>>>> This is the content of esi.html: >>>>>>>>> >>>>>>>>> <HTML> >>>>>>>>> <BODY> >>>>>>>>> The time is: <esi:include src="../date.php"/> >>>>>>>>> at this very moment. >>>>>>>>> </BODY> >>>>>>>>> </HTML> >>>>>>>>> >>>>>>>>> and this is the date.php >>>>>>>>> >>>>>>>>> <?php >>>>>>>>> echo date('l jS \of F Y h:i:s A'); >>>>>>>>> ?> >>>>>>>>> >>>>>>>>> In the vhost configuration I add the X-Esi header like this: >>>>>>>>> >>>>>>>>> <Directory /DATA/public/site/html/esi> >>>>>>>>> Header set Cache-control no-cache >>>>>>>>> Header set X-Esi 1 >>>>>>>>> </Directory> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Do you have output of squid.blog or squid.log? It should show two >>>>>>>>>> requests of status 200 if it is all good and successful >>>>>>>>> >>>>>>>>> 1337286567.313 347 10.6.0.6 TCP_MISS/200 296 GET >>>>>>>>> http://www.servotic.com/esi/esi.html - DIRECT/ori.servotic.com >>>>>>>>> text/html Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0) >>>>>>>>> Gecko/20100101 Firefox/12.0 - >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Also what is the corresponding line in remap.config? And what is the >>>>>>>>>> actual url in the esi include? What is the url of the actual request >>>>>>>>>> from user? Your esi include url in the first request cannot be >>>>>>>>>> arbitrary and must be handled by one of the lines in remap.config >>>>>>>>> >>>>>>>>> In remap.config: >>>>>>>>> >>>>>>>>> map http://www.servotic.com/ http://ori.servotic.com/ >>>>>>>>> @plugin=conf_remap.so >>>>>>>>> @pparam=/opt/trafficserver/etc/trafficserver/clientes/servotic.conf >>>>>>>>> >>>>>>>>> In my plugin.config >>>>>>>>> >>>>>>>>> esi.so >>>>>>>>> >>>>>>>>> >>>>>>>>> The url that i asking for is http://www.servotic.com/esi/esi.html but >>>>>>>>> pointer to my staging enviroment, I mean this request is not working >>>>>>>>> in the production enviroment. >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thanks >>>>>>>>>> Kit >>>>>>>>>> >>>>>>>>>> Sent from my iPhone >>>>>>>>>> >>>>>>>>>> On May 17, 2012, at 6:12 PM, Jorge Román Novalbos >>>>>>>>>> <jro...@linux-it.es> wrote: >>>>>>>>>> >>>>>>>>>>> You're right that was one of my problem but it still doesn't work. >>>>>>>>>>> This is the traffic.out output in debug mode while a esi request is >>>>>>>>>>> processing: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [isInterceptRequest] Skipping external request >>>>>>>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [globalHookHandler] handling read request header event... >>>>>>>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [globalHookHandler] Not setting up intercept >>>>>>>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [isInterceptRequest] Skipping external request >>>>>>>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [globalHookHandler] handling cache lookup complete event... >>>>>>>>>>> [May 17 18:10:36.051] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [isCacheObjTransformable] cache object's status is 0; not >>>>>>>>>>> transformable >>>>>>>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [isInterceptRequest] Skipping external request >>>>>>>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [globalHookHandler] handling read response header event... >>>>>>>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [isCacheObjTransformable] cache object's status is 0; not >>>>>>>>>>> transformable >>>>>>>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [getClientState] Got request URL >>>>>>>>>>> [http://ori.servotic.com/esi/esi.php?p] >>>>>>>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>>>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header >>>>>>>>>>> [Accept] >>>>>>>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>>>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header >>>>>>>>>>> [Accept] >>>>>>>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>>>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header >>>>>>>>>>> [Accept] >>>>>>>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>>>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header >>>>>>>>>>> [Accept] >>>>>>>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>>>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header >>>>>>>>>>> [Accept-Encoding] >>>>>>>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [getClientState] Client accepts gzip encoding; will compress output >>>>>>>>>>> [May 17 18:10:36.385] Server {47745214236416} DIAG: >>>>>>>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header >>>>>>>>>>> [Accept-Encoding] >>>>>>>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: >>>>>>>>>>> (plugin_esi_vars_0x2b6c90dcd480) [populate] Not retaining header >>>>>>>>>>> [Connection] >>>>>>>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [getServerState] Not retaining 'X-Esi' header >>>>>>>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [getServerState] Not retaining 'vary: accept-encoding' header >>>>>>>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [getServerState] Not retaining 'content-encoding: gzip' header >>>>>>>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [getServerState] Not retaining 'Content-length' header >>>>>>>>>>> [May 17 18:10:36.386] Server {47745214236416} DIAG: (plugin_esi) >>>>>>>>>>> [addTransform] Added transformation (0x0x2b6c90dcd480) >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [init] Set input data type to >>>>>>>>>>> [GZIPPED_ESI] >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] initialized >>>>>>>>>>> continuation data >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_fetcher_0x2b6c90dcd480) [_isFetchEvent] Event id 1 not >>>>>>>>>>> within fetch event id range [10000, 10000) >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] handling >>>>>>>>>>> TS_EVENT_IMMEDIATE... >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] upstream VC has 126 >>>>>>>>>>> bytes available to read >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] Added chunk of 126 >>>>>>>>>>> bytes starting with [] to parse list >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] Consumed 126 bytes from >>>>>>>>>>> upstream VC >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] Completed reading >>>>>>>>>>> input... >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_processor_0x2b6c90dcd480) [completeParse] Implicit call >>>>>>>>>>> to start() >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_parser_0x2b6c90dcd480) [_setup] Returning true for >>>>>>>>>>> empty data >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_parser_0x2b6c90dcd480) [_completeParse] No data to >>>>>>>>>>> parse! >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_processor_0x2b6c90dcd480) [_handleParseComplete] Parsed >>>>>>>>>>> ESI document with 0 nodes >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] data ready; going to >>>>>>>>>>> process doc >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_processor_0x2b6c90dcd480) [process] ESI processed >>>>>>>>>>> document of size 0 starting with [(null)] >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] ESI processor output >>>>>>>>>>> document of size 0 starting with [(null)] >>>>>>>>>>> [May 17 18:10:36.386] Server {47745215289088} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformData] Compressed document >>>>>>>>>>> from size 0 to 20 bytes >>>>>>>>>>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) >>>>>>>>>>> [modifyResponseHeader] Removing header with name [Cache-Control] >>>>>>>>>>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) >>>>>>>>>>> [modifyResponseHeader] Removing header with name [X-Esi] >>>>>>>>>>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) >>>>>>>>>>> [modifyResponseHeader] Removing header with name [Age] >>>>>>>>>>> [May 17 18:10:36.387] Server {47745216341760} DIAG: (plugin_esi) >>>>>>>>>>> [modifyResponseHeader] Inspected client-bound headers >>>>>>>>>>> [May 17 18:10:36.387] Server {47745213183744} DIAG: >>>>>>>>>>> (plugin_esi_fetcher_0x2b6c90dcd480) [_isFetchEvent] Event id 103 >>>>>>>>>>> not within fetch event id range [10000, 10000) >>>>>>>>>>> [May 17 18:10:36.387] Server {47745213183744} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] shutting down >>>>>>>>>>> transformation >>>>>>>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [checkXformStatus] Vconn closed >>>>>>>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>>>>>>> (plugin_esi_fetcher_0x2b6c90dcd480) [_isFetchEvent] Event id 1 not >>>>>>>>>>> within fetch event id range [10000, 10000) >>>>>>>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] Transformation >>>>>>>>>>> closed. Post-processing... >>>>>>>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] Processing is >>>>>>>>>>> complete, not processing current event 1 >>>>>>>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [transformHandler] transformation >>>>>>>>>>> closed; cleaning up data... >>>>>>>>>>> [May 17 18:10:36.398] Server {47745194728736} DIAG: >>>>>>>>>>> (plugin_esi_0x2b6c90dcd480) [~ContData] Destroying continuation data >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 17/05/2012, at 17:23, Kit Chan wrote: >>>>>>>>>>> >>>>>>>>>>>> Without looking too deep into all info, i think the problem is >>>>>>>>>>>> that u need to have a response header of >>>>>>>>>>>> >>>>>>>>>>>> X-Esi: 1 >>>>>>>>>>>> >>>>>>>>>>>> with esi.html >>>>>>>>>>>> >>>>>>>>>>>> Sent from my iPhone >>>>>>>>>>>> >>>>>>>>>>>> On May 16, 2012, at 6:01 PM, Jorge Román Novalbos >>>>>>>>>>>> <jro...@linux-it.es> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> I have the plugin compiled. >>>>>>>>>>>>> >>>>>>>>>>>>> Finally I downloaded the sources from >>>>>>>>>>>>> https://github.com/shukitchan/trafficserver-plugins/ with the >>>>>>>>>>>>> problems fixes. >>>>>>>>>>>>> >>>>>>>>>>>>> Now I'm trying to test the plugin. >>>>>>>>>>>>> >>>>>>>>>>>>> For this test i have created two file: >>>>>>>>>>>>> >>>>>>>>>>>>> - esi.html >>>>>>>>>>>>> >>>>>>>>>>>>> <HTML> >>>>>>>>>>>>> <BODY> >>>>>>>>>>>>> The time is: <esi:include src="http://www.example.com/esi.php"/> >>>>>>>>>>>>> at this very moment. >>>>>>>>>>>>> </BODY> >>>>>>>>>>>>> </HTML> >>>>>>>>>>>>> >>>>>>>>>>>>> - esi.php >>>>>>>>>>>>> >>>>>>>>>>>>> <?php >>>>>>>>>>>>> echo date('l jS \of F Y h:i:s A'); >>>>>>>>>>>>> ?> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> When i ask for esi.html the date is not displayed, so esi plugin >>>>>>>>>>>>> it doesn't work. >>>>>>>>>>>>> >>>>>>>>>>>>> My question, ¿Do i have to activate the ESI in order to process >>>>>>>>>>>>> that url? Sorry, but i can't find much documentation about how to >>>>>>>>>>>>> implement ATS with ESI tags. >>>>>>>>>>>>> >>>>>>>>>>>>> P.S: I have activated the plugin in plugin.config >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On 16/05/2012, at 12:22, Jorge Román Novalbos wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> I am focusing with compile the pluging using the make command >>>>>>>>>>>>>> and i have achieved some advances. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I have installed some packages (libboost1.42-dev and >>>>>>>>>>>>>> gcc-4.4-locales) and the error now is: >>>>>>>>>>>>>> >>>>>>>>>>>>>> root@ts1:~/ATS-plugins/trafficserver-plugins/esi# make >>>>>>>>>>>>>> tsxs -v -I lib -I fetcher/ -C plugin.cc serverIntercept.cc >>>>>>>>>>>>>> lib/*.cc fetcher/*.cc -o esi.so >>>>>>>>>>>>>> compiling plugin.cc -> plugin.lo >>>>>>>>>>>>>> g++ -I/opt/trafficserver-3.0.4/include -Ilib -Ifetcher/ -g -pipe >>>>>>>>>>>>>> -Wall -Werror -O3 -feliminate-unused-debug-symbols >>>>>>>>>>>>>> -fno-strict-aliasing -Wno-invalid-offsetof -fpic -c plugin.cc -o >>>>>>>>>>>>>> plugin.lo >>>>>>>>>>>>>> En el fichero incluído de /usr/include/c++/4.4/ext/hash_map:60, >>>>>>>>>>>>>> de lib/StringHash.h:29, >>>>>>>>>>>>>> de lib/EsiProcessor.h:31, >>>>>>>>>>>>>> de plugin.cc:34: >>>>>>>>>>>>>> /usr/include/c++/4.4/backward/backward_warning.h:28:2: error: >>>>>>>>>>>>>> #warning This file includes at least one deprecated or >>>>>>>>>>>>>> antiquated header which may be removed without further notice at >>>>>>>>>>>>>> a future date. Please use a non-deprecated interface with >>>>>>>>>>>>>> equivalent functionality instead. For a listing of replacement >>>>>>>>>>>>>> headers and interfaces, consult the file backward_warning.h. To >>>>>>>>>>>>>> disable this warning use -Wno-deprecated. >>>>>>>>>>>>>> plugin.cc: In function ‘void cacheNodeList(ContData*)’: >>>>>>>>>>>>>> plugin.cc:453: error: conversión inválida de ‘const sockaddr*’ a >>>>>>>>>>>>>> ‘unsigned int’ >>>>>>>>>>>>>> plugin.cc:453: error: conversión inválida de ‘tsapi_cont*’ a >>>>>>>>>>>>>> ‘int’ >>>>>>>>>>>>>> plugin.cc:453: error: no se puede convertir >>>>>>>>>>>>>> ‘TSFetchWakeUpOptions’ a ‘tsapi_cont*’ para el argumento ‘5’ >>>>>>>>>>>>>> para ‘void TSFetchUrl(const char*, int, unsigned int, int, >>>>>>>>>>>>>> tsapi_cont*, TSFetchWakeUpOptions, TSFetchEvent)’ >>>>>>>>>>>>>> Compile failed: g++ -I/opt/trafficserver-3.0.4/include -Ilib >>>>>>>>>>>>>> -Ifetcher/ -g -pipe -Wall -Werror -O3 >>>>>>>>>>>>>> -feliminate-unused-debug-symbols -fno-strict-aliasing >>>>>>>>>>>>>> -Wno-invalid-offsetof -fpic -c plugin.cc -o plugin.lo >>>>>>>>>>>>>> make: *** [all] Error 1 >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> I'm debuging the make command with strace but I'm not able to >>>>>>>>>>>>>> fix the problem. Some advices? >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 16/05/2012, at 10:51, Jorge Román Novalbos wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I'm compiling the ESI plugin in my trafficserver-3.0.4. I >>>>>>>>>>>>>>> downloaded the plugins from repository and i have followed the >>>>>>>>>>>>>>> next steps: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> 1. cd trafficserver-plugins/esi >>>>>>>>>>>>>>> 2. /opt/trafficserver/bin/tsxs -o esi.so -c serverIntercept.cc >>>>>>>>>>>>>>> 3 /opt/trafficserver/bin/tsxs -o esi.so -i >>>>>>>>>>>>>>> 4 edit /opt/trafficserver/etc/trafficserver/plugin.config an >>>>>>>>>>>>>>> add esi.so >>>>>>>>>>>>>>> 5. Restart trafficserver daemon. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> The traffic_server process never start because can't load the >>>>>>>>>>>>>>> esi plugin. The traffic.out show these lines: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> [May 16 10:31:49.263] Server {47992987118880} ERROR: unable to >>>>>>>>>>>>>>> find TSPluginInit function >>>>>>>>>>>>>>> '/opt/trafficserver-3.0.4/libexec/trafficserver/esi.so': >>>>>>>>>>>>>>> /opt/trafficserver-3.0.4/libexec/trafficserver/esi.so: >>>>>>>>>>>>>>> undefined symbol: TSPluginInit >>>>>>>>>>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR: >>>>>>>>>>>>>>> [LocalManager::pollMgmtProcessServer] Server Process terminated >>>>>>>>>>>>>>> due to Sig 6: Aborted >>>>>>>>>>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR: (last >>>>>>>>>>>>>>> system error 2: No such file or directory) >>>>>>>>>>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR: >>>>>>>>>>>>>>> [Alarms::signalAlarm] Server Process was reset >>>>>>>>>>>>>>> [May 16 10:31:50.361] Manager {140531591419680} ERROR: (last >>>>>>>>>>>>>>> system error 2: No such file or director y) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Obviously something is wrong in esi pluging but I don't know if >>>>>>>>>>>>>>> i am doing some step wrong. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I have tried to use the Makefile file in esi source but never >>>>>>>>>>>>>>> compile. This is the error: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> root@ts1:~/ATS-plugins/trafficserver-plugins/esi# make >>>>>>>>>>>>>>> tsxs -v -I lib -I fetcher/ -C plugin.cc serverIntercept.cc >>>>>>>>>>>>>>> lib/*.cc fetcher/*.cc -o esi.so >>>>>>>>>>>>>>> compiling plugin.cc -> plugin.lo >>>>>>>>>>>>>>> g++ -I/opt/trafficserver-3.0.4/include -Ilib -Ifetcher/ -g >>>>>>>>>>>>>>> -pipe -Wall -Werror -O3 -feliminate-unused-debug-symbols >>>>>>>>>>>>>>> -fno-strict-aliasing -Wno-invalid-offsetof -fpic -c plugin.cc >>>>>>>>>>>>>>> -o plugin.lo >>>>>>>>>>>>>>> In file included from /usr/include/c++/4.4/ext/hash_map:60, >>>>>>>>>>>>>>> from lib/StringHash.h:29, >>>>>>>>>>>>>>> from lib/EsiProcessor.h:31, >>>>>>>>>>>>>>> from plugin.cc:34: >>>>>>>>>>>>>>> /usr/include/c++/4.4/backward/backward_warning.h:28:2: error: >>>>>>>>>>>>>>> #warning This file includes at least one deprecated or >>>>>>>>>>>>>>> antiquated header which may be removed without further notice >>>>>>>>>>>>>>> at a future date. Please use a non-deprecated interface with >>>>>>>>>>>>>>> equivalent functionality instead. For a listing of replacement >>>>>>>>>>>>>>> headers and interfaces, consult the file backward_warning.h. To >>>>>>>>>>>>>>> disable this warning use -Wno-deprecated. >>>>>>>>>>>>>>> In file included from lib/EsiProcessor.h:35, >>>>>>>>>>>>>>> from plugin.cc:34: >>>>>>>>>>>>>>> lib/Variables.h:29:33: error: boost/noncopyable.hpp: No existe >>>>>>>>>>>>>>> el fichero o el directorio >>>>>>>>>>>>>>> In file included from lib/EsiProcessor.h:35, >>>>>>>>>>>>>>> from plugin.cc:34: >>>>>>>>>>>>>>> lib/Variables.h:38: error: ‘boost’ has not been declared >>>>>>>>>>>>>>> lib/Variables.h:38: error: expected ‘{’ before ‘noncopyable’ >>>>>>>>>>>>>>> lib/Variables.h:38: error: invalid type in declaration before >>>>>>>>>>>>>>> ‘{’ token >>>>>>>>>>>>>>> cc1plus: warnings being treated as errors >>>>>>>>>>>>>>> lib/Variables.h:38: error: extended initializer lists only >>>>>>>>>>>>>>> available with -std=c++0x or -std=gnu++0x >>>>>>>>>>>>>>> lib/Variables.h:40: error: expected primary-expression before >>>>>>>>>>>>>>> ‘public’ >>>>>>>>>>>>>>> lib/Variables.h:40: error: expected ‘}’ before ‘public’ >>>>>>>>>>>>>>> lib/Variables.h:40: error: expected ‘,’ or ‘;’ before ‘public’ >>>>>>>>>>>>>>> lib/Variables.h: In function ‘void EsiLib::populate(const >>>>>>>>>>>>>>> char*, int)’: >>>>>>>>>>>>>>> lib/Variables.h:60: error: ‘_query_string_parsed’ was not >>>>>>>>>>>>>>> declared in this scope >>>>>>>>>>>>>>> lib/Variables.h:61: error: ‘_parseQueryString’ was not declared >>>>>>>>>>>>>>> in this scope >>>>>>>>>>>>>>> lib/Variables.h:63: error: ‘_query_string’ was not declared in >>>>>>>>>>>>>>> this scope >>>>>>>>>>>>>>> lib/Variables.h: At global scope: >>>>>>>>>>>>>>> lib/Variables.h:70: error: non-member function ‘const >>>>>>>>>>>>>>> std::string& EsiLib::getValue(const std::string&)’ cannot have >>>>>>>>>>>>>>> cv-qualifier >>>>>>>>>>>>>>> lib/Variables.h:73: error: non-member function ‘const >>>>>>>>>>>>>>> std::string& EsiLib::getValue(const char*, int)’ cannot have >>>>>>>>>>>>>>> cv-qualifier >>>>>>>>>>>>>>> lib/Variables.h: In function ‘const std::string& >>>>>>>>>>>>>>> EsiLib::getValue(const char*, int)’: >>>>>>>>>>>>>>> lib/Variables.h:75: error: ‘EMPTY_STRING’ was not declared in >>>>>>>>>>>>>>> this scope >>>>>>>>>>>>>>> lib/Variables.h: At global scope: >>>>>>>>>>>>>>> lib/Variables.h:88: error: declaration of ‘~EsiLib::Variables’ >>>>>>>>>>>>>>> as non-member >>>>>>>>>>>>>>> lib/Variables.h:90: error: expected unqualified-id before >>>>>>>>>>>>>>> ‘private’ >>>>>>>>>>>>>>> lib/Variables.h:99: error: storage size of >>>>>>>>>>>>>>> ‘EsiLib::SIMPLE_HEADERS’ isn't known >>>>>>>>>>>>>>> lib/Variables.h:102: error: storage size of >>>>>>>>>>>>>>> ‘EsiLib::SPECIAL_HEADERS’ isn't known >>>>>>>>>>>>>>> lib/Variables.h:105: error: storage size of >>>>>>>>>>>>>>> ‘EsiLib::NORM_SIMPLE_HEADERS’ isn't known >>>>>>>>>>>>>>> lib/Variables.h:106: error: storage size of >>>>>>>>>>>>>>> ‘EsiLib::NORM_SPECIAL_HEADERS’ isn't known >>>>>>>>>>>>>>> lib/Variables.h:114: error: non-member function ‘std::string& >>>>>>>>>>>>>>> EsiLib::_toUpperCase(std::string&)’ cannot have cv-qualifier >>>>>>>>>>>>>>> lib/Variables.h:115: error: non-member function ‘int >>>>>>>>>>>>>>> EsiLib::_searchHeaders(const std::string*, const char*, int)’ >>>>>>>>>>>>>>> cannot have cv-qualifier >>>>>>>>>>>>>>> lib/Variables.h:117: error: non-member function ‘bool >>>>>>>>>>>>>>> EsiLib::_parseDictVariable(const std::string&, const char*&, >>>>>>>>>>>>>>> int&, const char*&, int&)’ cannot have cv-qualifier >>>>>>>>>>>>>>> lib/Variables.h:150: error: non-member function ‘const >>>>>>>>>>>>>>> std::string& EsiLib::_getSubCookieValue(const std::string&, >>>>>>>>>>>>>>> size_t)’ cannot have cv-qualifier >>>>>>>>>>>>>>> lib/Variables.h:154: error: expected declaration before ‘}’ >>>>>>>>>>>>>>> token >>>>>>>>>>>>>>> lib/Variables.h:99: error: ‘EsiLib::SIMPLE_HEADERS’ defined but >>>>>>>>>>>>>>> not used >>>>>>>>>>>>>>> lib/Variables.h:102: error: ‘EsiLib::SPECIAL_HEADERS’ defined >>>>>>>>>>>>>>> but not used >>>>>>>>>>>>>>> lib/Variables.h:105: error: ‘EsiLib::NORM_SIMPLE_HEADERS’ >>>>>>>>>>>>>>> defined but not used >>>>>>>>>>>>>>> lib/Variables.h:106: error: ‘EsiLib::NORM_SPECIAL_HEADERS’ >>>>>>>>>>>>>>> defined but not used >>>>>>>>>>>>>>> Compile failed: g++ -I/opt/trafficserver-3.0.4/include -Ilib >>>>>>>>>>>>>>> -Ifetcher/ -g -pipe -Wall -Werror -O3 >>>>>>>>>>>>>>> -feliminate-unused-debug-symbols -fno-strict-aliasing >>>>>>>>>>>>>>> -Wno-invalid-offsetof -fpic -c plugin.cc -o plugin.lo >>>>>>>>>>>>>>> make: *** [all] Error 1 >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> could anybody help me? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks to all developer for this amaizing software. >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>> >>>> >>