Bug 45353 - (4.1R2) Unstable jenkins tests due to too agressive caching
(4.1R2) Unstable jenkins tests due to too agressive caching
Status: CLOSED FIXED
Product: UCS@school
Classification: Unclassified
Component: Proxy services
UCS@school 4.2
Other Linux
: P5 normal (vote)
: UCS@school 4.1 R2 v14
Assigned To: Sönke Schwardt-Krummrich
Florian Best
:
Depends on: 45352
Blocks:
  Show dependency treegraph
 
Reported: 2017-09-08 11:42 CEST by Sönke Schwardt-Krummrich
Modified: 2017-10-16 21:33 CEST (History)
0 users

See Also:
What kind of report is it?: Development Internal
What type of bug is this?: 4: Minor Usability: Impairs usability in secondary scenarios
Who will be affected by this bug?: 1: Will affect a very few installed domains
How will those affected feel about the bug?: 3: A User would likely not purchase the product
User Pain: 0.069
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sönke Schwardt-Krummrich univentionstaff 2017-09-08 11:42:11 CEST
This has to be backported to 4.1R2, too.

+++ This bug was initially created as a clone of Bug #45352 +++

Starting with bug #41749 the listener module pupilgroups.py only reacts on user groups for which the local system is responsible for. The list of responsible OUs is determined in prerun().

At least in conjunction with jenkins tests, this is problematic, since the list of local schools is determined via prerun() function before the Verwaltungsnetz group for the new OU is altered and the local system gains access to the new OU.
The list of local schools is updated again, if there is at least 15 seconds no change and the postrun() has been called by the listener.

+++ This bug was initially created as a clone of Bug #41749 +++

During reload of squid, the system load is already quite high (see also bug 41361). Since UCS@school 4.1R2 the main groups of all schools ("schueler-$OU", "lehrer-$OU" and "Domain User $OU") are also replicated to each school server.
The listener module pupilgroups.py syncs these large groups also to local UCR (for squidguard) and and indirectly triggers a reload of squid.

The listener module should only sync groups for schools, the school server is responsible for (→ school server is member of "OU${OU}-DC-Edukativnetz").
Comment 1 Sönke Schwardt-Krummrich univentionstaff 2017-09-14 14:31:39 CEST
pupilgroups.py now updates the list of available local schools every time when
a) the prerun() function is called or
b) a group with the suffix "-Edukativnetz,cn=ucsschool,cn=groups,$ldap_base" is 
   handled by the listener module.

This way the list of school groups is always up to date and LDAP lookups are minimized to the required amount.

ucs-school-webproxy (12.0.5-1):
9c74ef6e5f0d | Bug #45353: add changelog entry
9f07ce12ee9a | Bug #45353: lo is not used outside of prerun()
a03eb31bf5d3 | Bug #45353: update during prerun() and on special group changes
a03f416fa116 | Bug #45353: always update all_local_schools before group is processed
89b5027349fe | Bug #45353: add additional debug output in pupilgroups.py

ucs-school-webproxy.yaml:
224720bd726f | Bug #45353: add advisory

Package: ucs-school-webproxy
Version: 12.0.5-1.126.201709141312
Branch: ucs_4.1-0
Scope: ucs-school-4.1r2
Comment 2 Florian Best univentionstaff 2017-09-26 13:29:28 CEST
OK: the local list of schools is updated in prerun() and if any educative school group is modified.
OK: removal of global "lo" instance
OK: YAML (adjusted in ea52350c9ac4)
Comment 3 Sönke Schwardt-Krummrich univentionstaff 2017-10-16 21:33:07 CEST
UCS@school 4.1 R2 v14 has been released.

http://docs.software-univention.de/changelog-ucsschool-4.1R2v14-de.html

If this error occurs again, please clone this bug.