polls icon indicating copy to clipboard operation
polls copied to clipboard

Shows a conflict that does not exist

Open Tealk opened this issue 3 years ago • 11 comments

What is going wrong? What did you observe?

Describe the bug

A poll I created shows a calendar conflict that does not exist. The conflicts that are displayed there seem to be repeating events that have already been deleted, they are also not visible in the recycle bin.

Steps to reproduce the behavior

  1. create survey
  2. enter dates
  3. get conflicts displayed

Add a screenshot of the misbehavior image image

How should it work?

What you expected to happen?

That conflicts are only displayed when they really exist.

Information about your polls installation

Polls version: 3.7.0

Fresh installation or update from a prior version (from which one)?

  • [ ] First time install
  • [x] Update from a prior version Version number of the previous version: Unknown - many

How did you install this version?(Appstore or describe installation)

  • [x] Installed from the appstore
  • [ ] Installed via occ
  • [ ] Installed via extracting downloaded package to the apps folder

Information about your Instance of Nextcloud

Nextcloud version: (see Nextcloud admin page)

List of activated apps
Enabled:
  - accessibility: 1.10.0
  - activity: 2.16.0
  - admin_audit: 1.14.0
  - appointments: 1.12.7
  - apporder: 0.15.0
  - approval: 1.0.10
  - breezedark: 24.0.2
  - calendar: 3.4.2
  - circles: 24.0.0
  - cloud_federation_api: 1.7.0
  - collectives: 1.3.0
  - comments: 1.14.0
  - contacts: 4.2.0
  - dashboard: 7.4.0
  - dav: 1.22.0
  - deck: 1.7.1
  - drawio: 1.0.3
  - drop_account: 2.0.0
  - event_update_notification: 1.5.0
  - federatedfilesharing: 1.14.0
  - federation: 1.14.0
  - files: 1.19.0
  - files_downloadactivity: 1.13.0
  - files_linkeditor: 1.1.11
  - files_lock: 24.0.1
  - files_markdown: 2.3.6
  - files_pdfviewer: 2.5.0
  - files_rightclick: 1.3.0
  - files_sharing: 1.16.2
  - files_trashbin: 1.14.0
  - files_versions: 1.17.0
  - files_videoplayer: 1.13.0
  - fileslibreofficeedit: 1.0.4
  - firstrunwizard: 2.13.0
  - forms: 2.5.1
  - gpoddersync: 3.4.0
  - groupfolders: 12.0.1
  - guests: 2.2.0
  - jitsi: 0.15.0
  - logreader: 2.9.0
  - lookup_server_connector: 1.12.0
  - mail: 1.13.7
  - maps: 0.1.10
  - metadata: 0.16.0
  - nextcloud_announcements: 1.13.0
  - notes: 4.4.0
  - notifications: 2.12.0
  - notify_push: 0.4.0
  - oauth2: 1.12.0
  - password_policy: 1.14.0
  - passwords: 2022.6.20
  - photos: 1.6.0
  - polls: 3.7.0
  - privacy: 1.8.0
  - provisioning_api: 1.14.0
  - quota_warning: 1.14.0
  - registration: 1.5.0
  - richdocuments: 6.1.1
  - serverinfo: 1.14.0
  - settings: 1.6.0
  - sharebymail: 1.14.0
  - side_menu: 2.4.2
  - socialsharing_email: 2.5.0
  - spreed: 14.0.3
  - survey_client: 1.12.0
  - systemtags: 1.14.0
  - tasks: 0.14.4
  - text: 3.5.1
  - theming: 1.15.0
  - theming_customcss: 1.11.0
  - twofactor_backupcodes: 1.13.0
  - twofactor_email: 2.5.0
  - twofactor_nextcloud_notification: 3.4.0
  - twofactor_totp: 6.4.0
  - twofactor_webauthn: 0.3.1
  - updatenotification: 1.14.0
  - uppush: 1.0.7
  - user_migration: 1.1.0
  - user_retention: 1.7.0
  - user_status: 1.4.0
  - viewer: 1.8.0
  - workflowengine: 2.6.0
Disabled:
  - analytics: 2.3.1
  - contactsinteraction: 1.3.0
  - encryption
  - files_external
  - files_texteditor: 2.14.0
  - gpgmailer: 0.0.4
  - imageconverter: 1.3.2
  - recommendations: 1.3.0
  - support: 1.5.0
  - user_ldap
  - weather_status: 1.0.0
Nextcloud Configuration
{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "rollenspiel.cloud",
            "192.268.100.11",
            "localhost"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "overwrite.cli.url": "https:\/\/rollenspiel.cloud",
        "overwriteprotocol": "https",
        "htaccess.RewriteBase": "\/",
        "dbtype": "mysql",
        "version": "24.0.3.2",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "mysql.utf8mb4": true,
        "installed": true,
        "maintenance": false,
        "default_language": "de",
        "default_locale": "de",
        "default_phone_region": "DE",
        "allow_user_to_change_display_name": true,
        "knowledgebaseenabled": true,
        "theme": "",
        "defaultapp": "apporder",
        "skeletondirectory": "\/mnt\/hdd\/skeleton",
        "trashbin_retention_obligation": "120, auto",
        "versions_retention_obligation": "120, auto",
        "appcodechecker": true,
        "updatechecker": true,
        "updater.release.channel": "stable",
        "check_for_working_webdav": true,
        "loglevel": 2,
        "logdateformat": "d.m.Y H:i:s",
        "logtimezone": "Europe\/Berlin",
        "log_rotate_size": 10485760,
        "mail_smtpmode": "smtp",
        "mail_smtpauthtype": "PLAIN",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpsecure": "ssl",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "465",
        "mail_smtpauth": 1,
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "enable_previews": true,
        "preview_max_x": 2048,
        "preview_max_y": 2048,
        "preview_max_filesize_image": 50,
        "preview_max_scale_factor": 10,
        "data-fingerprint": "d76fcffe3970dd2910ea5d733e3ed673",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "memcache.distributed": "\\OC\\Memcache\\APCu",
        "memcache.locking": "\\OC\\Memcache\\APCu",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "port": 6379,
            "dbindex": 1,
            "timeout": 1.5
        },
        "filelocking.enabled": "true",
        "twofactor_enforced": false,
        "twofactor_enforced_groups": [
            "admin"
        ],
        "twofactor_enforced_excluded_groups": [],
        "mail_sendmailmode": "smtp",
        "migrate_guest_user_data": true,
        "remove_guest_account_on_conversion": true,
        "keep_users_without_login": "no",
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "app_install_overwrite": [
            "uppush"
        ]
    }
}

