Activity log for bug #799912

Date Who What changed Old value New value Message
2011-06-20 20:01:33 Gary Poster bug added bug
2011-06-21 13:07:30 Данило Шеган description After branches for bug 772754 land. From Danilo: """There is a potential for a UI race condition that the code is not designed to handle (on purpose, due to my laziness): if a team you can unsubscribe is subscribed, and you are able to quickly click unsubscribe, then before the animation completes click on 'subscribe someone else', find that same team, and subscribe them again, provided subscribing succeeds after the end of the unsub animation, the just unsubscribed, then subscribed team might not show up in the list, and you might hit an error message from stopSubscriberActivity saying something how addSubscriber needs to be called first; I tried to hit this race condition, but I just couldn't be fast enough on qastaging or localhost.""" After branches for bug 772754 land. Subscribers list UI on the bug page is vulnerable to the race condition in one special set of circumstances: one has to unsubscribe a person/team and then use "subscribe someone else" to subscribe the same person/team. If successful animations get timed such that subscriber name gets removed from the list while successful subscription animation is in progress (and before it completes), subscriber name might be removed and not readded. This is pretty complex set of circumstances so I didn't bother with catering for it. Proper fix would have to be in BugSubscribersLoader (in lib/lp/bugs/javascript/subscribers_list.js) so it ensures one operation is cancelled when the overriding one happens. Some support code to check the state would be needed in SubscribersList JS class in the same file. I was unable to trigger this either locally or on qastaging: all the calls happened too quickly for me to be able to time the two animations exactly right.