Ticket #84 (closed Bug: Fixed)

Opened 5 years ago

Last modified 5 years ago

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)

Change History

Changed 5 years ago by joachim

fixed in r1712, thanks for reporting

Changed 5 years ago by thijs

I'm still seeing the same error whith r1712. Here are the file permissions for the oflaDemo streams folder:

-rw-r--r-- 1 thijstri thijstri 6200492 Nov 23 03:30 Spiderman3_trailer_300.flv


-rwxr-xr-x 1 thijstri thijstri 8446642 Nov 23 03:30 on2_flash8_w_audio.flv

Changed 5 years ago by joachim

fixed in r1756 and tested on Ubuntu 6.10 with correct file permissions - should be working fine now ;)

Note: See TracTickets for help on using tickets.