Skip to content

timeouts not working as expected in datagram mode #6

Description

@rafalsk

OK; we've been using UDTv4 implementation for quite some time now, still to our surprise we ran into some issues when trying to tweak the performance. We've been using UDT in data-gram mode.

To our surprise, the recvmsg function waits for the entire period of UDT_RCVTIMEO even if there are tons of messages already in the buffer.. is it by design? It's very easy to reproduce (..) just set timeout to say 15000 ms (..) send a few messages 40 bytes each (..) and see the socket blocking for minutes.

That results in extremely undesired scenarios (..) we've been seeing the receiving socket seemingly 'receiving' data long long after... the sending node... went offline. As perceived by the upper layers of the software. I mean come on, the variable is called a timeout.. not a polling time or whatever.

So if we set UDT_RCVTIMEO to a small value say 100ms .. is it just the polling time for results and would big messages be retrieved in any case? or is it the time after an entire datagram was not retrieved then the function returns an error?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions