<div dir="ltr"><div>Hi</div><div> </div><div>Our application makes use of long-running calls with a lot of diaplan transfers to bridge them to other calls, put them on hold etc.  We&#39;ve noticed a slow down in performance (high CPU, audio dropped, delayed) after several hours.  I can reproduce it with some dialplan that does 1000 transfers: </div>
<div><br>&lt;extension name=&quot;test_transfer&quot;&gt;<br>  &lt;condition field=&quot;destination_number&quot; expression=&quot;^test_transfer$&quot;&gt;<br>    &lt;action application=&quot;set&quot; data=&quot;max_forwards=9999&quot;/&gt;<br>
    &lt;action application=&quot;transfer&quot; data=&quot;test_transfer_999&quot;/&gt;<br>  &lt;/condition&gt;<br>&lt;/extension&gt;</div><div>&lt;extension name=&quot;test_transfer_0&quot; continue=&quot;false&quot;&gt;<br>
  &lt;condition field=&quot;destination_number&quot; expression=&quot;^test_transfer_0$&quot;&gt;<br>    &lt;action application=&quot;hangup&quot;/&gt;<br>  &lt;/condition&gt;<br>&lt;/extension&gt;</div><div>&lt;extension name=&quot;test_transfer_n&quot;&gt;<br>
  &lt;condition field=&quot;destination_number&quot; expression=&quot;^test_transfer_(\d+)$&quot;&gt;<br>    &lt;!--&lt;action application=&quot;info&quot;/&gt;--&gt;<br>    &lt;action application=&quot;transfer&quot; data=&quot;test_transfer_${expr $1-1}&quot;/&gt;<br>
  &lt;/condition&gt;<br>&lt;/extension&gt;<br></div><div>and then</div><div> </div><div>originate user/1000 test_transfer XML blah</div><div> </div><div>On a Windows laptop (git head) it slows down to more than 1 sec per iteration after it gets past 800, on a bigger Linux server (FS 1.2.5.1) it gets a bit futher but not much.  On a server with an old version (git-1086cba 2011-05-23 22-51-43 -0500) it zips through to the end with no slow down.  If you put the info call in you can see that variable_transfer_history is growing, and I think this is the source of the problem - this variable is missing from the older version but the newer ones are apparently appending to it on each iteration which becomes a very expensive operation.</div>
<div> </div><div>I&#39;ll raise a Jira.  Any suggestion for a workaround? (Apart from rewriting our dialplan!)</div><div> </div><div>David</div><div> </div><div><br> </div></div>