<div dir="ltr">No problem, glad you figured it out and there was no bug!<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jun 11, 2014 at 9:29 AM, Francesco Massei <span dir="ltr"><<a href="mailto:fmassei@gmail.com" target="_blank">fmassei@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I ashamedly have to inform that after two days and one night of work<br>
writing snippets and tests I found the problem, it was mine. I was<br>
bitten by an implicit integer conversion like a noob (actually, even<br>
worse, by not paying enough attention writing the building scripts).<br>
>From time to time there was a send() called without waiting the<br>
signal, and bad things were happening.<br>
Now everything seems to work fine.<br>
<br>
Thank you again for your patience, and sorry for wasting everyone's time..<br>
<span class="HOEnZb"><font color="#888888">Francesco<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Wed, Jun 11, 2014 at 6:32 AM, Youness Alaoui<br>
<<a href="mailto:kakaroto@kakaroto.homelinux.net">kakaroto@kakaroto.homelinux.net</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> The first thing I notice is that you say you send data on transport_writable<br>
> signal. I hoep you know/understand that transport_writable will only be<br>
> signaled IF you do a send which returns less than the number of bytes you<br>
> wanted to send.. So if for example you want to send 1000 bytes, and the<br>
> nice_agent_send returned 1000, then transport_writable will not be signaled.<br>
> Either way, it doesn't seem to be your problem since you say you used a<br>
> packet sniffer and all the packets got sent.<br>
> Which version of libnice are you using? I think it would be important to<br>
> know. I believe there was an email recently on the mailing list about the<br>
> recv() function only returning when the entire recv buffer is filled,<br>
> instead of returning whatever data is available. I'm not sure, but this<br>
> could be related. I think Olivier might be able to help, but knowing the<br>
> version of libnice you are using will be required before he can determine<br>
> the cause.<br>
> If you have a way to reproduce the problem, that would be helpful too.<br>
><br>
> Thanks,<br>
> Youness.<br>
><br>
><br>
><br>
> On Tue, Jun 10, 2014 at 11:51 AM, Francesco Massei <<a href="mailto:fmassei@gmail.com">fmassei@gmail.com</a>><br>
> wrote:<br>
>><br>
>> Hello,<br>
>><br>
>> I'm facing a strange issue with libnice that maybe you can help me solve.<br>
>><br>
>> I have two peers that, using a reliable agent<br>
>> (nice_agent_new_reliable()), communicate between themselves. The first<br>
>> (let's call him "A") sends some data using nice_agent_send() on each<br>
>> transport_writable signal, the second (let's call him "B") receives<br>
>> the data in the callback set with nice_agent_attach_recv().<br>
>> "A" always manages to send all the data, while "B", for some reason,<br>
>> receives only part of it: sometimes just the initial frames, sometimes<br>
>> nearly all of them, but it never manages to get them all.<br>
>> Right now I'm making tests running both A and B on the same machine,<br>
>> with a packet sniffer open, and:<br>
>> - "A" and "B" are both up and running, as I see they keep sending STUN<br>
>> messages to each other every now and then.<br>
>> - All the packets "A" sends are on the wire<br>
>> - If I try to send much more data from "A" (like streaming endlessly<br>
>> gibberish) eventually "B" will get everything<br>
>> - Waiting for a long time (even minutes) doesn't help<br>
>><br>
>> The only hypothesis I can advance is that, for some reason, B waits<br>
>> some kind of ACK or SYN that will never arrive as long as A is not<br>
>> sending anything.<br>
>><br>
>> Any idea on why is this happening and how could I solve it?<br>
>><br>
>> Thank you very much!<br>
>> Francesco<br>
>> _______________________________________________<br>
>> nice mailing list<br>
>> <a href="mailto:nice@lists.freedesktop.org">nice@lists.freedesktop.org</a><br>
>> <a href="http://lists.freedesktop.org/mailman/listinfo/nice" target="_blank">http://lists.freedesktop.org/mailman/listinfo/nice</a><br>
><br>
><br>
</div></div></blockquote></div><br></div>