After update from 11 to 12 (and now stll from 13.0.5 to 13.0.6) : Calendar loading infinitly (and php-fpm 100% CPU usage)

Thanks @Hollerauer. I’m curious if the Debian constellation might be the little troublemaker.

Original issue was closed because I posted it in the wrong repository. Sry

New Issue:

Thank you @Hollerauer

Something’s in the bushes…

After updating 11.0.3 to 12.0.1RC4 the problem still exists. On https://github.com/fruux/sabre-vobject/pull/383 apearently the issue has been resolved, but I guess it’ll take some time to get this update, won’t it?

Here is the solution for this issue posted on github

1 Like

Just for confirmation - the fix works.

Backup the file first and apply the fix :
/var/www/your_ncpath/3rdparty/sabre/vobject/lib/Recur/RRuleIterator.php

Replace:

$date->setDate($currentYear, 1, 1);
with
$date = $date->setDate($currentYear, 1, 1);

$date->add(new \DateInterval(‘P’ . $byYearDay . ‘D’));
with
$date = $date->add(new \DateInterval(‘P’ . $byYearDay . ‘D’));

$date->sub(new \DateInterval(‘P’ . abs($byYearDay) . ‘D’));
with
$date = $date->sub(new \DateInterval(‘P’ . abs($byYearDay) . ‘D’));

Or ‘sed’ on it, I was afraid about not ESCaping right :wink:

@MikeLupe please mark as solved

I can see 12.0.1RC5 has integrated the 2nd and 3rd replaces into /3rdparty/sabre/vobject/lib/Recur/RRuleIterator.php

But the first one is missing, that’s enough for again getting the 100% php-fpm cpu load with non-loading calendar:

$date->setDate($currentYear, 1, 1);
should be
$date = $date->setDate($currentYear, 1, 1);

After replacing this line, calendar loads normally again.

This unfortunately still is the case with 12.0.3 final. I had again to replace the first mentioned entry manually. Could we integrate the latest sabre update, or what would be the proceeding?

Hi, is there any solutiono to this, yet? It appears I am running into the same issue.

Have you tried the workaround?

I can see 12.0.1RC5 has integrated the 2nd and 3rd replaces into /3rdparty/sabre/vobject/lib/Recur/RRuleIterator.php

But the first one is missing, that’s enough for again getting the 100% php-fpm cpu load with non-loading calendar:

$date->setDate($currentYear, 1, 1);
should be
$date = $date->setDate($currentYear, 1, 1);

After replacing this line, calendar loads normally again.
1 Like

Not yet, I had hoped to be able to get away without patching the code, given how old this issue is. But if there is still no fix for this in 12.0.3, I’ll try going down this route, yes…

Thanks!

Edit: Yep, works! Would be great if this missing piece would also be included into Nextcloud! I bet I’ll forget about the solution when I next update Nextcloud again… :grinning:

Yeah, I know - I always come back to this thread to remember what to adapt after an update :wink:

Well - I had to come back to this thread after updating from 12.0.3 to 12.0.4 …

Replace in /3rdparty/sabre/vobject/lib/Recur/RRuleIterator.php :

$date->setDate($currentYear, 1, 1);
with
$date = $date->setDate($currentYear, 1, 1);

And calendar works again.

Isn’t it possible to push the workaround to a NC release?

Yes, I know “body is too similar with a text body from a recent message” - it’s because I have the same procedure as with every update…now 12.0.4 to 12.0.5. Calendar broken , the fix above doesn’t even work anymore.

Does someone have the time to take care of that problem?

Thanks

A little update of the lines to change with this problem. In a previous post I pasted some wrong quoting characters, sry. Here’s the correction.

Edit/Note: - unfortunatley it’s Discourse changing the simple quotes to wrong ones. Please take care of using the right quotes, I don’t know how to tag the right inhere, sorry.

Make sure these settings are replaced in:

vi /var/www/[yourNCdirectory]/3rdparty/sabre/vobject/lib/Recur/RRuleIterator.php

Replace:

$date->setDate($currentYear, 1, 1);
with
$date = $date->setDate($currentYear, 1, 1);

$date->add(new \DateInterval(‘P’ . $byYearDay . ‘D’));
with
$date = $date->add(new \DateInterval(‘P’ . $byYearDay . ‘D’));

$date->sub(new \DateInterval(‘P’ . abs($byYearDay) . ‘D’));
with
$date = $date->sub(new \DateInterval(‘P’ . abs($byYearDay) . ‘D’));

Now, after applying the still needed manual workaround, I additionally get moarning from the NC code integrity check, c’mon :wink:

Technical information

=====================
The following list covers which files have failed the integrity check. Please read
the previous linked documentation to learn more about the errors and how to fix
them.

Results

  • core
    • INVALID_HASH
      • 3rdparty/sabre/vobject/lib/Recur/RRuleIterator.php

Raw output

Array
(
[core] => Array
(
[INVALID_HASH] => Array
(
[3rdparty/sabre/vobject/lib/Recur/RRuleIterator.php] => Array
(
[expected] => …

Can we hopefully find a solution on this one?

Anyone, anyone - Mr Bueller?

No seriously now, are there any news about this issue? Thanks.

Unfortunately exactly the same after update 13.0.5 to 13.0.6.