Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Avoid playing queue pollution when restoring Sonos snapshots (#21963)
Assume a snapshot state with three speakers in two groups, AB and C. They will be playing the A and C queues, respectively. The B queue exists but is hidden in this topology. Unjoin B and form a new group BC, playing the B queue (now with the C queue hidden). To restore the snapshot we would join B back to A. The BC group would now only contain the C speaker, still playing the B queue. The C queue has been lost :-( The problem is that unjoining a coordinator will elect a new coordinator that inherits the group queue and thus has its hidden queue overwritten. This commit avoids the situation by having restore unjoin all slaves. Above, C would be unjoined before joining B to A. This restores the C queue and since B is then alone, it can be joined to A without having to transfer its playing queue to remaining speakers.
- Loading branch information