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) about 2 years ago
          
          
        
        
      
      - Tracker changed from Bug to Feature
 - Backport deleted (
3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN) 
        
          
          Updated by mame (Yusuke Endoh) about 2 years 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) about 2 years 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 2 years ago
          
          
        
        
      
      - Status changed from Feedback to Open
 
        
          
          Updated by naruse (Yui NARUSE) about 2 years 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 2 years 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.