[MAGNOLIA-4414] Cleanup after unsuccessful attempt to lock the content will remove content in case of cross activation requests Created: 16/May/12 Updated: 18/May/12 Resolved: 18/May/12 |
|
| Status: | Closed |
| Project: | Magnolia |
| Component/s: | activation |
| Affects Version/s: | 4.4.7, 4.5.2 |
| Fix Version/s: | 4.4.8, 4.5.3 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Jan Haderka | Assignee: | Milan Divilek |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
||||
| Issue Links: |
|
||||
| Template: |
|
||||
| Acceptance criteria: |
Empty
|
||||
| Task DoD: |
[ ]*
Doc/release notes changes? Comment present?
[ ]*
Downstream builds green?
[ ]*
Solution information and context easily available?
[ ]*
Tests
[ ]*
FixVersion filled and not yet released
[ ] 
Architecture Decision Record (ADR)
|
||||
| Bug DoR: |
[ ]*
Steps to reproduce, expected, and actual results filled
[ ]*
Affected version filled
|
||||
| Description |
|
In case of two concurrent requests for activation of same content arriving to public instances in different order block each other and cause rollback, the cleanup will incorrectly remove the content from all public instances. |
| Comments |
| Comment by Jan Haderka [ 16/May/12 ] |
|
Patch for the issue. |
| Comment by Jan Haderka [ 17/May/12 ] |
|
based on confusion it caused during tests, I just realized how the error message must feel to users not knowing anything about activation internal working. I've already changed it on 4.4 branch, but pls change it also on the master @@ -641,7 +642,7 @@ public class ReceiveFilter extends AbstractMgnlFilter {
content = this.getNode(request);
}
if (content.isLocked()) {
- throw new ExchangeException("Operation not permitted, " + content.getHandle() + " is locked while activating " + request.getHeader(BaseSyndicatorImpl.NODE_UUID));
+ throw new ExchangeException("Content " + content.getHandle() + " was locked while activating " + request.getHeader(BaseSyndicatorImpl.NODE_UUID) + ". This most likely means that content have been at the same time activated by some other user. Please try again and if problem persists contact administrator.");
}
return content;
}
|