-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix OverflowError with 32-bit (signed) time_t #4873
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
psf-chronographer
bot
added
the
bot:chronographer:provided
There is a change note present in this PR
label
Jul 20, 2020
Fix the package to work on 32-bit platforms (i386, arm) that use 32-bit signed time_t. This means changing TestCookieJarSafe.test_expires() to use an earlier arbitrary date, and adjusting CookieJar to use MAX_TIME that fits in time_t. For the latter purpose, we try to convert datetime.max into timestamp and if it fails, we make date from a timestamp matching max unsigned int32. This is far from perfect but apparently there's no trivial way of getting max time_t value from inside Python, and it should cover all the common platforms. Fixes #4515
Codecov Report
@@ Coverage Diff @@
## master #4873 +/- ##
==========================================
+ Coverage 97.58% 97.59% +0.01%
==========================================
Files 43 43
Lines 8932 8938 +6
Branches 1406 1406
==========================================
+ Hits 8716 8723 +7
Misses 96 96
+ Partials 120 119 -1
Continue to review full report at Codecov.
|
asvetlov
approved these changes
Oct 16, 2020
Thanks! |
💔 Backport was not successfulThe PR was attempted backported to the following branches:
|
asvetlov
added a commit
that referenced
this pull request
Oct 16, 2020
Fix the package to work on 32-bit platforms (i386, arm) that use 32-bit signed time_t. This means changing TestCookieJarSafe.test_expires() to use an earlier arbitrary date, and adjusting CookieJar to use MAX_TIME that fits in time_t. For the latter purpose, we try to convert datetime.max into timestamp and if it fails, we make date from a timestamp matching max unsigned int32. This is far from perfect but apparently there's no trivial way of getting max time_t value from inside Python, and it should cover all the common platforms. Fixes #4515 Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
asvetlov
added a commit
that referenced
this pull request
Oct 16, 2020
Fix the package to work on 32-bit platforms (i386, arm) that use 32-bit signed time_t. This means changing TestCookieJarSafe.test_expires() to use an earlier arbitrary date, and adjusting CookieJar to use MAX_TIME that fits in time_t. For the latter purpose, we try to convert datetime.max into timestamp and if it fails, we make date from a timestamp matching max unsigned int32. This is far from perfect but apparently there's no trivial way of getting max time_t value from inside Python, and it should cover all the common platforms. Fixes #4515 Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix the package to work on 32-bit platforms (i386, arm) that use 32-bit
signed time_t. This means changing TestCookieJarSafe.test_expires() to
use an earlier arbitrary date, and adjusting CookieJar to use MAX_TIME
that fits in time_t.
For the latter purpose, we try to convert datetime.max into timestamp
and if it fails, we make date from a timestamp matching max unsigned
int32. This is far from perfect but apparently there's no trivial way
of getting max time_t value from inside Python, and it should cover all
the common platforms.
Fixes #4515
What do these changes do?
Are there changes in behavior for the user?
Related issue number
Checklist
CONTRIBUTORS.txt
CHANGES
folder<issue_id>.<type>
for example (588.bugfix)issue_id
change it to the pr id after creating the pr.feature
: Signifying a new feature..bugfix
: Signifying a bug fix..doc
: Signifying a documentation improvement..removal
: Signifying a deprecation or removal of public API..misc
: A ticket has been closed, but it is not of interest to users.