Revision: 4d0126a342f2
Author: unknown <yulian@Venera.(none)>
Date: Tue Jan 15 13:21:41 2013
Log: Removed priority for mgcp client threads , useless
Modified wav file impl to check if there is some data available before
reading
from stream.Otherwise may block the mms for a long time for example on
problematic nfs
http://code.google.com/p/mediaserver/source/detail?r=4d0126a342f2
Modified:
/client/jsr-309/tck/server.log
/client/mgcp/driver/src/main/java/org/mobicents/protocols/mgcp/stack/JainMgcpStackImpl.java
/client/mgcp/driver/src/main/resources/org/mobicents/mgcp/stack/mgcp-stack.properties
/resources/mediaplayer/src/main/java/org/mobicents/media/server/impl/resource/mediaplayer/audio/wav/WavTrackImpl.java
=======================================
--- /client/jsr-309/tck/server.log Sat Jan 12 12:37:26 2013
+++ /client/jsr-309/tck/server.log Tue Jan 15 13:21:41 2013
@@ -1,6 +1,6 @@
-2013-01-12 21:52:51,813 DEBUG [TestBase] (main) Loading
file:/opt/mobsource/medianew/client/jsr-309/tck/exclude-list.properties
-2013-01-12 21:52:51,815 INFO [Runner] (main) Start
mandatory.functional.mediagroup.PlayerTest.test_2_1_1_1_Play
javadoc::Joinable::1 javadoc::MediaGroup::1 javadoc::MediaGroup::6
javadoc::Player::1 javadoc::PlayerEvent::15
-2013-01-12 21:52:51,815 DEBUG [TestBase] (main) Getting a MsControlFactory
instance
-2013-01-12 21:52:51,837 INFO [DriverImpl] (main) Initializing MGCP on
/127.0.0.1:2729
-2013-01-12 21:52:51,852 WARN [JainMgcpStackImpl] (main) Failed to locate
properties file, using default values
-2013-01-12 21:52:51,862 INFO [JainMgcpStackImpl] (main) Jain Mgcp stack
bound to IP /127.0.0.1 and UDP port 2729
+2013-01-15 22:42:10,142 DEBUG [TestBase] (main) Loading
file:/opt/mobsource/medianew/client/jsr-309/tck/exclude-list.properties
+2013-01-15 22:42:10,143 INFO [Runner] (main) Start
mandatory.functional.mediagroup.PlayerTest.test_2_1_1_1_Play
javadoc::Joinable::1 javadoc::MediaGroup::1 javadoc::MediaGroup::6
javadoc::Player::1 javadoc::PlayerEvent::15
+2013-01-15 22:42:10,144 DEBUG [TestBase] (main) Getting a MsControlFactory
instance
+2013-01-15 22:42:10,165 INFO [DriverImpl] (main) Initializing MGCP on
/127.0.0.1:2729
+2013-01-15 22:42:10,179 WARN [JainMgcpStackImpl] (main) Failed to locate
properties file, using default values
+2013-01-15 22:42:10,188 INFO [JainMgcpStackImpl] (main) Jain Mgcp stack
bound to IP /127.0.0.1 and UDP port 2729
=======================================
---
/client/mgcp/driver/src/main/java/org/mobicents/protocols/mgcp/stack/JainMgcpStackImpl.java
Sat Jan 12 12:37:26 2013
+++
/client/mgcp/driver/src/main/java/org/mobicents/protocols/mgcp/stack/JainMgcpStackImpl.java
Tue Jan 15 13:21:41 2013
@@ -85,8 +85,6 @@
*/
public static final String _EXECUTOR_QUEUE_SIZE = "executorQueueSize";
- public static final String _MESSAGE_READER_THREAD_PRIORITY
= "messageReaderThreadPriority";
-
private static final Logger logger =
Logger.getLogger(JainMgcpStackImpl.class);
private static final String propertiesFileName =
"mgcp-stack.properties";
private String protocolVersion = "1.0";
@@ -94,8 +92,6 @@
private InetAddress localAddress = null;
private boolean stopped = true;
- private int messageReaderThreadPriority = Thread.MIN_PRIORITY;
-
private PacketRepresentationFactory prFactory = null;
// Should we ever get data more than 5000 bytes?
@@ -185,8 +181,6 @@
this.prFactory = new PacketRepresentationFactory(50,
BUFFER_SIZE);
- this.setPriority(this.messageReaderThreadPriority);
-
decodingThreads=new DecodingThread[this.parserThreadPoolSize];
for(int i=0;i<decodingThreads.length;i++)
decodingThreads[i]=new DecodingThread(this);
@@ -210,15 +204,10 @@
String val = null;
- val = props.getProperty(_MESSAGE_READER_THREAD_PRIORITY, "" +
this.messageReaderThreadPriority);
- this.messageReaderThreadPriority =
Integer.parseInt(val);
val = props.getProperty(_EXECUTOR_QUEUE_SIZE, "" +
this.parserThreadPoolSize);
this.parserThreadPoolSize = Integer.parseInt(val);
val = null;
- logger.info(this.propertiesFileName + " read successfully!
\nmessageReaderThreadPriority = "
- + this.messageReaderThreadPriority);
-
logger.info(this.propertiesFileName + " read successfully!
\nexecutorQueueSize = "
+ this.parserThreadPoolSize);
=======================================
---
/client/mgcp/driver/src/main/resources/org/mobicents/mgcp/stack/mgcp-stack.properties
Fri Nov 2 08:59:50 2012
+++
/client/mgcp/driver/src/main/resources/org/mobicents/mgcp/stack/mgcp-stack.properties
Tue Jan 15 13:21:41 2013
@@ -1,7 +1,3 @@
-#
-# Message reader thread priority, should be Thread.MAX_PRIORITY, MAX==10,
MIN==1
-# This thread awaits data on socket and pushes it to even
-messageReaderThreadPriority=5
# Number of parser threads used to parse incoming messages
# Optimal while set to number of cpu cores available on server
executorQueueSize=2
=======================================
---
/resources/mediaplayer/src/main/java/org/mobicents/media/server/impl/resource/mediaplayer/audio/wav/WavTrackImpl.java
Sat Oct 27 12:25:28 2012
+++
/resources/mediaplayer/src/main/java/org/mobicents/media/server/impl/resource/mediaplayer/audio/wav/WavTrackImpl.java
Tue Jan 15 13:21:41 2013
@@ -111,7 +111,17 @@
try {
long offset = frameSize * (timestamp / period/ 1000000L);
byte[] skip = new byte[(int)offset];
- totalRead+=inStream.read(skip);
+ int bytesRead=0;
+ while(bytesRead<skip.length && inStream.available()>0)
+ {
+ int len=inStream.read(skip,bytesRead,skip.length-bytesRead);
+ if(len==-1)
+ return;
+
+ totalRead+=len;
+ bytesRead+=len;
+ }
+
} catch (IOException e) {
logger.error(e);
}
@@ -122,7 +132,7 @@
byte[] headerEnd = null;
int tempValue;
int bytesRead=0;
- while (bytesRead < 36) {
+ while (bytesRead < 36 && stream.available()>0) {
int len = stream.read(header, bytesRead, 36 - bytesRead);
if (len == -1) {
return;
@@ -169,7 +179,7 @@
headerEnd=new byte[8+ckSize-16];
bytesRead=0;
extraHeaderSize=headerEnd.length;
- while (bytesRead < extraHeaderSize) {
+ while (bytesRead < extraHeaderSize && stream.available()>0) {
int len = stream.read(headerEnd, bytesRead, extraHeaderSize -
bytesRead);
if (len == -1) {
return;
@@ -194,7 +204,7 @@
sizeOfData-=12;
headerEnd=new byte[12];
bytesRead=0;
- while (bytesRead < 12) {
+ while (bytesRead < 12 && stream.available()>0) {
int len = stream.read(headerEnd, bytesRead, 12 -
bytesRead);
if (len == -1) {
return;
@@ -223,7 +233,7 @@
private int readPacket(byte[] packet, int offset, int psize) throws
IOException {
int length = 0;
try {
- while (length < psize) {
+ while (length < psize && inStream.available()>0) {
int len = inStream.read(packet, offset + length, psize -
length);
if (len == -1) {
return length;