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