Fix infinite loop when INTERVAL=0 in recurrence rules#67
Open
anushka-codes1 wants to merge 2 commits intoplone:masterfrom
Open
Fix infinite loop when INTERVAL=0 in recurrence rules#67anushka-codes1 wants to merge 2 commits intoplone:masterfrom
anushka-codes1 wants to merge 2 commits intoplone:masterfrom
Conversation
Fixes plone#39 - Add server-side validation to reject RRULE strings with INTERVAL=0 or negative values - INTERVAL=0 is invalid per RFC 5545 and causes infinite loops in python-dateutil - Return HTTP 400 with translated 'no_repeat_every' error message - Prevents server hangs when users set repeat interval to 0 in the UI
|
@anushka-codes1 thanks for creating this Pull Request and helping to improve Plone! TL;DR: Finish pushing changes, pass all other checks, then paste a comment: To ensure that these changes do not break other parts of Plone, the Plone test suite matrix needs to pass, but it takes 30-60 min. Other CI checks are usually much faster and the Plone Jenkins resources are limited, so when done pushing changes and all other checks pass either start all Jenkins PR jobs yourself, or simply add the comment above in this PR to start all the jobs automatically. Happy hacking! |
- Fix import order (isort) - Add newline at end of news fragment file
Member
Author
|
@jenkins-plone-org please run jobs |
Member
Author
|
@erral Kindly check this PR. |
Member
|
This should be checked by @laulaz as he was who opened it on the first place. |
Member
Author
|
@laulaz Kindly check this PR. |
This file contains hidden or 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
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.
Fixes #39
Problem
Setting an interval ("repeat every") value of "0" in the recurrence popup causes an infinite loop in Python dateutil RRULE interpretation, hanging the server.
Root Cause
Solution
Added server-side validation in json_recurrence.py to:
Testing
Example
Before: FREQ=MONTHLY;INTERVAL=0;BYMONTHDAY=1;COUNT=7 → infinite loop
After: Same RRULE → HTTP 400 with translated error message
Files Changed