zwisający curl (zepsuty kernel?)
Paweł A. Gajda
mis w k2.net.pl
Pią, 19 Paź 2001, 10:34:00 CEST
środa 17/10/2001 13:13:26, Michal Moskal:
> Poczyniłem pewne debugację znanego problemu zwisu curla
> na ściąganiu plików.
>
> Strace:
>
> Server (pure-ftpd 0.99.1b-1) :
>
> 8879 read(0, "RETR 9wm-1.2-1.i686.rpm\r\n", 4111) = 25
> 8879 open("9wm-1.2-1.i686.rpm", O_RDONLY|O_LARGEFILE) = 5
> 8879 fstat(5, {st_mode=S_IFREG|0644, st_size=24519, ...}) = 0
> 8879 alarm(900) = 1800
> 8879 select(5, [4], NULL, NULL, {900, 0}) = 1 (in [4], left {900, 0})
> 8879 accept(4, {sin_family=AF_INET, sin_port=htons(1676), sin_addr=inet_addr("192.168.1.1")}}, [16]) = 6
> 8879 setsockopt(6, SOL_IP, IP_TOS, [8], 4) = 0
> 8879 setsockopt(6, SOL_SOCKET, SO_KEEPALIVE, [0], 4) = 0
> 8879 setsockopt(6, SOL_SOCKET, SO_LINGER, [0], 8) = 0
> ^^^^^^^^^ ^^^
> To ciekawe, nie wiem czy dobrze rozumiem manpage socket(7), ale
> LINGER==0 znaczy że wyśle reszte danych in background, czy, że
> ich w ogóle nie wyśle? Pozostaje mi chyba tylko use the source
> Luke... :^)
To pierwsze, a w razie porażki wysyłki proces się o tym nie dowie.
W ogóle jest to zachowanie domyślne, więc to wyłączenie SO_LINGER
nic nie zmienia.
> Interesujące fakty:
[ciach]
> Wnioski: trzeba by sprawdzić 2.2.19 od Linusa (niestety nie mam źródeł
> w domu :[ ), testy (nie wiem jakie robiłeś Pawle, czy mógłbyś je powtórzyć
> z 2.4.* i 2.2.19 od Linusa) chyba najlepiej robić z pure-ftpd, bo
> najczęściej się wiesza :^).
U mnie się wiesza też i na ftpd-BSD (klient i serwer na kernelu z PLD).
Może się zbiorę w weekend i to potestuję.
Więcej informacji o liście dyskusyjnej pld-installer