GitHub user shinrich opened a pull request:
https://github.com/apache/trafficserver/pull/1088
TS-4915: Crash from hostdb in PriorityQueueLess
These changes have been running on my production box since leaving work
Monday night. Will keep an eye on it. Lower traffic overnight might not be
stressing it sufficiently.
The main change was in PriorityQueueLess<>::erase. The assignment of the
end item to the erase point was not preserving the entry index. So the
assumption that entry->index is less than _v.length() was made invalid the next
time around. I think breaking this entry->index == _v index assignment can
also harm the bubble_sorting logic. I think PriorityQueueLess<>::pop also has
a problem, but my work load was not triggering that function, so I didn't dive
in there.
The other change was in RefCountCachePartition<C>::make_space_for. There
was an extra pop which I believe was doubly removing an entry already removed
in PriorityQueueLess::erase (called from RefCountCachePartition<C>::erase).
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/shinrich/trafficserver ts-4915-2
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/trafficserver/pull/1088.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1088
----
commit 0898a59bc33d63d18997a66437c808acd2e7e073
Author: Susan Hinrichs <[email protected]>
Date: 2016-10-11T09:20:11Z
TS-4915: Crash from hostdb in PriorityQueueLess
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---