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)