trafficserver-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jorge Román Novalbos <jro...@linux-it.es>
Subject Re: ESI Plugin
Date Thu, 17 May 2012 16:12:27 GMT
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 <jroman@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.
>>> 
>> 


Mime
View raw message