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