This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2013年11月24日 12:36 by vstinner, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| pylocaltime_aix.patch | vstinner, 2014年02月18日 09:19 | review | ||
| mktime_aix.patch | vstinner, 2014年02月20日 15:12 | review | ||
| Messages (20) | |||
|---|---|---|---|
| msg204201 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2013年11月24日 12:36 | |
http://buildbot.python.org/all/builders/PPC64%20AIX%203.x/builds/1138/steps/test/logs/stdio ====================================================================== ERROR: test_mktime (test.test_time.TimeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_time.py", line 348, in test_mktime self.assertEqual(time.mktime(tt), t) OverflowError: mktime argument out of range ====================================================================== FAIL: test_ctime (test.test_time.TimeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_time.py", line 233, in test_ctime self.assertEqual(time.ctime(testval)[20:], str(year)) AssertionError: '1941' != '-100' - 1941 + -100 |
|||
| msg204204 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2013年11月24日 12:45 | |
Oh, I missed also this one: ====================================================================== FAIL: test_mktime_error (test.test_time.TimeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_time.py", line 365, in test_mktime_error self.assertEqual(time.strftime('%Z', tt), tzname) AssertionError: 'LMT' != 'PST' - LMT + PST |
|||
| msg204238 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2013年11月24日 17:35 | |
@David: Can you try to check what the minimum accepted timestamp for the time module? |
|||
| msg204363 - (view) | Author: David Edelsohn (David.Edelsohn) * | Date: 2013年11月25日 17:00 | |
The valid range is 00:00:00 UTC, January 1, 1970 to 03:14:07 UTC, January 19, 2038. |
|||
| msg211500 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2014年02月18日 09:19 | |
@David Edelsohn: Can you please test attached patch on AIX? It should fix test_mktime and test_ctime. |
|||
| msg211512 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) | Date: 2014年02月18日 13:03 | |
Isn't this a duplicate of issue11188? |
|||
| msg211587 - (view) | Author: David Edelsohn (David.Edelsohn) * | Date: 2014年02月19日 01:50 | |
With the patch, the results are: ERROR: test_ctime (test.test_time.TimeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/dje/src/cpython/Lib/test/test_time.py", line 239, in test_ctime self.assertEqual(time.ctime(testval)[20:], str(year)) OverflowError: ctime() timestamp argument out of range ====================================================================== FAIL: test_mktime_error (test.test_time.TimeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/dje/src/cpython/Lib/test/test_time.py", line 371, in test_mktime_error self.assertEqual(time.strftime('%Z', tt), tzname) AssertionError: 'LMT' != 'PST' - LMT + PST which is what I would expect based on the patch and the new AIX-specific error message. What did you expect? |
|||
| msg211616 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2014年02月19日 13:35 | |
> which is what I would expect based on the patch and the new AIX-specific error message. What did you expect? No, mktime() and ctime() should both raise OverflowError. It looks like mktime() doesn't fail. Can you please try the following examples on AIX? Examples on Linux: >>> time.mktime((-100, 1, 10) + (0,)*6) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: year out of range >>> time.mktime((100, 1, 10) + (0,)*6) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: year out of range >>> time.mktime((1900, 1, 10) + (0,)*6) -2208211761.0 >>> time.mktime((1930, 1, 10) + (0,)*6) -1261526400.0 >>> time.mktime((1969,12,31, 23,59,59, 0,0,0)) -3601.0 |
|||
| msg211727 - (view) | Author: David Edelsohn (David.Edelsohn) * | Date: 2014年02月20日 14:57 | |
>>> time.mktime((-100, 1, 10) + (0,)*6) -897577382.0 >>> time.mktime((100, 1, 10) + (0,)*6) 1118888922.0 >>> time.mktime((1900, 1, 10) + (0,)*6) 2086784896.0 >>> time.mktime((1930, 1, 10) + (0,)*6) -1261497600.0 >>> time.mktime((1969,12,31, 23,59,59, 0,0,0)) 28799.0 |
|||
| msg211728 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2014年02月20日 15:12 | |
@David Edelsohn: Oh nice, mktime() has an integer overflow on AIX. Could you please try to apply attached mktime_aix.patch, run test_time and try again my examples of msg211616? Thanks. |
|||
| msg211795 - (view) | Author: David Edelsohn (David.Edelsohn) * | Date: 2014年02月21日 03:12 | |
With the latest patch, test_time passes. >>> time.mktime((-100, 1, 10) + (0,)*6) Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: mktime argument out of range >>> time.mktime((-100, 1, 10) + (0,)*6) Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: mktime argument out of range >>> time.mktime((1900, 1, 10) + (0,)*6) Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: mktime argument out of range >>> time.mktime((1930, 1, 10) + (0,)*6) -1261497600.0 >>> time.mktime((1969,12,31, 23,59,59, 0,0,0)) 28799.0 |
|||
| msg211824 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2014年02月21日 08:28 | |
New changeset 502c8b7e8ad2 by Victor Stinner in branch 'default': Issue #19748: On AIX, time.mktime() now raises an OverflowError for year http://hg.python.org/cpython/rev/502c8b7e8ad2 |
|||
| msg211825 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2014年02月21日 08:32 | |
> With the latest patch, test_time passes. Ok, thanks for your tests. But time.ctime() is still wrong. Can you please try the following examples with the latest Python version (502c8b7e8ad2) and then retry with pylocaltime_aix.patch? >>> time.ctime(-2**29) 'Sat Dec 27 06:11:28 1952' >>> time.ctime(2**29) 'Mon Jan 5 19:48:32 1987' I would like to know if pylocaltime_aix.patch is needed or not. |
|||
| msg211862 - (view) | Author: David Edelsohn (David.Edelsohn) * | Date: 2014年02月21日 14:47 | |
WITHOUT the patch to timemodule.c: >>> time.ctime(-2**29) 'Fri Dec 26 21:11:28 1952' >>> time.ctime(2**29) 'Mon Jan 5 10:48:32 1987' ERROR: test_mktime (test.test_time.TimeTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/dje/src/cpython/Lib/test/test_time.py", line 354, in test_mktime self.assertEqual(time.mktime(tt), t) OverflowError: mktime argument out of range |
|||
| msg211863 - (view) | Author: David Edelsohn (David.Edelsohn) * | Date: 2014年02月21日 14:51 | |
WITH the patch: >>> time.ctime(-2**29) Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: ctime() timestamp argument out of range >>> time.ctime(2**29) 'Mon Jan 5 10:48:32 1987' OK (skipped=8) 1 test OK. |
|||
| msg211866 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2014年02月21日 15:33 | |
""" WITHOUT the patch to timemodule.c: >>> time.ctime(-2**29) 'Fri Dec 26 21:11:28 1952' """ Oh, in this case, pylocaltime_aix.patch is wrong. There was a bug in mktime(), but ctime() works fine. """ File "/home/dje/src/cpython/Lib/test/test_time.py", line 354, in test_mktime self.assertEqual(time.mktime(tt), t) OverflowError: mktime argument out of range """ Oh, I don't understand this one. On Linux I get: >>> time.localtime(-2) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=59, tm_sec=58, tm_wday=3, tm_yday=1, tm_isdst=0) >>> time.localtime(-1) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=59, tm_sec=59, tm_wday=3, tm_yday=1, tm_isdst=0) >>> time.localtime(0) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=1, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0) >>> time.localtime(1) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=1, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0) And: >>> time.mktime(time.localtime(-2)) -2.0 >>> time.mktime(time.localtime(-1)) -1.0 >>> time.mktime(time.localtime(0)) 0.0 >>> time.mktime(time.localtime(1)) 1.0 |
|||
| msg211873 - (view) | Author: David Edelsohn (David.Edelsohn) * | Date: 2014年02月21日 18:32 | |
>>> time.localtime(-2) time.struct_time(tm_year=1969, tm_mon=12, tm_mday=31, tm_hour=15, tm_min=59, tm_sec=58, tm_wday=2, tm_yday=365, tm_isdst=0) >>> time.localtime(-1) time.struct_time(tm_year=1969, tm_mon=12, tm_mday=31, tm_hour=15, tm_min=59, tm_sec=59, tm_wday=2, tm_yday=365, tm_isdst=0) >>> time.localtime(0) time.struct_time(tm_year=1969, tm_mon=12, tm_mday=31, tm_hour=16, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=365, tm_isdst=0) >>> time.localtime(1) time.struct_time(tm_year=1969, tm_mon=12, tm_mday=31, tm_hour=16, tm_min=0, tm_sec=1, tm_wday=2, tm_yday=365, tm_isdst=0) >>> time.mktime(time.localtime(-2)) -2.0 >>> time.mktime(time.localtime(-1)) Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: mktime argument out of range >>> time.mktime(time.localtime(0)) 0.0 >>> time.mktime(time.localtime(1)) 1.0 |
|||
| msg211885 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2014年02月21日 22:54 | |
New changeset 00e94e454813 by Victor Stinner in branch 'default': Issue #11188, #19748: mktime() returns -1 on error. On Linux, the tm_wday field http://hg.python.org/cpython/rev/00e94e454813 |
|||
| msg211887 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2014年02月21日 22:57 | |
>>> time.mktime(time.localtime(-1)) Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: mktime argument out of range Oh yes, I now remember it. Sorry, it was 3 years ago: http://bugs.python.org/issue11188#msg128541 The problem is to detect invalid time tuple and support the timestamp value -1 (1 second before the UNIX epoch). I modified the test to skip mktime(localtime(-1)) test on AIX: changeset 00e94e454813. It would be nice to support this specific value, but I don't see how to implement it. It's maybe not possible. |
|||
| msg238419 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2015年03月18日 11:08 | |
I'm no more interested to work on this issue, I prefer to close it. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:54 | admin | set | github: 63947 |
| 2015年03月18日 11:08:59 | vstinner | set | status: open -> closed resolution: out of date messages: + msg238419 |
| 2014年02月21日 22:57:08 | vstinner | set | messages: + msg211887 |
| 2014年02月21日 22:54:58 | python-dev | set | messages: + msg211885 |
| 2014年02月21日 18:32:49 | David.Edelsohn | set | messages: + msg211873 |
| 2014年02月21日 15:33:40 | vstinner | set | messages: + msg211866 |
| 2014年02月21日 14:51:51 | David.Edelsohn | set | messages: + msg211863 |
| 2014年02月21日 14:47:02 | David.Edelsohn | set | messages: + msg211862 |
| 2014年02月21日 08:32:54 | vstinner | set | messages: + msg211825 |
| 2014年02月21日 08:28:11 | python-dev | set | nosy:
+ python-dev messages: + msg211824 |
| 2014年02月21日 03:12:34 | David.Edelsohn | set | messages: + msg211795 |
| 2014年02月20日 15:12:23 | vstinner | set | files:
+ mktime_aix.patch messages: + msg211728 |
| 2014年02月20日 14:57:34 | David.Edelsohn | set | messages: + msg211727 |
| 2014年02月19日 13:35:57 | vstinner | set | messages: + msg211616 |
| 2014年02月19日 01:50:46 | David.Edelsohn | set | messages: + msg211587 |
| 2014年02月18日 13:03:22 | serhiy.storchaka | set | nosy:
+ serhiy.storchaka messages: + msg211512 |
| 2014年02月18日 09:19:20 | vstinner | set | files:
+ pylocaltime_aix.patch keywords: + patch messages: + msg211500 |
| 2013年11月25日 17:00:20 | David.Edelsohn | set | messages: + msg204363 |
| 2013年11月24日 17:35:14 | vstinner | set | messages: + msg204238 |
| 2013年11月24日 12:45:07 | vstinner | set | messages: + msg204204 |
| 2013年11月24日 12:36:24 | vstinner | create | |