fix __all_virtual_thread result incorrect

This commit is contained in:
nroskill
2023-05-11 10:13:16 +00:00
committed by ob-robot
parent aaab6560a1
commit caaed5132f
14 changed files with 48 additions and 11 deletions

View File

@ -115,6 +115,7 @@ int ObAllVirtualThread::inner_get_next_row(common::ObNewRow *&row)
break;
}
case WAIT_EVENT: {
GET_OTHER_TSI_ADDR(char*, rpc_dest_addr, &Thread::rpc_dest_addr_);
wait_event_[0] = '\0';
if (0 != join_addr) {
IGNORE_RETURN snprintf(wait_event_, 64, "thread %u", *(uint32_t*)(thread_base + tid_offset));
@ -132,6 +133,11 @@ int ObAllVirtualThread::inner_get_next_row(common::ObNewRow *&row)
} else {
IGNORE_RETURN snprintf(wait_event_, 64, "%u rdlocks", val & 0x3fffffff);
}
} else if (OB_NOT_NULL(rpc_dest_addr)) {
bool has_segv = false;
do_with_crash_restore([&] {
IGNORE_RETURN snprintf(wait_event_, 64, "rpc to %s", rpc_dest_addr);
}, has_segv);
}
cells[i].set_varchar(wait_event_);
cells[i].set_collation_type(