When multiple requests simultaneously attempt to change the tags associated with an entity, the current implementation might result in APIs returning fewer tags for the entity than is actually associated.
The problem thus causes UI not to behave correctly.
Implements a synchronization mechanism.
Steps to duplicate the problem:
- Create several tags. Eg. tag1, tag2, tag3, tag4.
- Attach these tags to and entity say ‘testtable1’
- Use the following CURL commands to delete the tags:
You will notice that entity testtable1 ends up with some tags not deleted.
Additional querying with gremlin will show that the edges are deleted correctly.