You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by deepak srinivasan <sd...@gmail.com> on 2013/03/13 14:11:14 UTC

Re: Issue with VConn close

Hi Alan,

Thanks for the reply.

I guess by chunk you mean a request to origin server.
I dont get it why I will get two VConn close events due to chunks not
consistent in size. I think they will only impact performace of read/write.

Code Logic:-
I have created a thread function for read/write/remove from cache.(i.e
total 3 threads)
I have presented one of the function
threadcacheWrite(CacheHandler.cpp).This function runs in infinite loop.
In each loop I check if there is a data in queue, I pop the data. I then
create a cont and set the data retrieved from queue.
Then I make a call to TSCacheWrite.

Events for TS_EVENT_CACHE_OPEN_WRITE and TS_EVENT_VCONN_WRITE_COMPLETE are
getting called correctly as expected.
But for event TS_EVENT_IMMEDIATE generated by VConn Close goes to
null_transform instead of calling cacheHandler.
Also the cont data which i observe is of null_transform.

For populating the data for reading and writing, I perform the following
operations-
I get the queue(stl queue) using function getWriteCacheQueue. I then push
the cache data object using push function call(Line 30 in NullTransform)
After the object is pushed in the queue, I wait for the signal using
pthread_cond_wait. To wake the main thread, I send the signal from the
function
which I send from cacheHandler.

Similary are the calls for threadcacheRead and threadcacheRemove.

I didn't understand your comment regarding the chaining of events. How can
I handle those in my code.

It will be great if you help in fixing this issue.

Regards,