If two people save the same configuration entity at the same time we don't use locking to ensure that one is saved and the other is rejected.
opens a new avenue for race conditions since saving two different configuration entities could result in missing information in the lookup key value storage.
Steps to reproduce the locking problem:
- Install Drupal standard
- Open the main menu admin (admin/structure/menu/manage/main)
- Add a second menu item
- Open the main menu admin in a second tab
- Change the menu items order and save
- Come back to your first tab
- Change the menu name and save
- You've lost the menu items order set in the second tab
Steps to reproduce the key_value storage problem:
These steps, suggested by @alexpott, are supposed to help someone whiling to write a test that demonstrate that problem.
- Create a test entity with a lookup key and a 'foo' base field
- In the test entity save method add a sleep if the 'foo' base field contains the 'bar' value
- In two different processes, save two different entities of this type, the first with foo=bar and the second with foo=notbar
- See what happens
Discuss, demonstrate, fix.
User interface changes