<div class="gmail_quote">On Mon, May 9, 2011 at 7:28 PM, Dave Singer <span dir="ltr">&lt;<a href="mailto:dave.dorasinger@gmail.com">dave.dorasinger@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Brett,<br>
<br>
In your perl app are you starting and forking/threading the read before<br>
<div class="im">   print FIFO &quot;:uptime:reply_fifo\n&quot;;<br>
</div>?</blockquote><div><br></div><div>Dave,</div><div>I tried all sorts of ways. I&#39;m pretty sure my problem comes down to some failicy in how I&#39;m performing my open statement to write to the opensips fifo.</div>

<div><br></div><div>My first attempt was linearly:</div><div>1. Open Reader</div><div>2. Open Writer</div><div>3. Write fifo command to writer (/tmp/opensips_fifo)</div><div>4. Loop over Reader filehandle until I get something</div>

<div><br></div><div>Because of the way fifos work, this naturally blocks on the reader and never makes it to the writer. This is verified by administering an &quot;echo&quot; to the fifo with a valid command and everyone wakes up (and works properly)</div>

<div><br></div><div>Second attempt was forking</div><div>1. Open Reader</div><div>2. Sleep 5 seconds</div><div>3. Fork</div><div>4. Fork Opens Writer</div><div>5. Fork writes to writer (/tmp/opensips_fifo)</div><div>6. Reader in loop looking for data from filehandle</div>

<div><br></div><div>This also blocks on the reader. From what I can see, it doesn&#39;t appear that anything ever gets written (at least not properly) to /tmp/opensips_fifo. I&#39;ve tried opening it with  &gt; and &gt;. I&#39;ve also tried explicit sysopen calls for write only and a few other variants. None of them worked</div>

<div><br></div><div>Next I tried the above scenario, but I wrote another perl script that did nothing but open /tmp/opensips_fifo and wrote to it.. That didn&#39;t work either. That was running on another terminal altogether. So no backgrounding funny business here..</div>

<div><br></div><div>Last attempt was forking with a system call.</div><div>1. Open Reader</div><div>2. Fork</div><div>3. Fork executes system call to `echo` command to /tmp/opensips_fifo</div><div>4. Reader in loop looking for data from filehandle</div>

<div>5. Reader returns result from opensips *SUCCESS*</div><div><br></div><div>That last variant works over and over... Of course, this issue above is notably a different issue than my original posting which is really about the fragility of the fifo itself. If given improper commands it tends to lock up (just the fifo, nothing else).</div>

<div><br></div><div>If you have any ideas on what to do here, I&#39;d appreciate it. :)</div><div>Thanks!</div><div>-Brett</div><div><br></div></div>