Feature #19850
closedGet thread creation time
Description
I was debugging some threads hanging issue and thought it would be nice to know how long a thread has been around for. Would there be interest in a Thread#creation_time
(or some other name) that returns the time when the thread was created?
Updated by jeremyevans0 (Jeremy Evans) over 1 year ago
- Tracker changed from Bug to Feature
- Backport deleted (
3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN)
Updated by mame (Yusuke Endoh) over 1 year ago
- Status changed from Open to Feedback
It is unclear what you expect from Thread#creation_time
. Could you please explain your use case in more detail and how it is useful for the case?
Updated by ngan (Ngan Pham) over 1 year ago
In the process of debugging a stuck process on production (Sidekiq), we've been dumping all the threads' backtraces. We can see a thread that's sleeping at net/http.rb
. (I've filed an issue here: https://github.com/ruby/net-http/issues/149)
But I was just thinking it would be nice to know, in general, how long a thread has been running to get a better sense if this thread has been stuck for a while or not.
Updated by nobu (Nobuyoshi Nakada) about 1 year ago
- Status changed from Feedback to Open
Updated by naruse (Yui NARUSE) about 1 year ago
To investigate when you want to investigate what causes a program hang...
pid2line¶
https://gist.github.com/nurse/0619b6af90df140508c2
It shows what threads are running or sleeping and where it is as C function name.
In your case, it will show _connect.
rbspy¶
When it is running in infinite loop, rbspy will help where it is.
https://rbspy.github.io/
Updated by mame (Yusuke Endoh) about 1 year ago
- Status changed from Open to Rejected
We discussed this at the dev meeting, and decided not to implement it.
Considering frameworks that implement a thread pool, the time when a Thread object is created is not necessarily useful, but could be rather confusing. It would be better for users or frameworks to record their own time at the start of a process.