Details
-
Bug
-
Resolution: Unresolved
-
Medium
-
None
-
4.3.7, 5.1.2, 5.5.3, 5.7
-
15
-
Severity 2 - Major
-
2
-
Description
Steps to Reproduce
Create a space and add 2000+ watchers to it. Enable page profiling and after that, try to create a page or publish a blog post. Notice that the page creation and blog post publish can take a long time (sometimes even 200+ seconds) . In the profiling logs you will see thousands of these:
[0ms] - Parse: templates/email/html/includes/header.vm
[0ms] - Parse: templates/email/html/includes/header-styles.vm
[0ms] - Parse: templates/email/html/includes/header-body-start.vm
[0ms] - Parse: templates/email/html/includes/title.vm
[0ms] - Parse: templates/email/html/includes/footer-links.vm
[0ms] - Parse: templates/email/html/includes/footer.vm
[14ms] - UserAccessor.getUser()
[0ms] - UserAccessor.isDeactivated()
[66ms] - PermissionManager.hasPermissionNoExemptions()
[31ms] - UserAccessor.hasMembership()
[24ms] - DefaultSpacePermissionManager.hasPermission(USECONFLUENCE, test@test.com, global)
[0ms] - UserAccessor.isDeactivated()
[0ms] - UserAccessor.getGroup()
[0ms] - UserAccessor.hasMembership()
[0ms] - UserAccessor.getGroup()
[1ms] - UserAccessor.hasMembership()
[0ms] - UserAccessor.hasMembership()
[11ms] - DefaultSpacePermissionManager.hasPermission(VIEWSPACE, test@test.com, it)
[1ms] - UserAccessor.getGroup()
[0ms] - UserAccessor.hasMembership()
[0ms] - UserAccessor.getGroup()
[0ms] - UserAccessor.hasMembership()
[22ms] - UserAccessor.getConfluenceUserPreferences()
[0ms] - UserAccessor.getPropertySet()
[0ms] - UserAccessor.getUser()
[0ms] - UserAccessor.getPropertySet()
[0ms] - FormatSettingsManager.getDateFormat()
[0ms] - FormatSettingsManager.getDateTimeFormat()
[0ms] - FormatSettingsManager.getTimeFormat()
[0ms] - FormatSettingsManager.getDateFormat()
[0ms] - FormatSettingsManager.getDateTimeFormat()
[0ms] - FormatSettingsManager.getEditorBlogPostDate()
[12ms] - LikeManager.hasLike()
[12ms] - PermissionManager.hasCreatePermission()
[0ms] - UserAccessor.hasMembership()
[0ms] - UserAccessor.hasMembership()
[11ms] - DefaultSpacePermissionManager.hasPermission(COMMENT, test@test.com, it)
[0ms] - UserAccessor.getGroup()
[0ms] - UserAccessor.hasMembership()
[0ms] - UserAccessor.getGroup()
[0ms] - UserAccessor.hasMembership()
[1ms] - Rendering velocity template: /styles/default-inline-css.vm
[0ms] - Parse: /styles/colors-css.vm
[0ms] - Parse: /styles/aui-overrides-css.vm
[0ms] - Parse: /styles/labels-css.vm
[0ms] - Parse: /styles/diffs-css.vm
[3ms] - Rendering velocity template: /templates/email/html/page-added-notification.vm
[0ms] - Parse: templates/email/html/includes/constants.vm
[0ms] - PermissionManager.hasCreatePermission()
So permission checks for all notified users of the page creation or change seems to be the culprit here. Suggest that we perform the permission checks during the mail queue flush, rather than the page creation process. In the example above, the 3 permission checks (USECONFLUENCE, VIEWSPACE and COMMENT) comes up to 24ms + 11ms + 11ms = 46ms for a single user (permission checks only). Multiply that by 2000 users, and you get a 92 second wait to complete the page creation.
Attachments
Issue Links
- is related to
-
CONFSERVER-58335 Creating or deleting page comments in pages with several watchers might be slow
- Long Term Backlog
- mentioned in
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...