[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [MirageOS-devel] problem with NET=socket and multiple connections?
Hello, I am seeing some unexpected behavior with --unix and NET=socket on Linux: it looks like the TCP server is not dealing well with multiple connections. The simplest repro. is with mirage-skeleton/stackv4: configure with --unix and NET=socket. Start the server, then open two separate telnet connections to 8080. The first connection is acknowledged by the server in a log message: "new tcp from 127.0.0.1 21234", but the second is not. If you send a line of data via the first telnet, the first connection is closed (as expected)... and only then does the server log "new tcp from 127.0.0.1 24567" to acknowledge the second connection. Output from strace shows that when the server reads from the first connection, the underlying select(2) does not include the listener socket in the read set (i.e. it will not be notified of new connections). It's only after the first connection is completed that I see accept(2)/select(2) on the listener socket again. If I modify the stackv4 example to write to each client before reading, then both connections are accepted and acknowledged immediately (good), the writes go through (good), but data from the clients is never received (bad). Originally I noticed this issue in a local build of mirage-www: with unix/socket mode, the home page may fail to load if the browser uses concurrent connections to fetch css/images/etc. That did not happen a few weeks ago. Any advice? thanks -- Len _______________________________________________ MirageOS-devel mailing list MirageOS-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |