classification
Title: Solaris: thread_time doesn't work with current implementation
Type: crash Stage: resolved
Components: Extension Modules Versions: Python 3.10, Python 3.9, Python 3.8
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: BTaskaya, kulikjak, miss-islington, pablogsal, serhiy.storchaka
Priority: normal Keywords: patch

Created on 2018-12-10 14:32 by kulikjak, last changed 2020-11-04 14:19 by pablogsal. This issue is now closed.

Files
File name Uploaded Description Edit
thread_time.diff kulikjak, 2018-12-10 14:32 Possible patch
Pull Requests
URL Status Linked Edit
PR 11118 merged kulikjak, 2018-12-11 12:48
PR 23130 merged miss-islington, 2020-11-03 15:13
PR 23145 merged kulikjak, 2020-11-04 13:29
Messages (10)
msg331509 - (view) Author: Jakub Kulik (kulikjak) * Date: 2018-12-10 14:32
Implementation of time.thread_time() doesn't work on Solaris because clock_id CLOCK_THREAD_CPUTIME_ID is not known (it is defined, but clock_gettime returns EINVAL error). Solaris, however, has function gethrvtime() which can substitute this functionality.

I attached a possible patch which does work during tests and I further tested it with some basic scripts.
msg346027 - (view) Author: Jakub Kulik (kulikjak) * Date: 2019-06-19 08:16
Since I created this pull request, clock_gettime(CLOCK_THREAD_CPUTIME_ID, ..) was implemented into the Solaris kernel, so I guess that this is no longer relevant.
msg365635 - (view) Author: Batuhan Taskaya (BTaskaya) * (Python committer) Date: 2020-04-02 22:06
This issue is still valid under other solaris/sunos versions. @kulikjak are you still interested in resolving this issue?
msg366000 - (view) Author: Jakub Kulik (kulikjak) * Date: 2020-04-08 18:33
I was speaking for Oracle Solaris 11.4, where CLOCK_THREAD_CPUTIME_ID is now implemented (and we don't need it in older releases). But you are right that other Solaris/SunOS versions might not have this and hence would find this useful.

I can rebase and reopen the original PR, but I cannot test it that well now that our Solaris doesn't use that part of the code (I can change the #define for testing, that should be sufficient).
msg366001 - (view) Author: Jakub Kulik (kulikjak) * Date: 2020-04-08 18:38
Correction: looking at the PR, I made it so that it checks for SunOS, so even with CLOCK_THREAD_CPUTIME_ID available, new code would be executed. 

So if you believe that this should be implemented for other SunOSes, I can do it ;).
msg380213 - (view) Author: Jakub Kulik (kulikjak) * Date: 2020-11-02 12:01
Comment from https://bugs.python.org/issue42173#msg380205 confirmed that this issue is still relevant to Illumos based systems. Because of that, I am happy to resolve it.
msg380255 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2020-11-02 23:10
New changeset 9568622c9983b682b2a2a7bacfd3c341028ea099 by Jakub Kulík in branch 'master':
bpo-35455: Fix thread_time for Solaris OS (GH-11118)
https://github.com/python/cpython/commit/9568622c9983b682b2a2a7bacfd3c341028ea099
msg380264 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2020-11-03 07:29
Perhaps we should also use gethrtime() and gethrvtime() on HP-UX, but this is a different issue.
msg380321 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2020-11-04 13:16
New changeset 72bb4c6c1fc5f5209819a2e62d55475ddc888192 by Miss Skeleton (bot) in branch '3.9':
bpo-35455: Fix thread_time for Solaris OS (GH-11118) (GH-23130)
https://github.com/python/cpython/commit/72bb4c6c1fc5f5209819a2e62d55475ddc888192
msg380326 - (view) Author: Pablo Galindo Salgado (pablogsal) * (Python committer) Date: 2020-11-04 14:19
New changeset a12f459ec2a31b96a21c735eb18f3d0fd19e99ff by Jakub Kulík in branch '3.8':
[3.8] bpo-35455: Fix thread_time for Solaris OS (GH-11118). (GH-23145)
https://github.com/python/cpython/commit/a12f459ec2a31b96a21c735eb18f3d0fd19e99ff
History
Date User Action Args
2020-11-04 14:19:21pablogsalsetmessages: + msg380326
2020-11-04 13:33:35kulikjaksetversions: - Python 3.7
2020-11-04 13:29:28kulikjaksetpull_requests: + pull_request22057
2020-11-04 13:16:33pablogsalsetmessages: + msg380321
2020-11-03 15:13:46miss-islingtonsetnosy: + miss-islington

pull_requests: + pull_request22046
2020-11-03 07:29:06serhiy.storchakasetnosy: + serhiy.storchaka
messages: + msg380264
2020-11-02 23:10:46pablogsalsetstatus: open -> closed
resolution: fixed
2020-11-02 23:10:17pablogsalsetnosy: + pablogsal
messages: + msg380255
2020-11-02 12:05:57kulikjaksetversions: + Python 3.10
2020-11-02 12:02:33kulikjaksettitle: Solaris thread_time doesn't work with current implementation -> Solaris: thread_time doesn't work with current implementation
2020-11-02 12:01:40kulikjaksetmessages: + msg380213
2020-04-08 18:38:35kulikjaksetmessages: + msg366001
2020-04-08 18:33:07kulikjaksetmessages: + msg366000
2020-04-02 22:06:18BTaskayasetstatus: closed -> open
versions: + Python 3.9
nosy: + BTaskaya

messages: + msg365635

resolution: not a bug -> (no value)
2019-06-19 08:16:11kulikjaksetstatus: open -> closed
resolution: not a bug
messages: + msg346027

stage: patch review -> resolved
2018-12-11 15:40:15kulikjaksetversions: + Python 3.8
2018-12-11 12:48:31kulikjaksetstage: patch review
pull_requests: + pull_request10347
2018-12-11 10:22:59kulikjaksettype: crash
2018-12-10 14:32:21kulikjakcreate