You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Gota Adachi (JIRA)" <ji...@apache.org> on 2013/12/20 10:08:08 UTC
[jira] [Updated] (TS-32) Fix ICP
[ https://issues.apache.org/jira/browse/TS-32?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gota Adachi updated TS-32:
--------------------------
Attachment: TS-32-icp-multicast-3.2.x.diff
TS-32-segfault-workaround.diff
TS-32-icp-basic-3.2.x.diff
I attached 3 patches:
This fix is being tested with trafficserver-3.2.0 and 4.0.2
on CentOS 6.5
h5. Patch 1/3: TS-32-icp-basic-3.2.x.diff
This patch minimum FIX to let ICP work.
Fixed an error on access to class member that was not initialized and
restored former implementation based on a change in TS-320.
And commented out the forced termination code in
UDPReadContinuation::readPollEvent().
Please tell me if you know what seems to be the problem in this
implementation.
h5. Patch 2/3: TS-32-segfault-workaround.diff
After applying this patch, I encountered a Segfault problem in
traffic_server, this issue looks like the one on [TS-1219].
While debugging, I found a buffer overrun problem in
PollDescriptor::alloc().
I confirmed in GDB that an allocated memory area for ioBufAllocator was
broken by this method.
This is an minimum workaround to prevent Segfault, but we should work on
a proper FIX.
h5. Patch 3/3: TS-32-icp-multicast-3.2.x.diff (depends on Patch 1/3)
This is a FIX to perform multicast ICP communication. On my testing
servers, I provide 2 NICs to my VM as eth0 and eth1.
TS was not using eth1 to send ICP packets so i fixed it.
\\
There are some different parts from the documents and the settings. An
error ocurred while inserting a localhost configuration in icp.config.
And also, after a HIT ICP response, TS transfer a request to the peer
server with a remaped URL causing a 404 error.
To solve this we should add a record to remap.config as below:
{code:title=remap.config|borderStyle=solid}
map http://192.168.36.22:8080/ http://1.2.3.4/
reverse_map http://1.2.3.4 http://192.168.36.22/
# add
map http://1.2.3.4/ http://1.2.3.4/
{code}
I'm continuing with my tests and TS seems to be working fine on my servers.
(But beacuase I don't know what ther real specifications are, I'm not
completely sure if what I'm doing is right...)
Please let me know your opinion about this patch.
Best regards.
> Fix ICP
> -------
>
> Key: TS-32
> URL: https://issues.apache.org/jira/browse/TS-32
> Project: Traffic Server
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.0.0
> Reporter: Miles Libbey
> Assignee: Zhao Yongming
> Fix For: sometime
>
> Attachments: TS-32-icp-basic-3.2.x.diff, TS-32-icp-multicast-3.2.x.diff, TS-32-segfault-workaround.diff
>
>
> {color:red}
> ICP is broken in all the releases and master, but we have options for that: inter-colo peering to use the parent.config, local network peering to use the cluster.
> refer to the official docutments for parent.config and cluster howto.
> {color}
> http://icp.ircache.net/
> The ICP implementation in Traffic Server broke when epoll() was introduced. Its still an interesting and used feature in caches:
> - when a caching layer of several boxes are used ICP helps to reduce disparities when a client is not routed to the same cache on subsequent requests
> - after a restart, it can help reduce the time spent in a cold cache situation
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)