Hello, Zorp 3.0.8 GPL csomagbol, Debian Etch. A kliens elindit egy hosszabb kerest, ami egy dokumentumot general. Sajnos a fejlesztok ugy keszitettek el az alkalmazast, hogy teljesen szinkron modon fut minden, tehat ha az alkalmazas 90 percig kesziti a kimenetet, akkor az "termeszetes". Hogy tudom lebeszelni a Zorp-ot arrol, hogy kozben lebontsa a kapcsolatot? Most 10mp utan bont, a modulban talaltam egy timeout_request-et, ami 10mp, de van egy timeout attributum is. Tudnatok segiteni, melyik pontosan mire vonatkozik, ill. mit allitsak be? Koszonom: a.
On Mon, 5 Nov 2007 09:51:43 +0100 Hegedüs Ervin <airween@freemail.hu> wrote:
Hello,
Zorp 3.0.8 GPL csomagbol, Debian Etch.
A kliens elindit egy hosszabb kerest, ami egy dokumentumot general. Sajnos a fejlesztok ugy keszitettek el az alkalmazast, hogy teljesen szinkron modon fut minden, tehat ha az alkalmazas 90 percig kesziti a kimenetet, akkor az "termeszetes".
Hogy tudom lebeszelni a Zorp-ot arrol, hogy kozben lebontsa a kapcsolatot? Most 10mp utan bont, a modulban talaltam egy timeout_request-et, ami 10mp, de van egy timeout attributum is.
Tudnatok segiteni, melyik pontosan mire vonatkozik, ill. mit allitsak be?
Nem tudom, GPL-es Zorpban megy-e, nekem hasonló timeoutos problémát kellett leküzdeni kereskedelmi Zorppal (mindezt a Balabit segítségével, tehát a megoldásért őket illeti a köszönet). Ehhez én a Zorp által alapból nem használt tcp keepalive-ot használtam fel, mégpedig egy új proxyosztállyal, amely az alábbi módon néz ki: import socket from socket import * def config(self): s = socket.fromfd(self.session.client_stream.fd, socket.AF_INET, socket.SOCK_STREAM) <<<< ez itt egy sor! s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) Ez a kliens oldal felé úgy nyitja meg a socketet, hogy a keepalive értéket (azaz hogy kell-e keepalive-okat küldeni) beállítja, nekem ez kellett, gondolom a tofd a server oldali descriptor, tehát értelemszerűen módosítható. Ezek után a /proc/sys/net/ipv4/tcp_keepalive_time értéket célszerű átállítani valami neked megfelelőre a defaultról, és utána a fenti proxy timeoutját akár végtelenre is állíthatod. -- Friczy 'Death is not a bug, it's a feature'
hello,
Hogy tudom lebeszelni a Zorp-ot arrol, hogy kozben lebontsa a kapcsolatot? Most 10mp utan bont, a modulban talaltam egy timeout_request-et, ami 10mp, de van egy timeout attributum is.
Tudnatok segiteni, melyik pontosan mire vonatkozik, ill. mit allitsak be?
Nem tudom, GPL-es Zorpban megy-e, nekem hasonló timeoutos problémát kellett leküzdeni kereskedelmi Zorppal (mindezt a Balabit segítségével, tehát a megoldásért őket illeti a köszönet). Ehhez én a Zorp által alapból nem használt tcp keepalive-ot használtam fel, mégpedig egy új proxyosztállyal, amely az alábbi módon néz ki:
import socket from socket import * def config(self): s = socket.fromfd(self.session.client_stream.fd, socket.AF_INET, socket.SOCK_STREAM) <<<< ez itt egy sor! s.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
Ez a kliens oldal felé úgy nyitja meg a socketet, hogy a keepalive értéket (azaz hogy kell-e keepalive-okat küldeni) beállítja, nekem ez kellett, gondolom a tofd a server oldali descriptor, tehát értelemszerűen módosítható.
ezt ertem, es koszonom, mar csak abban kellene segiteni, hogy ezt az esetet hogy kezeljem: mivel a kliens var a szerverre, ezert jogos a felvetesed, hogy a szerver fele kell beallitani, viszont ilyenkor a klienssel mi lesz? Abba az iranyba nem kell beallitani?
Ezek után a /proc/sys/net/ipv4/tcp_keepalive_time értéket célszerű átállítani valami neked megfelelőre a defaultról, és utána a fenti proxy timeoutját akár végtelenre is állíthatod.
de melyik timeout-ot? :) a "sima" timeout-ot, vagy a request_timeout-ot? Koszonom: a.
On Mon, 5 Nov 2007 11:47:50 +0100 Hegedüs Ervin <airween@freemail.hu> wrote:
ezt ertem, es koszonom,
mar csak abban kellene segiteni, hogy ezt az esetet hogy kezeljem: mivel a kliens var a szerverre, ezert jogos a felvetesed, hogy a szerver fele kell beallitani, viszont ilyenkor a klienssel mi lesz? Abba az iranyba nem kell beallitani?
Én beállítanám mindkét irányban.
de melyik timeout-ot? :) a "sima" timeout-ot, vagy a request_timeout-ot?
A sima timeoutot. -- Friczy 'Death is not a bug, it's a feature'
On Mon, 2007-11-05 at 09:51 +0100, Hegedüs Ervin wrote:
Hello,
Zorp 3.0.8 GPL csomagbol, Debian Etch.
A kliens elindit egy hosszabb kerest, ami egy dokumentumot general. Sajnos a fejlesztok ugy keszitettek el az alkalmazast, hogy teljesen szinkron modon fut minden, tehat ha az alkalmazas 90 percig kesziti a kimenetet, akkor az "termeszetes".
Hogy tudom lebeszelni a Zorp-ot arrol, hogy kozben lebontsa a kapcsolatot? Most 10mp utan bont, a modulban talaltam egy timeout_request-et, ami 10mp, de van egy timeout attributum is.
Tudnatok segiteni, melyik pontosan mire vonatkozik, ill. mit allitsak be?
a zorp http proxy-ban ket timeout van: 1) a keepalive eseten a kovetkezo keresre valo varakozas. ez a zorp eseten alabpol 10 mp. (== timeout_request) 2) a keres beolvasasa _utan_, az adatatvitelre vonatkozo timeout (==timeout) Ha a kerest a kliens elkuldte, es ezek utan a szerver tolja vissza a valaszt, csak lassan, akkor neked a "timeout" erteket kell novelned. Ez alapbol elvileg 10 perc, nem pedig 10 masodperc. Ha a Zorp 10 mp utan bont, akkor a kliens meg el sem kuldte a kereset. Te is ki tudod probalni kezzel: * telnetelj be a Zorp HTTP proxy-jara, * ne kuldj semmit * a Zorp elvben 10 mp utan bontja a kapcsolatot Ha viszont elkuldesz egy valid GET kerest: "GET / HTTP/1.1" utana mar nem bont 10 percig. -- Bazsi
Sziasztok,
a zorp http proxy-ban ket timeout van: 1) a keepalive eseten a kovetkezo keresre valo varakozas. ez a zorp eseten alabpol 10 mp. (== timeout_request) 2) a keres beolvasasa _utan_, az adatatvitelre vonatkozo timeout (==timeout)
Ha a kerest a kliens elkuldte, es ezek utan a szerver tolja vissza a valaszt, csak lassan, akkor neked a "timeout" erteket kell novelned.
ok,
Ez alapbol elvileg 10 perc, nem pedig 10 masodperc.
Ha a Zorp 10 mp utan bont, akkor a kliens meg el sem kuldte a kereset.
Te is ki tudod probalni kezzel: * telnetelj be a Zorp HTTP proxy-jara, * ne kuldj semmit * a Zorp elvben 10 mp utan bontja a kapcsolatot
igen, ezt probaltam, mielott elkuldtem volna a mailt, innen (is) a 10mp-es ertek.
Ha viszont elkuldesz egy valid GET kerest:
"GET / HTTP/1.1"
utana mar nem bont 10 percig.
ok, koszonom, tehat nem kell a Friczy által leírt trükköket végigcsinálni? Köszönöm: a. -- Minden baj forrása az 1/x függvény.
On Mon, 5 Nov 2007 20:58:35 +0100 Hegedüs Ervin <airween@freemail.hu> wrote:
tehat nem kell a Friczy által leírt trükköket végigcsinálni?
Amit én írtam, az sima plugnál működik, http-nél több lehetőség van mindenféle timeout hangolásra. -- Friczy 'Death is not a bug, it's a feature'
On Tue, 2007-11-06 at 08:29 +0100, Nemeth Gyorgy wrote:
On Mon, 5 Nov 2007 20:58:35 +0100 Hegedüs Ervin <airween@freemail.hu> wrote:
tehat nem kell a Friczy által leírt trükköket végigcsinálni?
Amit én írtam, az sima plugnál működik, http-nél több lehetőség van mindenféle timeout hangolásra.
A Friczynel levo problema az volt, hogy a kliens v. a szerver "eltunt", es nem reagalt. Nalad elvileg a mindket vegpont megvan, igy valaszolnanak a keepalive uzenetekre is. A TCP keepalive arra valo, hogy ha egy vegpontot lehuznak a netrol anelkul, hogy elkoszonne, akkor erre a masik fel ra tudjon jonni. -- Bazsi
participants (3)
-
Balazs Scheidler
-
Hegedüs Ervin
-
Nemeth Gyorgy