-
Bug
-
Resolution: Fixed
-
Low
-
7.4.11, 7.13.0, 7.17.2
-
1
-
Severity 2 - Major
-
0
-
Issue Summary
Confluence sometimes sends an invalid last-modified header for .css and .js files. While this header is not required to be set (or set validly) for regular functioning of Confluence, it is part of http-standards compliance, specifically for caching software to use. Sending an invalid header is known to cause problems with specific proxy/caching software.
Environment
Bug observed in:
- Jira 8.13.7, 8.13.10, 8.15.1, 8.20.1
- Confluence 7.4.11, 7.13.0, 7.17.2
Bug fixed in Jira 8.20.8+
Steps to Reproduce
- Run any of the affected Confluence or Jira versions
- Connect to Confluence or Jira over IBM Webseal proxy
Expected Results
Pages will load as expected.
Actual Results
Pages load, but do not load/display completely. Page styling is missing, for example. (.css and .js are failing to load)
Get requests for .css and .js components will have the Response header Last-Modified set to:
Wed, 31 Dec 1969 23:59:59 GMT
Since this is one second before the beginning of Unix Time (Thu, 01 Jan 1970 00:00:00 GMT), Webseal will fail to calculate whether the cache should be refreshed and will return an error code instead of content.
Workaround
Disable cache-control in Webseal. For more information on Content Caching & the Last Modified Header in Webseal, see this IBM article: Content Caching in IBM Webseal
For Confluence, it should be possible to cache those files regardless of the last-modified header value. This is because:
We only cache static assets served by a Data Center application or Marketplace app. These are things that are only going to change when you upgrade your Data Center application or app. Dynamic content is not cached.
This means it should be safe to cache them and only invalidate those caches after upgrading the application or a plugin, regardless of the last-modified value.
Note
Testing Confluence 7.13.7 reveals it does not send the last-modified header on responses for .js and .css requests.
- is cloned from
-
JRASERVER-72950 Jira should send valid last-modified headers for .css & .js
- Gathering Interest
[CONFSERVER-79046] Confluence should send valid last-modified headers for .css & .js
Status | Original: Closed [ 6 ] | New: Closed [ 6 ] |
Resolution | New: Fixed [ 1 ] | |
Status | Original: Awaiting Merge [ 10064 ] | New: Closed [ 6 ] |
Fix Version/s | Original: 7.9.0 [ 92808 ] | |
Fix Version/s | New: 7.19.0 [ 101690 ] |
Fix Version/s | New: 7.9.0 [ 92808 ] |
Description |
Original:
h3. Issue Summary
Confluence sometimes sends an invalid last-modified header for .css and .js files. While this header is not required to be set (or set validly) for regular functioning of Confluence, it is part of http-standards compliance, specifically for caching software to use. Sending an invalid header is known to cause problems with specific proxy/caching software. h3. Environment (x) Bug observed in: * Jira 8.13.7, 8.13.10, 8.15.1, 8.20.1 * Confluence 7.4.11, 7.13.0, 7.17.2 (/) Bug fixed in Jira 8.20.8+ h3. Steps to Reproduce # Run any of the affected Confluence or Jira versions # Connect to Confluence or Jira over IBM Webseal proxy h3. Expected Results Pages will load as expected. h3. Actual Results Pages load, but do not load/display completely. Page styling is missing, for example. (.css and .js are failing to load) Get requests for .css and .js components will have the Response header Last-Modified set to: {code:java} Wed, 31 Dec 1969 23:59:59 GMT{code} Since this is one second before the beginning of Unix Time (Thu, 01 Jan 1970 00:00:00 GMT), Webseal will fail to calculate whether the cache should be refreshed and will return an error code instead of content. h3. Workaround Disable cache-control in Webseal. For more information on Content Caching & the Last Modified Header in Webseal, see this IBM article: [Content Caching in IBM Webseal|https://www.ibm.com/docs/en/sva/9.0.1?topic=configuration-content-caching] For Confluence, it should be possible to cache those files regardless of the last-modified header value. This is because: {quote}We only cache static assets served by a Data Center application or Marketplace app. These are things that are only going to change when you upgrade your Data Center application or app. Dynamic content is not cached.{quote} Reference: [https://confluence.atlassian.com/conf713/use-a-cdn-with-atlassian-data-center-applications-1077914891.html#UseaCDNwithAtlassianDataCenterapplications-Whatiscached?] This means it should be safe to cache them and only invalidate those caches after upgrading the application or a plugin, regardless of the last-modified value. h3. Note Testing Confluence 7.13.7 reveals it does not send the last-modified header on responses for .js and .css requests. |
New:
h3. Issue Summary
Confluence sometimes sends an invalid last-modified header for .css and .js files. While this header is not required to be set (or set validly) for regular functioning of Confluence, it is part of http-standards compliance, specifically for caching software to use. Sending an invalid header is known to cause problems with specific proxy/caching software. h3. Environment (x) Bug observed in: * Jira 8.13.7, 8.13.10, 8.15.1, 8.20.1 * Confluence 7.4.11, 7.13.0, 7.17.2 (/) Bug fixed in Jira 8.20.8+ h3. Steps to Reproduce # Run any of the affected Confluence or Jira versions # Connect to Confluence or Jira over IBM Webseal proxy h3. Expected Results Pages will load as expected. h3. Actual Results Pages load, but do not load/display completely. Page styling is missing, for example. (.css and .js are failing to load) Get requests for .css and .js components will have the Response header Last-Modified set to: {code:java} Wed, 31 Dec 1969 23:59:59 GMT{code} Since this is one second before the beginning of Unix Time (Thu, 01 Jan 1970 00:00:00 GMT), Webseal will fail to calculate whether the cache should be refreshed and will return an error code instead of content. h3. Workaround Disable cache-control in Webseal. For more information on Content Caching & the Last Modified Header in Webseal, see this IBM article: [Content Caching in IBM Webseal|https://www.ibm.com/docs/en/sva/9.0.1?topic=configuration-content-caching] For Confluence, it should be possible to cache those files regardless of the last-modified header value. This is because: {quote}We only cache static assets served by a Data Center application or Marketplace app. These are things that are only going to change when you upgrade your Data Center application or app. Dynamic content is not cached. {quote} Reference: [https://confluence.atlassian.com/conf713/use-a-cdn-with-atlassian-data-center-applications-1077914891.html#UseaCDNwithAtlassianDataCenterapplications-Whatiscached?] This means it should be safe to cache them and only invalidate those caches after upgrading the application or a plugin, regardless of the last-modified value. h3. Note Testing Confluence 7.13.7 reveals it does not send the last-modified header on responses for .js and .css requests. |
QA Demo Status | Original: Not Done [ 14330 ] | New: Not Needed [ 14332 ] |
Status | Original: In Review [ 10051 ] | New: Awaiting Merge [ 10064 ] |
QA Kickoff Status | Original: Not Done [ 14234 ] | New: Not Needed [ 14236 ] |
Status | Original: In Progress [ 3 ] | New: In Review [ 10051 ] |
Remote Link |
New:
This issue links to "Confluence Release › Release Confluence 7.19.X Milestone › issue-719- |
Remote Link |
New:
This issue links to "Confluence Release › Release Confluence 7.19.X Milestone › issue-719- |
A fix for this issue is available in Confluence Server and Data Center 7.19.0. Upgrade now or check out the Release Notes to see what other issues are resolved.