From a145a2f83a4a7f4736b821b7308dc751e3547062 Mon Sep 17 00:00:00 2001 From: Lakshmi Narayanan Sreethar Date: Thu, 6 Feb 2025 13:07:48 +0530 Subject: [PATCH] scylla-gdb: scylla_read_stats: access schema via schema_ptr class Switch to using schema_ptr wrapper when handling schema references in scylla_read_stats function. The existing fallback for older versions (where schema is already a raw pointer) remains preserved. Fixes #18700 Signed-off-by: Lakshmi Narayanan Sreethar Closes scylladb/scylladb#22726 --- scylla-gdb.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/scylla-gdb.py b/scylla-gdb.py index 5d36c8c8df..c28f4006d5 100755 --- a/scylla-gdb.py +++ b/scylla-gdb.py @@ -5775,17 +5775,17 @@ class scylla_read_stats(gdb.Command): total = permit_stats() for permit in intrusive_list(permit_list): + schema_name = "*.*" + schema = permit['_schema'] try: - schema = permit['_schema']['_p'] + # schema is a schema_ptr in newer versions + if schema['_p']: + schema_name = schema_ptr(schema).table_name() except: # schema is already a raw pointer in older versions - schema = permit['_schema'] - - if schema: - raw_schema = schema.dereference()['_raw'] - schema_name = "{}.{}".format(str(raw_schema['_ks_name']).replace('"', ''), str(raw_schema['_cf_name']).replace('"', '')) - else: - schema_name = "*.*" + if schema: + raw_schema = schema.dereference()['_raw'] + schema_name = "{}.{}".format(str(raw_schema['_ks_name']).replace('"', ''), str(raw_schema['_cf_name']).replace('"', '')) description = str(permit['_op_name_view'])[1:-1] state = str(permit['_state'])[state_prefix_len:]