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. >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>> >>>