log: concatenate thread names and print once per thread#60464
log: concatenate thread names and print once per thread#60464
Conversation
|
This "improves" the situation with: but the thread names are on the same pthread_t id. Not sure why and it's too late for me to dig further. @mchangir Did you not simulate a core dump / assertion to check this? The code was blatantly wrong: what's worse, the I'm confess to being disappointed this was merged. @ljflores @rzarzynski RADOS QA should not have been considered adequate for testing. |
|
Now looks right in my testing: (note some thread ids were reused.) |
|
however: I think we need to cache recent threads even if there's no debug messages for the thread recently. |
|
@batrick I realized my folly about the dangling pointers after you commented on my PR |
done. some thread names need updated, going tof ix that next |
|
Now looks like: I consider this PR complete. |
|
windows failure is legitimate. Looking into it now. |
Fixes: 0be8d01 Fixes: https://tracker.ceph.com/issues/68691 Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
This provides common ceph entrypoints for the pthread_[gs]name functions which will also cache a thread_local copy. This also removes the pthread_t parameter which precipitated the bug i50743. Obviously, the overall goal here is to avoid system calls. See-also: https://tracker.ceph.com/issues/50743 Fixes: 0be8d01 Fixes: https://tracker.ceph.com/issues/68691 Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
In general, a pthread implementation reuses thread ids routinely so the circular_buffer is there to help us see what the thread name was historically (capped at 4 entries). However, to guard against this map from growing without bound, discard entries that are more than a day old. This would happen if a thread logged an Entry and has since disappeared for more than a day. Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
To be consistent and sensical. Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
|
jenkins test make check |
|
|
jenkins test make check |
1 similar comment
|
jenkins test make check |
|
|
jenkins test make check |
|
This PR is under test in https://tracker.ceph.com/issues/68786. |
|
This PR is under test in https://tracker.ceph.com/issues/68859. |
Fixes: https://tracker.ceph.com/issues/68691
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e