� � Some days ago, i tested the cache evacuate feature, and found some issues, 
TS-970<https://issues.apache.org/jira/browse/TS-970>�and 
TS-971<https://issues.apache.org/jira/browse/TS-971>. I tried to fix them, but 
i can't found a good way to fix them at the same time not affecting the 
performance when we don't use evacuate feature. The website 
TS-970<https://issues.apache.org/jira/browse/TS-970>�show my test methods, and 
patch named "TS-evacuate-fix2.patch" in TS-971 is my ultimate patch for both 
TS-970 and TS-971.
� � 1. AIO_CALLBACK_THREAD_AIO and�AIO_CALLBACK_THREAD_ANY. �After watching the 
codes in function aio_thread_main, file iocore/aio/AIO.cc, i 
think�AIO_CALLBACK_THREAD_ANY means use any ET_NET thread to asynchronously 
call Continuation handler, and�AIO_CALLBACK_THREAD_AIO means directly call 
Continuation handler, with current thread be ET_AIO thread.
� � 2. What leads to bug TS-970 and TS-971? I think TS-970 is fixed with no 
doubt, what i want to say is TS-971. With the debug info, we can see, 
trafficserver crash with fail assert "ink_assert(tt == REGULAR);", we can see 
it is actually a DEDICATED thread, but why? I think it is caused 
by�AIO_CALLBACK_THREAD_AIO. In aio_thread_main, the�AIO_CALLBACK_THREAD_AIO 
will leads to directly call Continuation handler, let's call it Continuation A, 
but if the codes in A asynchronously call another Continuation B, then 
something error happened. Because now A thread's type is�ET_AIO, which is a 
DEDICATED thread, not REGULAR thread, so crash with TS-971 happen. Of course, 
we can't let ET_AIO thread to asynchronously call a Continuation. When we don't 
use evacuate for cache, then that circumstances will never happen, but if we 
use evacuate feature, that will really happen.
� � 3. After talking with zwoop, i think this feature will not affect 
TS-924<https://issues.apache.org/jira/browse/TS-924>, i understood it in wrong 
way, because cache read happens before origin server get, so aio will only lead 
to switch threads, no problem.
� � Now the problem is, although my patch "TS-evacuate-fix2.patch" in TS-971 
have fixed the problem, but as zwoop said, if we don't 
use�AIO_CALLBACK_THREAD_AIO, that will make trafficserver slower. Maybe most of 
us don't use cache evacuate, so that is not a good way. Any good advises for 
me? I will go back to work two days later, and i will think it again, maybe 
could find a perfect solution.





--
mohan_zl
15868168704
wahu0315...@gmail.com<mailto:wahu0315...@gmail.com>


________________________________

This email (including any attachments) is confidential and may be legally 
privileged. If you received this email in error, please delete it immediately 
and do not copy it or use it for any purpose or disclose its contents to any 
other person. Thank you.

本电邮(包括任何附件)可能含有机密资料并受法律保护。如您不是正确的收件人,请您立即删除本邮件。请不要将本电邮进行复制并用作任何其他用途、或透露本邮件之内容。谢谢。

Reply via email to