owncloud / core

:cloud: ownCloud web server core (Files, DAV, etc.)
https://owncloud.com
GNU Affero General Public License v3.0
8.37k stars 2.06k forks source link

Upgrading to 8.0.3 breaks caldav sync for calendars with non-standard timezone names #16413

Closed bascht closed 9 years ago

bascht commented 9 years ago

This look like a regression in ownCloud 8.0.3 (see #14176) since the mentioned calendar entries are older far older than my ownCloud update from 8.0.2. Since I created Calendar events with Evolution / GNOME Calendar I have some events that have timezones like:

--snip--
UID:2015-04-28T10:20:26+0200-13252-1000-3085-00000000@mybox
DTSTAMP:20150428T102050
SUMMARY:emacs Usergroup Berlin
DTSTART;TZID=/freeassociation.sourceforge.net/Tzfile/Europe/Berlin:20150429
 T193000
DTEND;TZID=/freeassociation.sourceforge.net/Tzfile/Europe/Berlin:20150429T2
 23000
CREATED:20150428T082050Z
LAST-MODIFIED:20150428T082050Z
END:VEVENT
END:VCALENDAR

Steps to reproduce

  1. Create Calendar event with Evolution
  2. Upgrade to ownCloud 8.0.3
  3. Sync Calendars e.g. via CalDAV for Android

    Expected behaviour

Calendar syncs to my phone.

Actual behaviour

Fatal PHP error, aborting the sync process.

Server configuration

Operating system: Ubuntu 12.04.5 LTS

Web server: Apache 2.4.12

Database: MariaDB 5.5.43

PHP version: 5.5.24

ownCloud version: 8.0.3

Updated from an older ownCloud or fresh install: Update from 8.0.2

List of activated apps: Activities, Calendar, Contacts, Files - the usual. ;)

The content of config/config.php:

<?php
$CONFIG = array (
  'instanceid' => '[…]',
  'passwordsalt' => '[…]',
  'datadirectory' => '/var/www/owncloud/data',
  'dbtype' => 'mysql',
  'dbname' => 'owncloud',
  'dbuser' => '[…]',
  'dbpassword' => '[…]',
  'dbhost' => '127.0.0.1',
  'dbtableprefix' => 'oc_',
  'version' => '8.0.3.4',
  'installed' => true,
  'maintenance' => false,
  'theme' => '',
  'maxZipInputSize' => 838860800,
  'allowZipDownload' => true,
  'loglevel' => 3,
  'check_for_working_webdav' => false,
  'overwritehost' => '[…]',
  'overwriteprotocol' => 'https',
  'overwrite.cli.url' => '/owncloud',
  'trusted_domains' => 
  array (
    0 => '[…]',
  ),
  'secret' => '[…]',
);

Are you using external storage, if yes which one: no

Are you using encryption: no

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

ownCloud log (data/owncloud.log)

