6.0.0-git
2019-09-15

[#14752] Recurring events can be created with broken recurrence end dates
Summary Recurring events can be created with broken recurrence end dates
Queue Kronolith
Queue Version FRAMEWORK_5_2
Type Bug
State Resolved
Priority 2. Medium
Owners mrubinsk (at) horde (dot) org
Requester wahnes (at) uni-koeln (dot) de
Created 2017-12-14 (640 days ago)
Due
Updated 2018-02-21 (571 days ago)
Assigned
Resolved 2018-02-21 (571 days ago)
Milestone
Patch No

History
2018-02-21 19:41:40 Michael Rubinsky State ⇒ Resolved
 
2018-02-21 19:41:30 Git Commit Comment #6 Reply to this comment
Changes have been made in Git (master):

commit 1c0f8f1064e6787c1cf827b90e73b75798b455b8
Author: Michael J Rubinsky <mrubinsk@horde.org>
Date:   Wed, 21 Feb 2018 14:39:15 -0500

[mjr] Prevent creation of corrupt recurrence end dates (Bug #14752).

  M doc/CHANGES
  M package.xml

https://github.com/horde/kronolith/commit/1c0f8f1064e6787c1cf827b90e73b75798b455b8
2018-02-21 19:41:29 Git Commit Comment #5 Reply to this comment
Changes have been made in Git (master):

commit f115c47c94ea7af56b65ae25baf223702de45b60
Author: Michael J Rubinsky <mrubinsk@horde.org>
Date:   Wed, 21 Feb 2018 14:39:15 -0500

[mjr] Prevent creation of corrupt recurrence end dates (Bug #14752).

  M doc/changelog.yml

https://github.com/horde/kronolith/commit/f115c47c94ea7af56b65ae25baf223702de45b60
2018-02-21 19:41:28 Git Commit Comment #4 Reply to this comment
Changes have been made in Git (master):

commit 7ec2375d655e451c1f9bdf7244a669482e4e3f72
Author: Michael J Rubinsky <mrubinsk@horde.org>
Date:   Wed, 21 Feb 2018 14:33:57 -0500

Bug: 14752 Catch empty recur_end values when they are expected.

  M lib/Event.php

https://github.com/horde/kronolith/commit/7ec2375d655e451c1f9bdf7244a669482e4e3f72
2018-02-21 19:40:18 Git Commit Comment #3 Reply to this comment
Changes have been made in Git (FRAMEWORK_5_2):

commit e6ea61127d1717e701aabf3f9d3f8713cbe3db2b
Author: Michael J Rubinsky <mrubinsk@horde.org>
Date:   Wed, 21 Feb 2018 14:39:41 -0500

[mjr] Prevent creation of corrupt recurrence end dates (Bug #14752).

  M docs/changelog.yml

https://github.com/horde/kronolith/commit/e6ea61127d1717e701aabf3f9d3f8713cbe3db2b
2018-02-21 19:40:17 Git Commit Comment #2 Reply to this comment
Changes have been made in Git (FRAMEWORK_5_2):

commit b56267eb6e7b75964014769426fed129bc71357e
Author: Michael J Rubinsky <mrubinsk@horde.org>
Date:   Wed, 21 Feb 2018 14:34:31 -0500

Bug: 14752 Catch empty recur_end values when they are expected.

  M lib/Event.php

https://github.com/horde/kronolith/commit/b56267eb6e7b75964014769426fed129bc71357e
2017-12-24 04:59:22 Michael Rubinsky Assigned to Michael Rubinsky
 
2017-12-14 15:47:00 wahnes (at) uni-koeln (dot) de Comment #1
Type ⇒ Bug
State ⇒ Unconfirmed
Priority ⇒ 2. Medium
Summary ⇒ Recurring events can be created with broken recurrence end dates
Queue ⇒ Kronolith
Milestone ⇒
Patch ⇒ No
New Attachment: kronolith-problem-recurring-event-with-no-end-date.png Download
Reply to this comment
When creating a recurring event, e.g. one that is repeated every day, 
an erroneous record of that event is saved to the database if one 
clicks the "Stop at" radio button, does not enter any date but clicks 
on "Save". Upon clicking the Save button, an endless spinner appears. 
The same happens if one reloads the calendar page and tries to open 
the event in order to delete it. The erroneous event can only be 
corrected by editing it directly in the database.

Attached is a screenshot of an example event that causes this problem.
The data given there would be saved to the database as follows:

mysql> select * from kronolith_events where event_title='Go for a hike' \G
*************************** 1. row ***************************
                    event_id: RFyNlomOsDS3mAHc8CQ75Or
                   event_uid: 
20171214151839.j3DC241MiJzgf5Ma60GXF1J@foo.example.org
                 calendar_id: mmuster2
            event_creator_id: mmuster2
           event_description: asdf
              event_location: Somewhere over the rainbow
                event_status: 2
             event_attendees: a:0:{}
              event_keywords: NULL
            event_exceptions:
                 event_title: Go for a hike
             event_recurtype: 1
         event_recurinterval: 1
             event_recurdays: NULL
          event_recurenddate: 0000-00-00 00:00:00
            event_recurcount: NULL
                 event_start: 2018-02-14 00:00:00
                   event_end: 2018-02-22 00:00:00
                 event_alarm: 0
              event_modified: 1513261119
               event_private: 0
                event_allday: 1
         event_alarm_methods: a:0:{}
                   event_url:
                event_baseid:
event_exceptionoriginaldate: NULL
             event_resources: a:0:{}
              event_timezone:

Please note how the "event_recurenddate" column contains an invalid 
date, i.e. the date (if you consider "0000-00-00" to be a date) would 
be way before the event_start date.

Under some circumstances (I could not find out what those are exactly) 
a calendar with these kind of broken events also causes the CalDAV 
sync to fail. The CalDAV client would receive a HTTP "200" response 
instead of a normal "207" response (which would then contain 
individual "200" responses within the XML code in the response body, 
but not in the HTTP header).

Saved Queries