diff options
author | unknown <jonas@perch.ndb.mysql.com> | 2007-11-14 11:52:40 +0100 |
---|---|---|
committer | unknown <jonas@perch.ndb.mysql.com> | 2007-11-14 11:52:40 +0100 |
commit | 90c05bd8e44c9680041017efd108c0c909927c5b (patch) | |
tree | 0f852574a82941b503548d9ac8a9fbcac9cf1d78 /storage/ndb/src | |
parent | 7e7668e4b5c60e0f1824a85ea5de0d40d7373cc1 (diff) | |
download | mariadb-git-90c05bd8e44c9680041017efd108c0c909927c5b.tar.gz |
ndb - Add new dump 8011
which dumps all subscribers
storage/ndb/src/kernel/blocks/suma/Suma.cpp:
Add new dump 8011
which dumps all subscribers
Diffstat (limited to 'storage/ndb/src')
-rw-r--r-- | storage/ndb/src/kernel/blocks/suma/Suma.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/storage/ndb/src/kernel/blocks/suma/Suma.cpp b/storage/ndb/src/kernel/blocks/suma/Suma.cpp index 7845b83693c..a4e886b14b6 100644 --- a/storage/ndb/src/kernel/blocks/suma/Suma.cpp +++ b/storage/ndb/src/kernel/blocks/suma/Suma.cpp @@ -974,6 +974,54 @@ Suma::execDUMP_STATE_ORD(Signal* signal){ } return; } + + if (tCase == 8011) + { + jam(); + Uint32 bucket = signal->theData[1]; + KeyTable<Table>::Iterator it; + if (signal->getLength() == 1) + { + jam(); + bucket = 0; + infoEvent("-- Starting dump of subscribers --"); + } + + c_tables.next(bucket, it); + const Uint32 RT_BREAK = 16; + for(Uint32 i = 0; i<RT_BREAK || it.bucket == bucket; i++) + { + jam(); + if(it.curr.i == RNIL) + { + jam(); + infoEvent("-- Ending dump of subscribers --"); + return; + } + + infoEvent("Table: %u ver: %u #n: %u (ref,data,subscritopn)", + it.curr.p->m_tableId, + it.curr.p->m_schemaVersion, + it.curr.p->n_subscribers); + + Ptr<Subscriber> ptr; + LocalDLList<Subscriber> list(c_subscriberPool, it.curr.p->c_subscribers); + for (list.first(ptr); !ptr.isNull(); list.next(ptr), i++) + { + jam(); + infoEvent(" [ %x %u %u ]", + ptr.p->m_senderRef, + ptr.p->m_senderData, + ptr.p->m_subPtrI); + } + c_tables.next(it); + } + + signal->theData[0] = tCase; + signal->theData[1] = it.bucket; + sendSignalWithDelay(reference(), GSN_DUMP_STATE_ORD, signal, 100, 2); + return; + } } /************************************************************* |