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