|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Sergey A. Cherukhin 2:5020/400 22 Dec 2004 08:58:17 To : Eugene B. Berdnikov Subject : Re: Так причина битья определилась ? (Бьются большие файлы при закачке. -------------------------------------------------------------------------------- "Eugene B. Berdnikov" <berd@desert.ihep.su> wrote in message news:986aqc.ftb.ln@protva.ru... > Alex Korchmar <hue-moe@so.yandex.ru> wrote: > AK> Eugene B. Berdnikov <berd@desert.ihep.su> wrote: > AK> > EBB>> Т.е. файл залить на сервер теперь нельзя, но "на работу это не влияет"? > AK> как я понимаю, залить файл _по_udp_ без обертки и раньше было нельзя, > AK> но с другой диагностикой. Файл по UDP не получалось залить и раньше, и сейчас. Проверял так: на сервере запускал nc слушать UDP на 20000 порту и с другого компа подключался nc, на stdin которого посылал передаваемый файл. Затем на сервере проверял размер принятого файла. Когда размер переставал увеличиваться, нажимал ^C с обеих сторон и смотрел, сколько байт передано и принято. Передающая сторона показывала что ушли все байты, а принимаюшая показывала меньшую цифру. После замены драйвера e100 на eepro100 nc _со стороны сервера_ стал вылетать с воплем "Resource temporarily unavailable", но _не всегда_, в части случаев поведение такое-же как и с e100 (т.е. доходят не все пакеты). > > Да и откуда вообще udp взялся, если исходно речь о tcp шла? А я хотел убедиться что дело не в реализации проверки контрольной суммы TCP, а в чем-то другом (в карте или драйвере). Если бы файл по UDP залился нормально, это однозначно бы указывало на баг в реализации TCP. > > В общем, strace nc, но и tcpdump такого диковинного момента со сторонней машины > не мешало бы рассмотреть. Вот вывод strace: execve("/usr/bin/nc", ["nc", "-v", "-v", "-v", "-u", "-l", "-p", "20000"], [/* 21 vars */]) = 0 uname({sys="Linux", node="server.internal", ...}) = 0 brk(0) = 0x804c364 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=13889, ...}) = 0 old_mmap(NULL, 13889, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0XW\1\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1197344, ...}) = 0 old_mmap(NULL, 1207332, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40018000 old_mmap(0x40139000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x120000) = 0x40139000 old_mmap(0x4013c000, 11300, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4013c000 close(3) = 0 munmap(0x40014000, 13889) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\214\274C(b3P\362qB\31\262\315\177\6\234%\351I\227\273"..., 256) = 256 close(3) = 0 open("/dev/urandom", O_RDONLY) = 3 read(3, "\206\366\353\33\302\307\306YM\306\27\244+\337mxo\225\206"..., 136) = 136 close(3) = 0 brk(0) = 0x804c364 brk(0x804d364) = 0x804d364 brk(0) = 0x804d364 brk(0x804e000) = 0x804e000 open("/etc/resolv.conf", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=108, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000 read(3, "# MADE-BY-RP-PPPOE\ndomain intern"..., 4096) = 108 read(3, "", 4096) = 0 close(3) = 0 munmap(0x40014000, 4096) = 0 brk(0) = 0x804e000 brk(0x804f000) = 0x804f000 brk(0) = 0x804f000 brk(0x8051000) = 0x8051000 rt_sigaction(SIGINT, {0x8048ff0, [INT], SA_RESTORER|SA_RESTART, 0x4003ee38}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGQUIT, {0x8048ff0, [QUIT], SA_RESTORER|SA_RESTART, 0x4003ee38}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGTERM, {0x8048ff0, [TERM], SA_RESTORER|SA_RESTART, 0x4003ee38}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGURG, {SIG_IGN}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0 open("/etc/nsswitch.conf", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=1696, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000 read(3, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1696 brk(0) = 0x8051000 brk(0x8052000) = 0x8052000 read(3, "", 4096) = 0 close(3) = 0 munmap(0x40014000, 4096) = 0 open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=13889, ...}) = 0 old_mmap(NULL, 13889, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000 close(3) = 0 open("/lib/libnss_files.so.2", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\34"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=41408, ...}) = 0 old_mmap(NULL, 44700, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4013f000 old_mmap(0x40149000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x9000) = 0x40149000 close(3) = 0 munmap(0x40014000, 13889) = 0 open("/etc/services", O_RDONLY) = 3 fcntl64(3, F_GETFD) = 0 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 fstat64(3, {st_mode=S_IFREG|0644, st_size=19935, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000 read(3, "# /etc/services:\n# $Id: services"..., 4096) = 4096 read(3, "BIOS Name Service\nnetbios-ns\t137"..., 4096) = 4096 read(3, "cs\t\t994/udp\npop3s\t\t995/tcp\t\t\t\t# "..., 4096) = 4096 read(3, "de effect\ncodasrv\t\t2432/tcp\t\t\t# "..., 4096) = 4096 read(3, "\t2/ddp\t\t\t\t# Name Binding Protoco"..., 4096) = 3551 read(3, "", 4096) = 0 close(3) = 0 munmap(0x40014000, 4096) = 0 socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 bind(3, {sa_family=AF_INET, sin_port=htons(20000), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 getsockname(3, {sa_family=AF_INET, sin_port=htons(20000), sin_addr=inet_addr("0.0.0.0")}, [16]) = 0 write(2, "listening on [any] 20000 ...", 28) = 28 write(2, "\n", 1) = 1 rt_sigaction(SIGALRM, {SIG_IGN}, {SIG_DFL}, 8) = 0 alarm(0) = 0 recvfrom(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192, MSG_PEEK, {sa_family=AF_INET, sin_port=htons(1372), sin_addr=inet_addr("192.168.5.1")}, [16]) = 8192 rt_sigaction(SIGALRM, {SIG_IGN}, {SIG_IGN}, 8) = 0 alarm(0) = 0 connect(3, {sa_family=AF_INET, sin_port=htons(1372), sin_addr=inet_addr("192.168.5.1")}, 16) = 0 getsockopt(3, SOL_IP, IP_OPTIONS, "", [0]) = 0 getsockname(3, {sa_family=AF_INET, sin_port=htons(20000), sin_addr=inet_addr("192.168.5.2")}, [16]) = 0 socket(PF_UNIX, SOCK_STREAM, 0) = 4 connect(4, {sa_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory) close(4) = 0 open("/etc/host.conf", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0644, st_size=17, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000 read(4, "order hosts,bind\n", 4096) = 17 read(4, "", 4096) = 0 close(4) = 0 munmap(0x40014000, 4096) = 0 open("/etc/hosts", O_RDONLY) = 4 fcntl64(4, F_GETFD) = 0 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0 fstat64(4, {st_mode=S_IFREG|0644, st_size=62, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000 read(4, "127.0.0.1 localhost.localdomain"..., 4096) = 62 read(4, "", 4096) = 0 close(4) = 0 munmap(0x40014000, 4096) = 0 open("/etc/ld.so.cache", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0644, st_size=13889, ...}) = 0 old_mmap(NULL, 13889, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40014000 close(4) = 0 open("/lib/libnss_dns.so.2", O_RDONLY) = 4 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\\\16\0"..., 512) = 512 fstat64(4, {st_mode=S_IFREG|0755, st_size=13424, ...}) = 0 old_mmap(NULL, 16240, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4014a000 old_mmap(0x4014d000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x2000) = 0x4014d000 close(4) = 0 open("/lib/libresolv.so.2", O_RDONLY) = 4 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\330*\0"..., 512) = 512 fstat64(4, {st_mode=S_IFREG|0755, st_size=57732, ...}) = 0 old_mmap(NULL, 71216, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4014e000 old_mmap(0x4015c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0xd000) = 0x4015c000 old_mmap(0x4015d000, 9776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4015d000 close(4) = 0 munmap(0x40014000, 13889) = 0 open("/dev/urandom", O_RDONLY) = 4 read(4, "b\226\201\252\200$q\'u\3109\"\311\20\35c\276\233L\334\361"..., 256) = 256 close(4) = 0 open("/dev/urandom", O_RDONLY) = 4 read(4, "\320b\355\303p\31V1\"\261\350\321Ww\341\312\37\216\34}"..., 136) = 136 close(4) = 0 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4 connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.5.2")}, 28) = 0 send(4, "K\332\1\0\0\1\0\0\0\0\0\0\0011\0015\003168\003192\7in-"..., 42, 0) = 42 gettimeofday({1103688092, 868476}, NULL) = 0 poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 5000) = 1 ioctl(4, FIONREAD, [95]) = 0 recvfrom(4, "K\332\205\200\0\1\0\1\0\1\0\0\0011\0015\003168\003192\7"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.5.2")}, [16]) = 95 close(4) = 0 brk(0) = 0x8052000 brk(0x8053000) = 0x8053000 socket(PF_UNIX, SOCK_STREAM, 0) = 4 connect(4, {sa_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory) close(4) = 0 open("/etc/hosts", O_RDONLY) = 4 fcntl64(4, F_GETFD) = 0 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0 fstat64(4, {st_mode=S_IFREG|0644, st_size=62, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000 read(4, "127.0.0.1 localhost.localdomain"..., 4096) = 62 read(4, "", 4096) = 0 close(4) = 0 munmap(0x40014000, 4096) = 0 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4 connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.5.2")}, 28) = 0 send(4, "&\26\1\0\0\1\0\0\0\0\0\0\2gw\10internal\0\0\1\0\1", 29, 0) = 29 gettimeofday({1103688092, 885287}, NULL) = 0 poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 5000) = 1 ioctl(4, FIONREAD, [78]) = 0 recvfrom(4, "&\26\205\200\0\1\0\1\0\1\0\1\2gw\10internal\0\0\1\0\1\300"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.5.2")}, [16]) = 78 close(4) = 0 write(2, "connect to [192.168.5.2] from gw"..., 60) = 60 write(2, "\n", 1) = 1 select(16, [0 3], NULL, NULL, NULL) = 1 (in [3]) read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192 write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192 select(16, [0 3], NULL, NULL, NULL) = 1 (in [3]) read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192 write(1, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192 ... ... ... select(16, [0 3], NULL, NULL, NULL) = 1 (in [3]) read(3, "@\205\300t(\213D$\24\211E\f\213\213\224\0\0\0Q\350hG\0"..., 8192) = 8192 write(1, "@\205\300t(\213D$\24\211E\f\213\213\224\0\0\0Q\350hG\0"..., 8192) = 8192 select(16, [0 3], NULL, NULL, NULL) = 1 (in [3]) read(3, 0x804e3a8, 8192) = -1 EAGAIN (Resource temporarily unavailable) close(3) = 0 write(2, " sent 0, rcvd 81641472", 22) = 22 write(2, " : Resource temporarily unavaila"..., 36) = 36 exit_group(0) = ? Поскольку никаким O_NONBLOCK и не пахнет, могу сделать предположение, что не хватает памяти под буфера в ядре. -- WBW Sergey A. Cherukhin --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/65778ad8e0f7.html, оценка из 5, голосов 10
|