[MAGNOLIA-2489] When two different editors try activate same piece of content at nearly same time, the latter attemp fails Created: 02/Dec/08  Updated: 23/Jan/13  Resolved: 05/Mar/09

Status: Closed
Project: Magnolia
Component/s: activation
Affects Version/s: 3.6.3
Fix Version/s: 4.0, 3.6.4, 3.6.5

Type: Improvement Priority: Blocker
Reporter: Jan Haderka Assignee: Jan Haderka
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
dependency
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)
Date of First Response:

 Description   

The activation of single piece of content takes about 2sec. If the another activation for same piece of content comes in that time interval, it will fail with

Operation not permitted, /path/to/node is locked

perhaps in this case ReceiveFilter should attempt to wait for few secs and attempt to activate incoming content again before returning failure back to Syndicator.



 Comments   
Comment by Magnolia International [ 26/Feb/09 ]

Since the lock check is done on the parent, this can also happen if you have one long-running activation, and a simultaneous activation of a subnode of the node being activated by the long-running activation; the latter will fail.

Comment by Jan Haderka [ 04/Mar/09 ]

synchronization on locking is not an option. First because it would lock any other activation, not only on affected subpath, and second because process of locking and unlocking are in separated methods so we would need a global semaphores to deal with that.
It seems issue can be mitigated rather simply by letting activation to wait if the lock can't be obtained and retry number of times in regular intervals. I have already fix to that effect implemented locally.

Comment by Philipp Bracher [ 04/Mar/09 ]

Most of the time consuming methods in the ReceiveFilter are synchronized. Perhaps they shouldn't be.

Comment by Jan Haderka [ 04/Mar/09 ]

Yes, perhaps they should not be, but timeframe is too short to revamp this completely, so we should deal with such refactoring in separate issue later. The reason why we see this more often now is that publishing part is not synchronized anymore and allows multiple editors to activate content at a same time. In the past (before 3.6.2) publishing part of the activation would be blocking and allowing only one request to be published at a time, thus hiding this issue.

Changed priority to blocker and set fix versions.

Comment by Jan Haderka [ 05/Mar/09 ]

Done as of r23130 on trunk and r23131 on 3.6 branch.

Generated at Mon Feb 12 03:37:13 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.