You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2015/01/10 03:20:23 UTC
[1/3] trafficserver git commit: TS-3280 Fix the bulk free 0xDEADBEEF
clearing code.
Repository: trafficserver
Updated Branches:
refs/heads/5.2.x 998712abb -> cad13d9c6
TS-3280 Fix the bulk free 0xDEADBEEF clearing code.
This is primarily a fix from Brian G.
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/cc09ff38
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/cc09ff38
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/cc09ff38
Branch: refs/heads/5.2.x
Commit: cc09ff38a343566f80a05c29282e534d44ec88ca
Parents: 998712a
Author: Leif Hedstrom <zw...@apache.org>
Authored: Thu Jan 8 14:27:35 2015 -0700
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Fri Jan 9 19:17:42 2015 -0700
----------------------------------------------------------------------
lib/ts/ink_queue.cc | 34 ++++++++++++++++++++++------------
1 file changed, 22 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/cc09ff38/lib/ts/ink_queue.cc
----------------------------------------------------------------------
diff --git a/lib/ts/ink_queue.cc b/lib/ts/ink_queue.cc
index 9328cff..a841fb3 100644
--- a/lib/ts/ink_queue.cc
+++ b/lib/ts/ink_queue.cc
@@ -296,7 +296,7 @@ ink_freelist_free(InkFreeList * f, void *item)
}
void
-ink_freelist_free_bulk(ATS_UNUSED InkFreeList *f, ATS_UNUSED void *head, ATS_UNUSED void *tail, ATS_UNUSED size_t num_item)
+ink_freelist_free_bulk(InkFreeList *f, void *head, void *tail, size_t num_item)
{
#if TS_USE_FREELIST
#if !TS_USE_RECLAIMABLE_FREELIST
@@ -312,14 +312,14 @@ ink_freelist_free_bulk(ATS_UNUSED InkFreeList *f, ATS_UNUSED void *head, ATS_UNU
static const char str[4] = { (char) 0xde, (char) 0xad, (char) 0xbe, (char) 0xef };
// set the entire item to DEADBEEF;
- void * temp = head;
- for(size_t i = 0; i<num_item; i++){
- for (int j = 0; j < (int)f->type_size; j++)
+ void* temp = head;
+ for (size_t i = 0; i<num_item; i++) {
+ for (int j = sizeof(void*); j < (int)f->type_size; j++)
((char*)temp)[j] = str[j % 4];
- temp = *(void **) temp;
+ temp = *ADDRESS_OF_NEXT(temp, 0);
}
}
-#endif
+#endif /* DEADBEEF */
while (!result) {
INK_QUEUE_LD(h, f->head);
@@ -330,22 +330,32 @@ ink_freelist_free_bulk(ATS_UNUSED InkFreeList *f, ATS_UNUSED void *head, ATS_UNU
ink_fatal(1, "ink_freelist_free: bad list");
if (TO_PTR(FREELIST_POINTER(h)))
fake_global_for_ink_queue = *(int *) TO_PTR(FREELIST_POINTER(h));
-#endif
+#endif /* SANITY */
*adr_of_next = FREELIST_POINTER(h);
SET_FREELIST_POINTER_VERSION(item_pair, FROM_PTR(head), FREELIST_VERSION(h));
INK_MEMORY_BARRIER;
#if TS_HAS_128BIT_CAS
result = ink_atomic_cas((__int128_t*) & f->head, h.data, item_pair.data);
-#else
+#else /* !TS_HAS_128BIT_CAS */
result = ink_atomic_cas((int64_t *) & f->head, h.data, item_pair.data);
-#endif
+#endif /* TS_HAS_128BIT_CAS */
}
ink_atomic_increment((int *) &f->used, -1 * num_item);
ink_atomic_increment(&fastalloc_mem_in_use, -(int64_t) f->type_size * num_item);
-#endif
-#else
+#else /* TS_USE_RECLAIMABLE_FREELIST */
+ // Avoid compiler warnings
+ (void)f;
+ (void)head;
+ (void)tail;
+ (void)num_item;
+#endif /* !TS_USE_RECLAIMABLE_FREELIST */
+#else /* !TS_USE_FREELIST */
void * item = head;
+
+ // Avoid compiler warnings
+ (void)tail;
+
if (f->alignment) {
for (size_t i = 0; i < num_item && item; ++i, item = *(void **)item) {
ats_memalign_free(item);
@@ -355,7 +365,7 @@ ink_freelist_free_bulk(ATS_UNUSED InkFreeList *f, ATS_UNUSED void *head, ATS_UNU
ats_free(item);
}
}
-#endif
+#endif /* TS_USE_FREELIST */
}
void
[2/3] trafficserver git commit: TS-3280: Segfault in new freelist
bulk freeing
Posted by zw...@apache.org.
TS-3280: Segfault in new freelist bulk freeing
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/18ba34c5
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/18ba34c5
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/18ba34c5
Branch: refs/heads/5.2.x
Commit: 18ba34c57a60feed582f38ede3b69bb238f82f46
Parents: cc09ff3
Author: Brian Geffon <br...@apache.org>
Authored: Fri Jan 9 15:08:57 2015 -0800
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Fri Jan 9 19:18:05 2015 -0700
----------------------------------------------------------------------
lib/ts/ink_queue.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/18ba34c5/lib/ts/ink_queue.cc
----------------------------------------------------------------------
diff --git a/lib/ts/ink_queue.cc b/lib/ts/ink_queue.cc
index a841fb3..7847b2d 100644
--- a/lib/ts/ink_queue.cc
+++ b/lib/ts/ink_queue.cc
@@ -316,7 +316,8 @@ ink_freelist_free_bulk(InkFreeList *f, void *head, void *tail, size_t num_item)
for (size_t i = 0; i<num_item; i++) {
for (int j = sizeof(void*); j < (int)f->type_size; j++)
((char*)temp)[j] = str[j % 4];
- temp = *ADDRESS_OF_NEXT(temp, 0);
+ *ADDRESS_OF_NEXT(temp, 0) = FROM_PTR(*ADDRESS_OF_NEXT(temp,0));
+ temp = TO_PTR(*ADDRESS_OF_NEXT(temp, 0));
}
}
#endif /* DEADBEEF */
[3/3] trafficserver git commit: Added TS-3280, backported
Posted by zw...@apache.org.
Added TS-3280, backported
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/cad13d9c
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/cad13d9c
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/cad13d9c
Branch: refs/heads/5.2.x
Commit: cad13d9c6fa6454f7bd3664bdae7e1a91a871e94
Parents: 18ba34c
Author: Leif Hedstrom <zw...@apache.org>
Authored: Fri Jan 9 19:20:15 2015 -0700
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Fri Jan 9 19:20:15 2015 -0700
----------------------------------------------------------------------
CHANGES | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/cad13d9c/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 4edf598..b4019fe 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
-*- coding: utf-8 -*-
Changes with Apache Traffic Server 5.2.0
+ *) [TS-3280] Segfault in new freelist bulk freeing (in debug mode).
+
*) [TS-3276] Fix cache backwards compatibility issue.
*) [TS-3274] Forward port fix for cache fixup race condition in ram cache