<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7654.12">
<TITLE>Possible bug in mod_conference.c</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<BR>

<P><FONT SIZE=2 FACE="Arial">In revision 16249 I am seeing an intermittent problem as follows: </FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">1) conference is setup to play an alone sound and moh</FONT>

<BR><FONT SIZE=2 FACE="Arial">2) first person calls into the conference</FONT>

<BR><FONT SIZE=2 FACE="Arial">3) very intermittently the &quot;alone&quot; sound if not heard. Instead moh is played immediately</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">I have tracked this down to a race condition in mod_conference where the line 1011 within</FONT>

<BR><FONT SIZE=2 FACE="Arial">conference_thread_run() checks the value of conference-&gt;async_fnode at the same time, on </FONT>

<BR><FONT SIZE=2 FACE="Arial">a separate thread, conference_add_member() is updating that value via conference_play_file. </FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">As a result, intermittently, the alone sound is enqueued but then immediately &quot;over written&quot; </FONT>

<BR><FONT SIZE=2 FACE="Arial">by the moh found. </FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">A possible solution would be to surround the if statement at 1011 with </FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">switch_mutex_lock(conference-&gt;mutex)</FONT>

<BR><FONT SIZE=2 FACE="Arial">&#8230;</FONT>

<BR><FONT SIZE=2 FACE="Arial">switch_mutex_unlock(conference-&gt;mutex)</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Let me know if I should go ahead and enter a Jira and post a patch. </FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Peter</FONT> 
</P>

</BODY>
</HTML>