Bug 1883619

Summary: ECalendarItem: Settings loaded only when being shown
Product: Red Hat Enterprise Linux 8 Reporter: Paulo Andrade <pandrade>
Component: evolutionAssignee: Milan Crha <mcrha>
Status: CLOSED ERRATA QA Contact: Desktop QE <desktop-qa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.2CC: modehnal, tpelka
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: 8.0   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: evolution-3.28.5-15.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-05-18 15:19:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Paulo Andrade 2020-09-29 17:51:37 UTC
Steps to reproduce:

1. Start evolution
2. View -> Layout -> Uncheck "Show Side Bar"
3. View -> Window -> Choose "Calendar"
4. Edit -> Preferences -> General -> Week starts on: select Saturday
5. Create one appointment per day until filling the current week
6. Close the evolution window
7. Start evolution
8. Scroll calendar to not have the current day visible
9. Press Ctrl-T

It will enter a 100% cpu usage loop. Looping apparently on a very
deep call trace on gtk_css_node_ensure_style.
Attempted a gtk3 build with https://github.com/GNOME/gtk/commit/fc823eb61002d1350305cba6ec718a7c4f6c05e1
but it still consumes 100% cpu, just that does not create very deep
stack traces on gtk_css_node_ensure_style.

Comment 1 Paulo Andrade 2020-09-29 17:54:19 UTC
Ops, on step 4 should also select Saturday and Sunday as work days.

Comment 3 Milan Crha 2020-09-30 11:51:53 UTC
Thanks for a bug report. I can reproduce it too, but only in the Month View. Other views do not trigger the gtk+ bug (I suppose so, because the backtrace shows a long recursive call of gtk_css_node_ensure_style() function (more than 1000 of those on the stack). After some investigation, the gtk+ function call is only a side effect of a disagreement between the mini-calendar inner state and the actual settings, causing immediate change of the selected month due to "rounding" to correct time. Once this is fixed it all behaves as it should.

Comment 4 Milan Crha 2020-09-30 11:59:53 UTC
I fixed this upstream [1] for 3.39.1+ and 3.38.1+.

[1] https://gitlab.gnome.org/GNOME/evolution/commit/8a442bd07b

Comment 5 Milan Crha 2020-09-30 13:20:34 UTC
As a workaround, let the side bar shown at least once (press F9 twice). That's enough to make it work as expected.

Comment 9 Michal Odehnal 2020-10-19 09:43:59 UTC
Unable to reproduce with evolution-3.28.5-15.el8.x86_64. Switching to VERIFIED.

Comment 11 errata-xmlrpc 2021-05-18 15:19:09 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Low: evolution security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:1752