wireplumber-next: missing new session-items during rescan
When you add a new session-item the 'rescan-for-linking' hook is triggerd. In this hook (linking/rescan) you iter over all SiLinkable. During this iteration a further new session-item can be missed because every 'rescan-for-linking' is blocked until the flag 'self->rescan_scheduled[value->value]' is set back in the callback 'on_rescan_done'. So when you have many SiLinkable elements and it takes longer to iter over all elements and you add two new items it is possible that only the first new item is handled in the SiLinkable loop in the "linking/rescan" hook. The second session item will get the "linking/rescan-trigger" and calls "source:call ("schedule-rescan", "linking")" but this call will be blocked and this item will never be handled until a third item is added. But in the meantime the client and its pulsesink/src will trigger a timeout because it is not linked and will die.