Ticket #84 (closed Bug: Fixed)
NetStream.Play.Failed bug
| Reported by: | thijs | Owned by: | joachim |
|---|---|---|---|
| Priority: | Major | Component: | App Server |
| Version: | 0.8 RC2 | Keywords: | |
| Cc: |
Description
If you try to play a FLV file that has no access rights for any user Red5 gives the errors below and dies.
It should recieve only one "NetStream.Play.Failed" event. Description from the FMS docs: "An error has occurred in playback for a reason such as the subscriber not having read access."
The Flashplayer recieves this:
23:32:22:244 -- NetStream.Play.Reset
23:32:22:263 -- NetStream.Play.Start
23:32:22:343 -- NetStream.Play.Stop
23:32:22:344 -- NetStream.Play.Reset
23:32:22:344 -- NetStream.Play.Start
23:32:22:344 -- NetStream.Pause.Notify
23:32:22:903 -- NetStream.Buffer.Flush
Red5 crashes into:
[java] [ERROR] 34647 SocketAcceptorIoProcessor-0.0:( org.red5.server.stream.provider.FileProvider.error ) error read stream file /Users/thijstriemstra/red5/trunk/webapps/oflaDemo/streams/discodance.flv
[java] java.io.FileNotFoundException: /Users/thijstriemstra/red5/trunk/webapps/oflaDemo/streams/discodance.flv (Permission denied)
[java] at java.io.FileInputStream.open(Native Method)
[java] at java.io.FileInputStream.<init>(FileInputStream.java:106)
[java] at org.red5.io.flv.impl.FLV.getReader(FLV.java:157)
[java] at org.red5.server.stream.provider.FileProvider.init(FileProvider.java:216)
[java] at org.red5.server.stream.provider.FileProvider.pullMessage(FileProvider.java:118)
[java] at org.red5.server.messaging.InMemoryPullPullPipe.pullMessage(InMemoryPullPullPipe.java:75)
[java] at org.red5.server.stream.PlaylistSubscriberStream$PlayEngine.pullAndPush(PlaylistSubscriberStream.java:1038)
[java] at org.red5.server.stream.PlaylistSubscriberStream$PlayEngine.play(PlaylistSubscriberStream.java:847)
[java] at org.red5.server.stream.PlaylistSubscriberStream.play(PlaylistSubscriberStream.java:170)
[java] at org.red5.server.stream.StreamService.play(StreamService.java:211)
[java] at org.red5.server.stream.StreamService.play(StreamService.java:226)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:585)
[java] at org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:181)
[java] at org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:169)
[java] at org.red5.server.net.rtmp.RTMPHandler.onInvoke(RTMPHandler.java:338)
[java] at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:126)
[java] at org.red5.server.net.rtmp.RTMPMinaIoHandler.messageReceived(RTMPMinaIoHandler.java:117)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:700)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:361)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:785)
[java] at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:62)
[java] at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:187)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:361)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:785)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$HeadFilter.messageReceived(AbstractIoFilterChain.java:616)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:361)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.fireMessageReceived(AbstractIoFilterChain.java:352)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.java:288)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcessor.java:248)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500(SocketIoProcessor.java:49)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:540)
[java] at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:43)
[java] at java.lang.Thread.run(Thread.java:613)
[java] [ERROR] 34657 SocketAcceptorIoProcessor-0.0:( org.red5.server.messaging.InMemoryPullPullPipe.error ) exception when pulling message from provider
[java] java.lang.NullPointerException
[java] at org.red5.server.stream.provider.FileProvider.pullMessage(FileProvider.java:120)
[java] at org.red5.server.messaging.InMemoryPullPullPipe.pullMessage(InMemoryPullPullPipe.java:75)
[java] at org.red5.server.stream.PlaylistSubscriberStream$PlayEngine.pullAndPush(PlaylistSubscriberStream.java:1038)
[java] at org.red5.server.stream.PlaylistSubscriberStream$PlayEngine.play(PlaylistSubscriberStream.java:847)
[java] at org.red5.server.stream.PlaylistSubscriberStream.play(PlaylistSubscriberStream.java:170)
[java] at org.red5.server.stream.StreamService.play(StreamService.java:211)
[java] at org.red5.server.stream.StreamService.play(StreamService.java:226)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:585)
[java] at org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:181)
[java] at org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:169)
[java] at org.red5.server.net.rtmp.RTMPHandler.onInvoke(RTMPHandler.java:338)
[java] at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:126)
[java] at org.red5.server.net.rtmp.RTMPMinaIoHandler.messageReceived(RTMPMinaIoHandler.java:117)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:700)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:361)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:785)
[java] at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:62)
[java] at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:187)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:361)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:785)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$HeadFilter.messageReceived(AbstractIoFilterChain.java:616)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:361)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.fireMessageReceived(AbstractIoFilterChain.java:352)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.java:288)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcessor.java:248)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500(SocketIoProcessor.java:49)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:540)
[java] at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:43)
[java] at java.lang.Thread.run(Thread.java:613)
[java] [INFO] 34699 SocketAcceptorIoProcessor-0.0:( org.red5.server.stream.PlaylistSubscriberStream.info ) Scheduled stop in: -1465729581
[java] [ERROR] 34701 SocketAcceptorIoProcessor-0.0:( org.red5.server.stream.provider.FileProvider.error ) error read stream file /Users/thijstriemstra/red5/trunk/webapps/oflaDemo/streams/discodance.flv
[java] java.io.FileNotFoundException: /Users/thijstriemstra/red5/trunk/webapps/oflaDemo/streams/discodance.flv (Permission denied)
[java] at java.io.FileInputStream.open(Native Method)
[java] at java.io.FileInputStream.<init>(FileInputStream.java:106)
[java] at org.red5.io.flv.impl.FLV.getReader(FLV.java:157)
[java] at org.red5.server.stream.provider.FileProvider.init(FileProvider.java:216)
[java] at org.red5.server.stream.provider.FileProvider.pullMessage(FileProvider.java:118)
[java] at org.red5.server.messaging.InMemoryPullPullPipe.pullMessage(InMemoryPullPullPipe.java:75)
[java] at org.red5.server.stream.PlaylistSubscriberStream$PlayEngine.pullAndPush(PlaylistSubscriberStream.java:1038)
[java] at org.red5.server.stream.PlaylistSubscriberStream$PlayEngine.access$100(PlaylistSubscriberStream.java:600)
[java] at org.red5.server.stream.PlaylistSubscriberStream.written(PlaylistSubscriberStream.java:456)
[java] at org.red5.server.net.rtmp.BaseRTMPHandler.messageSent(BaseRTMPHandler.java:205)
[java] at org.red5.server.net.rtmp.RTMPMinaIoHandler.messageSent(RTMPMinaIoHandler.java:170)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageSent(AbstractIoFilterChain.java:706)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageSent(AbstractIoFilterChain.java:390)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:53)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageSent(AbstractIoFilterChain.java:791)
[java] at org.apache.mina.filter.codec.ProtocolCodecFilter.messageSent(ProtocolCodecFilter.java:204)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageSent(AbstractIoFilterChain.java:390)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:53)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageSent(AbstractIoFilterChain.java:791)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$HeadFilter.messageSent(AbstractIoFilterChain.java:622)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageSent(AbstractIoFilterChain.java:390)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.fireMessageSent(AbstractIoFilterChain.java:381)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.doFlush(SocketIoProcessor.java:460)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.doFlush(SocketIoProcessor.java:407)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$600(SocketIoProcessor.java:49)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:543)
[java] at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:43)
[java] at java.lang.Thread.run(Thread.java:613)
[java] [ERROR] 34714 SocketAcceptorIoProcessor-0.0:( org.red5.server.messaging.InMemoryPullPullPipe.error ) exception when pulling message from provider
[java] java.lang.NullPointerException
[java] at org.red5.server.stream.provider.FileProvider.pullMessage(FileProvider.java:120)
[java] at org.red5.server.messaging.InMemoryPullPullPipe.pullMessage(InMemoryPullPullPipe.java:75)
[java] at org.red5.server.stream.PlaylistSubscriberStream$PlayEngine.pullAndPush(PlaylistSubscriberStream.java:1038)
[java] at org.red5.server.stream.PlaylistSubscriberStream$PlayEngine.access$100(PlaylistSubscriberStream.java:600)
[java] at org.red5.server.stream.PlaylistSubscriberStream.written(PlaylistSubscriberStream.java:456)
[java] at org.red5.server.net.rtmp.BaseRTMPHandler.messageSent(BaseRTMPHandler.java:205)
[java] at org.red5.server.net.rtmp.RTMPMinaIoHandler.messageSent(RTMPMinaIoHandler.java:170)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageSent(AbstractIoFilterChain.java:706)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageSent(AbstractIoFilterChain.java:390)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:53)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageSent(AbstractIoFilterChain.java:791)
[java] at org.apache.mina.filter.codec.ProtocolCodecFilter.messageSent(ProtocolCodecFilter.java:204)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageSent(AbstractIoFilterChain.java:390)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:53)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageSent(AbstractIoFilterChain.java:791)
[java] at org.apache.mina.common.support.AbstractIoFilterChain$HeadFilter.messageSent(AbstractIoFilterChain.java:622)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageSent(AbstractIoFilterChain.java:390)
[java] at org.apache.mina.common.support.AbstractIoFilterChain.fireMessageSent(AbstractIoFilterChain.java:381)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.doFlush(SocketIoProcessor.java:460)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.doFlush(SocketIoProcessor.java:407)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$600(SocketIoProcessor.java:49)
[java] at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:543)
[java] at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:43)
[java] at java.lang.Thread.run(Thread.java:613)
