
This issue trackerhas been migrated toGitHub, and is currentlyread-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.
Created on2013-11-24 12:36 byvstinner, last changed2022-04-11 14:57 byadmin. This issue is nowclosed.
| 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)*![]() | 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)*![]() | 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)*![]() | 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)*![]() | 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)*![]() | Date: 2014-02-18 13:03 | |
Isn't this a duplicate ofissue11188? | |||
| 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+ PSTwhich 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)*![]() | 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)*![]() | 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 ofmsg211616? 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)![]() | Date: 2014-02-21 08:28 | |
New changeset502c8b7e8ad2 by Victor Stinner in branch 'default':Issue#19748: On AIX, time.mktime() now raises an OverflowError for yearhttp://hg.python.org/cpython/rev/502c8b7e8ad2 | |||
| msg211825 -(view) | Author: STINNER Victor (vstinner)*![]() | 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)*![]() | 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)![]() | Date: 2014-02-21 22:54 | |
New changeset00e94e454813 by Victor Stinner in branch 'default':Issue#11188,#19748: mktime() returns -1 on error. On Linux, the tm_wday fieldhttp://hg.python.org/cpython/rev/00e94e454813 | |||
| msg211887 -(view) | Author: STINNER Victor (vstinner)*![]() | 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 rangeOh yes, I now remember it. Sorry, it was 3 years ago:http://bugs.python.org/issue11188#msg128541The 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: changeset00e94e454813.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)*![]() | 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 | |