[icecast-dev] Second patch again CVS version

Ricardo Galli gallir at uib.es
Fri Mar 22 14:21:05 PST 2002

On 22/03/02 22:24, Jack Moffitt shaped the electrons to say:
> > It the first problem I found when I started to use the server and the
> > reason I began to modify it. The patch is sock.diff
> I still don't understand the problem, nor have I reproduced it.
> We shouldn't need to check the status of the socket before we call
> send().  If there were any send errors, we would have seen them after
> the last call to send().  Even if we didn't, it shouldn't affect future
> calls (at worst, they will fail again).
> I think the behavior you were seeing was cuased by the next bug:
> > > > - Solved a bug in source.c, when checking for recoverable error. It
> > > > has to be done _only_ when result < 0.
> I did look over source.c and you were correct.  I have fixed this in
> CVS.
> I'm not sure why I didn't see this before, or why it didn't cause more
> problems, but then again, apparently it did for you.

I was very surprised as well, I was getting very frequent EPIPE errors when 
testing connection from my home to my server in the university. My "testing 
environment" has changed radically, at that time I had an ISDN connection, 
now I've lost it (got DSL), neverthelles I will try to recreate it.

____But___, there was a serious bug which could be the "real" one and was 
masked by the "poll()" for a while. I've described it in a previous mail and 
sent the one-liner patch:

The problem resided on the conditional variable being signaled twice (or 
more) after new connections, but the server thread (connection.c) only get 
the first of the several new connections.

This bug is easier to catch, just open a couple of "simultaneous" wget 
connections from a client in the same LAN. Something like:

for i in `seq 100`
        wget http://... &
        wget http://... &
         wget http://... 

"I just stopped using Windows and now you tell me to use Mirrors?" 
    - said Aunt Tillie, just before downloading 2.5.3 kernel.

--- >8 ----
List archives:  http://www.xiph.org/archives/
icecast project homepage: http://www.icecast.org/
To unsubscribe from this list, send a message to 'icecast-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.

More information about the Icecast-dev mailing list