Server configuration (decide, if you think it is helpful)

Database:

  • [ ] MySql version:
  • [x] MariaDB version: 10.5.15
  • [ ] PostgreSQL version:
  • [ ] Oracle version:
  • [ ] SQLite:
  • [ ] Other (add name and version):

PHP version:

  • [ ] 7.3 or lower
  • [ ] 7.4
  • [ ] 8.0
  • [x] 8.1

Are you using an external user-backend, if yes which one: no

Client configuration

Device:

  • [x] PC
  • [ ] Mac
  • [x] Mobile phone
  • [x] Tablet

Browser:

  • [x] Firefox version: 103.0.1
  • [ ] Chrome version:
  • [ ] Safari version:
  • [ ] Other (add name and version):

Logs

no logs for this problem

Tealk avatar Aug 02 '22 08:08 Tealk

#1531 seems to be related. But i am wondering about the fact, that NC seems to return deleted calendar entries.

What I understood is:

  • The conflicting event is deleted from all calendars
  • The event (or both) were recurring events

Questions:

  • What was the initial date of the calendar entry?
  • If the event were not deleted, are the captured times correct?
  • How many recurrences did the event have?
  • Have any recurrences been edited? Are you able to deliver these informations?

I would like to reproduce it, to be able to analyse.

dartcafe avatar Aug 03 '22 21:08 dartcafe

  • What was the initial date of the calendar entry?

23.04.2022

* If the event were not deleted, are the captured times correct?

Yes the event would actually have been on that date and time.

* How many recurrences did the event have?

unlimited

* Have any recurrences been edited?

yes it happens often that I delete individual repetitions because the appointment is canceled for example

Tealk avatar Aug 03 '22 21:08 Tealk

In case it still helps, the dates were deleted before the poll was created

Tealk avatar Aug 04 '22 05:08 Tealk

Does the initial event still exist? You did only delete the particular ocurrence?

dartcafe avatar Aug 04 '22 06:08 dartcafe

Does the initial event still exist? You did only delete the particular recurrence?

to both yes It is a 2 weekly meeting that has been around for some time. If the meeting is canceled, I just delete the corresponding date.

Tealk avatar Aug 04 '22 08:08 Tealk

I tried to reproduce that with a weekly event. But the conflict disappers after deletion of this occurrence. Did you delete it via the web frontend or did you use a client?

dartcafe avatar Aug 04 '22 20:08 dartcafe

A client Android Simple Calendar Linux Gnome Calendar - I rarely edit anything there, mostly I just look at it

Tealk avatar Aug 04 '22 20:08 Tealk

So I have now noticed that the appointments are also displayed in my Gnome calendar. But in other calendars: Android SimpleCalendar or Thunderbird I do not see the events.

Is there a possibility that the dates are still in the database but not displayed on the web?

Tealk avatar Aug 11 '22 17:08 Tealk

Normally the recurrence rule is stored as an RRULE, rather than duplicating the events. Deleted events are stored as an exception from the rule. So you will always find the event in the database.

You can see the CalDav response in the network tab of the delveloper tools of your browser, when you open th calendar app. Endpoint: /remote.php/dav/calendars/[userName]/[calendarName]/

Then you will find something like this:

BEGIN:VEVENT
CREATED:20220804T203102Z
LAST-MODIFIED:20220812T051810Z
DTSTAMP:20220812T051810Z
UID:a75377a6-b247-3348-acdf-b7c34e7f007f
SUMMARY:deleted??
STATUS:CONFIRMED
RELATED-TO;RELTYPE=SIBLING:63489a19-17fe-8dc3-52d1-526d7bfaa755
RRULE:FREQ=WEEKLY;BYDAY=TU
EXDATE;TZID=Europe/Berlin:20210629T100000
EXDATE;TZID=Europe/Berlin:20220208T100000
DTSTART;TZID=Europe/Berlin:20210629T100000
DTEND;TZID=Europe/Berlin:20210629T110000
SEQUENCE:2
X-MOZ-GENERATION:1
END:VEVENT

The RRULE defines the recurrence rule and the following EXDATE entries define the exceptions. Here the event is set to every Tuesday from 2021-06-29 on, except

  • 2022-06-29
  • 2022-02-08

Possibly in your case the exceptions are defined in another way.

Anyways. I fear I cannot do anything inside polls, because the recurrences are calculated by an external lib and the calendar entries are fetched from NC.

dartcafe avatar Aug 12 '22 07:08 dartcafe

Normally the recurrence rule is stored as an RRULE, rather than duplicating the events. Deleted events are stored as an exception from the rule. So you will always find the event in the database.

and what happens when individual dates are deleted from the series?

Tealk avatar Aug 12 '22 07:08 Tealk

The are added as an exception.

Deleted events are stored as an exception from the rule. So you will always find the event in the database.

dartcafe avatar Aug 12 '22 18:08 dartcafe