The behaviour of the order buttons for the profiles in tlwebadm can be a bit confusing in the event that something has changed on disk. Rather than just move a single entry, as suggested by the button, the current behaviour is that the entire new order is saved. This gets worse given that we use the order to determine if something is active or not. E.g., we start with this: Active: A B C Inactive: D E Someone else modifies things to: Active: C B D E Inactive: A If the first user now clicks to move B up one step, the result will be: Active: B A C Inactive: D E I.e., A is reactivated, and D and E are disabled again.
It's unclear what we can do here, as it is unclear what the user expects to happen. The safe approach might be to simply refuse to do anything if we can detect that things are out of sync.
The issue is actually worse than described above. The order will persist with the browser until the user navigates to a different page. As long as they keep submitting forms, the old order will be retained by being passed back and forth. That means that other operations will also revert to the previous order, overwriting any changes that might have happened since the user loaded the page.
r39846 for bug 7909 mitigates that last issue. The problem is now confined to just the reordering buttons.