scylla-gdb.py: scylla-fiber: reject self-references when probing pointers

A self-reference is never the pointer we are looking for when looking
for other tasks referencing us. Reject such references when scanning
outright.
This commit is contained in:
Botond Dénes
2022-10-21 11:02:22 +03:00
parent f4365dd7f5
commit 2276565a2e

View File

@@ -3650,8 +3650,14 @@ class scylla_fiber(gdb.Command):
res = self._probe_pointer(maybe_tptr, scanned_region_size, using_seastar_allocator, verbose)
if not res is None:
return res
if res is None:
continue
if int(res[0].ptr) == int(ptr):
self._maybe_log("Rejecting self reference\n", verbose)
continue
return res
return None
@@ -3706,8 +3712,14 @@ class scylla_fiber(gdb.Command):
for maybe_tptr_meta, _ in scylla_find.find(ptr_meta.ptr):
maybe_tptr_meta.ptr -= maybe_tptr_meta.offset_in_object
res = self._probe_pointer(maybe_tptr_meta.ptr, scanned_region_size, using_seastar_allocator, verbose)
if not res is None:
return res
if res is None:
continue
if int(res[0].ptr) == int(ptr_meta.ptr):
self._maybe_log("Rejecting self reference\n", verbose)
continue
return res
finally:
orig.switch()