Project

General

Profile

Actions

Feature #19850

closed

Get thread creation time

Added by ngan (Ngan Pham) 10 months ago. Updated 10 months ago.

Status:
Rejected
Assignee:
-
Target version:
-
[ruby-core:114517]

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?

Actions #1

Updated by jeremyevans0 (Jeremy Evans) 10 months ago

  • Tracker changed from Bug to Feature
  • Backport deleted (3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN)

Updated by mame (Yusuke Endoh) 10 months 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) 10 months 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.

Actions #4

Updated by nobu (Nobuyoshi Nakada) 10 months ago

  • Status changed from Feedback to Open

Updated by naruse (Yui NARUSE) 10 months 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) 10 months 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.

Actions

Also available in: Atom PDF

Like1
Like0Like0Like0Like0Like0Like0