WSE Version: Wowza Streaming Engine 4 Subscription Edition 4.8.5 build 20200616153358
We have multiple clients that are using Larix Broadcaster on iOS and Android to push publish to our Wowza servers.
We have configured an application named live-mobile and each client publishes to a separate application instance.
Client1 publishes to the following URL:
Client2 publishes to the following URL:
Shortly after the client stops streaming, the app instance is shutdown and we see the app-stop message in the log.
This has worked really well for that past few years.
We recently started using Wowza CDN for Client1 where there are a large number of viewers.
We configured the live-mobile application with a stream target for Client1 to push to Wowza CDN.
Client1 starts streaming and viewers are viewing via the Wowza CDN.
Then Client2 starts streaming to live-mobile/client2 app instance and viewers are viewing via Wowza Streaming Engine.
Shortly after the Client2 stops streaming, we see the app-stop message in the log immediately followed by messages of the form:
PushPublishUtils.stopSessionForStream[client1stream] stream:none : profile:wowza-cdn app:live-mobile, entry:client1stream, srcStream:client1stream, primary_url:http://post.wowzaprod234-i.akamaihd.net/XXXXXXXX/XXXXXXXX PushPublishWowzaCDNHandler.disconnect(app:live-mobile, entry:client1stream, srcStream:client1stream, primary_url:http://post.wowzaprod234-i.akamaihd.net/XXXXXXX/XXXXXXXX)
Client1 is still streaming into WSE but it is no longer being pushed to Wowza CDN.
So it appears that when an app instance is stopped, WSE is stopping PushPublishing for all app instances of the application.
This has wider implications. If our Client1 has multiple cameras publishing to the same app instance
and when setting up one, they user typos the app-instance it will trigger this problem when they disconnect.
This can effectively lead to a DoS.
How can we prevent this?