Wowza Community

HTTP Cupertino session Reject

I have the following issue logged recently on a server.

Using Wowza 3.6.2.12 (same problem with Wowza 3.6.2.01).

There is a code for checking if a client can connect to the stream, similar to this

public void onHTTPCupertinoStreamingSessionCreate(HTTPStreamerSessionCupertino httpSession) 
	{		
		String status = Check.onConnect(httpSession.getAppInstance().getApplication().getName(), httpSession.getIpAddress());//Handeled in class, if exception Rejected
		if(!status.equals("Rejected")) 
		{
			//it is allowed
		}
		else
		{
				httpSession.rejectSession();
				
				WMSLoggerFactory.getLogger(null).error("DEBUG onHTTPCupertinoStreamingSessionCreate Rejected Status: " + status +
						" app: " + httpSession.getAppInstance().getApplication().getName() + " IP: " + httpSession.getIpAddress() + " Referrer: " + httpSession.getReferrer());
		}

This works ok, until a connection is rejected. Here what is inside the log

DEBUG onHTTPCupertinoStreamingSessionCreate Rejected Status: Rejected, app: live IP: xx.xx.xx.xx Referrer: something

This means that the session is rejected and logged, but after this is logged in the logs I get “infinite” log entries like this

WARN	server	comment	2013-10-02	00:33:17	-	-	-	-	-	38080.186	-	-	-	-	-	-	-	-	HTTPStreamerAdapterCupertinoStreamer.onPlaylist[live/_definst_/myStream/chunklist_w1329948076.m3u8]: Session not accepted[1329948076]

this is logged on every 2 sec until the server stopped and was restarted.

Maybe it is nothing because is a warning but few days ago only 4 sessions like this had cause increase in the production servers cpu and ram and crached the wowza server.

Why is this behavior logged , what to change to avoid problems?

Need answer fast because it is close to peak time and I want to avoid restarting the server.

Regards,

What player are you using? I do not see that happening in my test when I do httpSession.rejectSession() where the device browser is using a simple HTML5 page with video tag and playlist.m3u8 url. I see one of those log lines per rejected session, e.g. “Session not accepted[1837545612]”

The number is a session id. If each of those is different, then they are different sessions. Perhaps you are using a player that keeps trying to connect.

Richard

Denis,

It looks like Wowza is doing its part. Wowza cannot stop the player from trying. It looks like the player has received the playlist.m3u8 file, possibly a .smil file. So I presume you did httpSession.rejectSession() later than onHTTPSessionCreate.

I’m hesitant to download and run this .exe file. Other players do not require an executable to install.

Try onHTTPSessionDestroy to handle rejected sessions:

public void onHTTPSessionDestroy(IHTTPStreamerSession httpSession)
	{
	}

Richard

Hi,

I am faced the same problem, some players continue requests even after the session rejected or redirected. I understand that it is the question to the player implementation but Wowza Media Server do not close the session in the right way in this case, I mean onHTTPStreamerSessionDestroy does not fired in this case and for me this is quite important thing.

I have tried to close the session with

httpSession.rejectSession();

httpSession.shutdown();

but this player (PotPlayer) still trying to get the ts files and update playlist

WARN server comment - HTTPStreamerAdapterCupertinoStreamer.onMediaFile[vod/definst/mp4:sample.mp4/media_w1051553829_51.ts]: Session not accepted.

WARN server comment - HTTPStreamerAdapterCupertinoStreamer.onMediaFile[vod/definst/mp4:sample.mp4/media_w1051553829_52.ts]: Session not accepted.

WARN server comment - HTTPStreamerAdapterCupertinoStreamer.onMediaFile[vod/definst/mp4:sample.mp4/media_w1051553829_53.ts]: Session not accepted.

WARN server comment - HTTPStreamerAdapterCupertinoStreamer.onMediaFile[vod/definst/mp4:sample.mp4/media_w1051553829_54.ts]: Session not accepted.

WARN server comment - HTTPStreamerAdapterCupertinoStreamer.onPlaylist[vod/definst/mp4:sample.mp4/chunklist_w1051553829.m3u8]: Session not accepted[1051553829]

WARN server comment - HTTPStreamerAdapterCupertinoStreamer.onPlaylist[vod/definst/mp4:sample.mp4/chunklist_w1051553829.m3u8]: Session not accepted[1051553829]

WARN server comment - HTTPStreamerAdapterCupertinoStreamer.onPlaylist[vod/definst/mp4:sample.mp4/chunklist_w1051553829.m3u8]: Session not accepted[1051553829]

WARN server comment - HTTPStreamerAdapterCupertinoStreamer.onPlaylist[vod/definst/mp4:sample.mp4/chunklist_w1051553829.m3u8]: Session not accepted[1051553829]

Here you can download the PotPlayer:

http://daumpotplayer.com/download/

This issues has been reproduced with this version of PotPlayer

http://daumpotplayer.com/wp-content/uploads/2013/03/PotPlayer1.5.40688-x64.exe

using Wowza Media Server 3.6.3 under Windows 8.1 64bit.

Denis

Is this the same reason that keep very high cupertino connections?

When I execute a getConnectionCounts command from the JMXCommandLine, I always get lots of Cupertino Connections!!

There’s a way to solve it without restart the server.

Daniele

Hi there,

I notice that there appears httpSession.rejectSession() is not firing. I m trying to evaluate inside onHTTPSessionCreate and explicitly calling httpSession.rejectSession and it does not works.

Any suggestion.

Do you have any logs to provide surrounding the onHTTPSessionCreate event and your rejection call? Do you see the destroy in the logs?

I didn’t logged the user agent to know exactly because it is production server the session is made by some user (90% chance it’s a Roku).

The warning lines are all the same in the log, if a session 1329948076 is rejected then it is logged in every 2 sec, if another session is rejected then that one plus the previous is logged and the logs are flooded.

Also I don’t know if you noticed in the log it says that a chunklist is being rejected, this is not very clear to me. If I reject a HTTP session will that session be able to get the chunklist with a session like it is logged live/definst/myStream/chunklist_w1329948076.m3u8?

Hi I am also facing the same issue i couldn’t reproduce the same using potplayer in my development environment but it is frequently happening in production. Is there any other way to reproduce it? did you able to solve this issue?

Charles