Guillaume, we had the same issue some weeks ago, and we solved the problem 
removing some synchronized keywords from some Red5 core files.

Try to execute jstack (from sun jdk) using your red5 process id as first 
parameter (e.g. .jstack 2314 ) and try to find the deadlock.

Maybe you´ll find the same deadlock that we found on BaseConnection.close 
method.

p.s: we are getting more than 1.500 concurrent users without any freeze after 
this change.

Regards,

Luiz Filipe.

  -----Mensagem original-----
  De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] nome de Guillaume Lecanu
  Enviada em: quinta-feira, 9 de agosto de 2007 00:48
  Para: red5
  Assunto: [Red5] Red5 often freeze on our server


  Hi guys !

  We uses Red5 0.6.2 on our debian server.
  Our application is a live webcam, and we need to restart Red5 every 2/3 days 
because Red5 freeze.

  I don't know if Red5 really freeze, but it's no more possible to make new 
connection on the application, and there is no traces in logs since the freeze 
moment.
  In the logs, I generally don't found  any suspects traces, but I report you 
some examples of what we can see in the logs just before the freeze :


  [INFO] 220723179 pool-3-thread-7:( RTMPConnection.updateBytesRead ) 
StreamBytesRead: 11688682 
  [INFO] 220723205 pool-3-thread-7:( RTMPConnection.updateBytesRead ) 
StreamBytesRead: 14010943 
  [INFO] 220723245 pool-3-thread-7:( RTMPConnection.updateBytesRead ) 
StreamBytesRead: 5775370 
  [INFO] 220723415 pool-3-thread-7:( RTMPHandler.onInvoke ) call: Service: null 
Method: receiveAudio Num Params: 10: false 
  [INFO] 220723415 pool-3-thread-7:( RTMPHandler.onInvoke ) --receiveAudio 
  [INFO] 220723422 pool-3-thread-7:( RTMPHandler.onInvoke ) call: Service: null 
Method: play Num Params: 10: toto 
  [INFO] 220723422 pool-3-thread-7:( RTMPHandler.onInvoke ) --play 
  [INFO] 220723424 pool-3-thread-7:( RTMPHandler.onInvoke ) call: Service: null 
Method: receiveAudio Num Params: 10: false 
  [INFO] 220723424 pool-3-thread-7:( RTMPHandler.onInvoke ) --receiveAudio 
  [INFO] 220723511 pool-3-thread-7:( RTMPHandler.onInvoke ) call: Service: null 
Method: closeStream Num Params: 0 
  [INFO] 220723511 pool-3-thread-7:( RTMPHandler.onInvoke ) --closeStream 
  [INFO] 220724280 pool-3-thread-7:( RTMPHandler.onInvoke ) call: Service: null 
Method: deleteStream Num Params: 10: 1 
  [INFO] 220724280 pool-3-thread-7:( RTMPHandler.onInvoke ) --deleteStream 
  [WARN] 220737559 DefaultQuartzScheduler_Worker-9:( RTMPConnection.execute ) 
Closing RTMPMinaConnection from X.X.X.X:4642 to our_server.com:80 (in: 
  4367, out: 11416216) due to too much inactivity (126423). 

  There is often a DefaultQuartzScheduler in theses cases.

  We have also found sometime an error :


    [ERROR] 152119851 SocketAcceptorIoProcessor-0.1:( 
RTMPProtocolDecoder.decode ) Error in packet at 0 
    java.lang.NullPointerException
            at 
org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeHeader(RTMPProtocolDecoder.java:416)
            at 
org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodePacket(RTMPProtocolDecoder.java:315)
            at 
org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decode(RTMPProtocolDecoder.java:178)
            at 
org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeBuffer(RTMPProtocolDecoder.java:120)
            at 
org.red5.server.net.rtmp.codec.RTMPMinaProtocolDecoder.decode(RTMPMinaProtocolDecoder.java:60)
            at 
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:172)
            at 
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
            at 
org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
            at 
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
            at 
org.apache.mina.common.support.AbstractIoFilterChain$HeadFilter.messageReceived(AbstractIoFilterChain.java:617)
            at 
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
            at 
org.apache.mina.common.support.AbstractIoFilterChain.fireMessageReceived(AbstractIoFilterChain.java:353)
            at 
org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.java:246)
            at 
org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcessor.java:206)
            at 
org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500(SocketIoProcessor.java:44)
            at 
org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:506)
            at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:43)
            at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
            at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
            at java.lang.Thread.run(Thread.java:595)
    [ERROR] 152119851 SocketAcceptorIoProcessor-0.1:( 
RTMPProtocolDecoder.decodeBuffer ) Error decoding buffer 
    org.red5.server.net.protocol.ProtocolException: Error during decoding
            at 
org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decode(RTMPProtocolDecoder.java:189)
            at 
org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeBuffer(RTMPProtocolDecoder.java:120)
            at 
org.red5.server.net.rtmp.codec.RTMPMinaProtocolDecoder.decode(RTMPMinaProtocolDecoder.java:60)
            at 
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:172)
            at 
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
            at 
org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:54)
            at 
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800)
            at 
org.apache.mina.common.support.AbstractIoFilterChain$HeadFilter.messageReceived(AbstractIoFilterChain.java:617)
            at 
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362)
            at 
org.apache.mina.common.support.AbstractIoFilterChain.fireMessageReceived(AbstractIoFilterChain.java:353)
            at 
org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.java:246)
            at 
org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcessor.java:206)
            at 
org.apache.mina.transport.socket.nio.SocketIoProcessor.access$500(SocketIoProcessor.java:44)
            at 
org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:506)
            at 
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:43)
            at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
            at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
            at java.lang.Thread.run(Thread.java:595)



  Do you have any solutions/suggestions to help us ?

  Thanks a lots. 
_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org

Reply via email to