{"reqId":"58503526f6ac2230eb397dbc277e5c7a","remoteAddr":"[…]","app":"remote","message":"Invalid VObject. Document ended prematurely.","level":4,"time":"2015-05-18T12:35:11+00:00"}
{"reqId":"58503526f6ac2230eb397dbc277e5c7a","remoteAddr":"[…]","app":"PHP","message":"DateTimeZone::__construct(): Unknown or bad timezone (\/freeassociation.sourceforge.net\/Tzfile\/Europe\/Berlin) at \/var\/www\/owncloud\/3rdparty\/sabre\/vobject\/lib\/Sabre\/VObject\/TimeZoneUtil.php#412","level":3,"time":"2015-05-18T12:35:11+00:00"}
{"reqId":"c6ab1728545daf9d3d3937feb1f24fd4","remoteAddr":"[…]","app":"remote","message":"Invalid VObject. Document ended prematurely.","level":4,"time":"2015-05-18T12:35:18+00:00"}
{"reqId":"f243f115281c176ced362526cee6ea81","remoteAddr":"[…]","app":"remote","message":"Invalid VObject. Document ended prematurely.","level":4,"time":"2015-05-18T12:35:19+00:00"}
{"reqId":"4c1f6c133502ef82218a5e45c91cdfd1","remoteAddr":"[…]","app":"remote","message":"Invalid VObject. Document ended prematurely.","level":4,"time":"2015-05-18T12:35:19+00:00"}
{"reqId":"629ef4161cd8da5fc7ab97be92f43b61","remoteAddr":"[…]","app":"remote","message":"Invalid VObject. Document ended prematurely.","level":4,"time":"2015-05-18T12:35:19+00:00"}
{"reqId":"0d2af3a7c94175e01ef7f69e8fe69188","remoteAddr":"[…]","app":"remote","message":"Invalid VObject. Document ended prematurely.","level":4,"time":"2015-05-18T12:37:40+00:00"}
{"reqId":"0d2af3a7c94175e01ef7f69e8fe69188","remoteAddr":"[…]","app":"PHP","message":"DateTimeZone::__construct(): Unknown or bad timezone (\/freeassociation.sourceforge.net\/Tzfile\/Europe\/Berlin) at \/var\/www\/owncloud\/3rdparty\/sabre\/vobject\/lib\/Sabre\/VObject\/TimeZoneUtil.php#412","level":3,"time":"2015-05-18T12:37:40+00:00"}
{"reqId":"d680101e676feb9421acf12d7cbac112","remoteAddr":"[…]","app":"remote","message":"Invalid VObject. Document ended prematurely.","level":4,"time":"2015-05-18T12:40:46+00:00"}
{"reqId":"d680101e676feb9421acf12d7cbac112","remoteAddr":"[…]","app":"PHP","message":"DateTimeZone::__construct(): Unknown or bad timezone (\/freeassociation.sourceforge.net\/Tzfile\/Europe\/Berlin) at \/var\/www\/owncloud\/3rdparty\/sabre\/vobject\/lib\/Sabre\/VObject\/TimeZoneUtil.php#412","level":3,"time":"2015-05-18T12:40:46+00:00"}
MorrisJobke commented 9 years ago

ref #4428 fruux/sabre-vobject#92 fruux/sabre-vobject#116

MorrisJobke commented 9 years ago

cc @nickvergessen

evert commented 9 years ago

Just to reiterate what's in that vobject bug.

  1. This is a PHP bug
  2. The only problem this actually causes, is that it fills up your log with errors
  3. There's no other negative side effects.

So the problem might have something to do with:

{"reqId":"629ef4161cd8da5fc7ab97be92f43b61","remoteAddr":"[…]","app":"remote","message":"Invalid VObject. Document ended prematurely.","level":4,"time":"2015-05-18T12:35:19+00:00"}

But not:

{"reqId":"58503526f6ac2230eb397dbc277e5c7a","remoteAddr":"[…]","app":"PHP","message":"DateTimeZone::__construct(): Unknown or bad timezone (\/freeassociation.sourceforge.net\/Tzfile\/Europe\/Berlin) at \/var\/www\/owncloud\/3rdparty\/sabre\/vobject\/lib\/Sabre\/VObject\/TimeZoneUtil.php#412","level":3,"time":"2015-05-18T12:35:11+00:00"}
nickvergessen commented 9 years ago

So nothing we can do? Should close this then

bascht commented 9 years ago

@nickvergessen It was triggered by updating from 8.0.2 to 8.0.3 – this doesn't look like something that should break in a minor update, no?

evert commented 9 years ago

No all I'm saying is that somebody reported a bug, and that the log entry related to the timezone is (about the timezone) an unrelated issue. You should still try to find out what's actually wrong. Invalid VObject. Document ended prematurely. sounds pretty bad and could be related to what the user is experiencing.

I have no idea what could cause that particular exception though.

nickvergessen commented 9 years ago

Well it is not a regression from #14176

And the Invalid VObject stuff is mostlikely from the calendar apps and not from core. But for further judgement someone with knowledge about the calendar app and sabredav should have a look at that.

nickvergessen commented 9 years ago

I'd suggest to create an issue over at https://github.com/owncloud/calendar

bascht commented 9 years ago

Alright – I'll copy everything over to that repo then. :) If I find some time tonight, I might create a Debug log. Thanks for the analysis! :+1: