Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: flipz в Feb 12, 2009, 19:48



Титла: squid3
Публикувано от: flipz в Feb 12, 2009, 19:48
имам работещ squid2.4 но е морално остарял и искал да ползвам ver3
конфигурирам го според документацията transparent и го компилирам с поддръжка на нетфилтер.
./configure --prefix=/usr/local/squid --enable-ssl --enable-linux-netfilter
make all
make install

2009/02/12 19:42:49| Done scanning /sda3/squid swaplog (0 entries)
2009/02/12 19:42:49| Finished rebuilding storage from disk.
2009/02/12 19:42:49|         0 Entries scanned
2009/02/12 19:42:49|         0 Invalid entries.
2009/02/12 19:42:49|         0 With invalid flags.
2009/02/12 19:42:49|         0 Objects loaded.
2009/02/12 19:42:49|         0 Objects expired.
2009/02/12 19:42:49|         0 Objects cancelled.
2009/02/12 19:42:49|         0 Duplicate URLs purged.
2009/02/12 19:42:49|         0 Swapfile clashes avoided.
2009/02/12 19:42:49|   Took 0.48 seconds (  0.00 objects/sec).
2009/02/12 19:42:49| Beginning Validation Procedure
2009/02/12 19:42:49|   Completed Validation Procedure
2009/02/12 19:42:49|   Validated 25 Entries
2009/02/12 19:42:49|   store_swap_size = 0
2009/02/12 19:42:49| storeLateRelease: released 0 objects
2009/02/12 19:42:51| IpIntercept.cc(132) NetfilterInterception:  NF getsockopt(SO_ORIGINAL_DST) failed on FD 10: (11) Resource temporarily unavailable
2009/02/12 19:42:51| assertion failed: store_swapout.cc:315: "mem->swapout.sio == self"

това е грешката а инф. в гоогле няма и тн.

С която и версия от 3-та серия да пробвам .. резултатът е еднакав.
Ако някой може да даде съвет или конф. файл който ползва ще ми е от голяма помощ.



Титла: Re: squid3
Публикувано от: neter в Feb 12, 2009, 21:27
Засега премествам темата ти в този раздел, тъй като повече ми прилича на бъг в squid или на някакво друго програмно недоразумение. Не съм обаче никак навътре в C и C++ и това ми предположение може и да е грешно, а съветът, който ще ти дам, да е глупав и безпочвен :)
Гледам, че на въпросния ред 315 в store_swapout.cc седи това:
Код
GeSHi (C++):
  1. assert(mem->swapout.sio == self);
гледайки разни други файлчета, в които се използва тази функция, оставам с впечатлението, че трябва да се вмъкнат още 2 хедърни файла към store_swapout.cc, които се грижат за това - става дума за assert.h и memory.h (или mem.h, зависи какво има в /usr/include). Пробвай да добавиш тези два реда горе в кода на store_swapout.cc, където са описани останалите include-и:
Код
GeSHi (C++):
  1. #include <assert.h>
  2. #include <memory.h>
Замести memory.h с mem.h, ако при теб файлът се казва така (не знам каква е разликата). И след това пробвай да компилираш и виж какъв ще е резултатът. Вижда се, че в store_swapout.cc вмъкнатите файлове са оградени от кавички, а не от скоби (за разликата в което също ми трябва повече четене, за да го разбера), така че може и тези два реда да е нужно да изглеждат така:
Код
GeSHi (C++):
  1. #include "assert.h"
  2. #include "memory.h"
Друго за момента не мога да предложа. Нека се намеси някой C/C++ програмист и да изясни картинката :)


Титла: Re: squid3
Публикувано от: neter в Feb 12, 2009, 21:48
Между другото, версия 3.0 или версия 3.1 пробваш? Относно грешката, не обърнах внимание, че първо се появява грешка с посочен файл IpIntercept.cc и след това е грешката от store_swapout.cc. Интересно какви ще ги мъдрим пък с този файл, тъй като не виждам нищо по въпроса (или не успявам да прочета кода както трябва) на въпросния ред 132 от IpIntercept.cc или около него.


Титла: Re: squid3
Публикувано от: laskov в Feb 12, 2009, 22:35
Има разлика в конфигурирането и изискванията на прозрачен squid 2.х и 3.х. Мисля, че това е необходимото ти HowTo ($2)


Титла: Re: squid3
Публикувано от: flipz в Feb 15, 2009, 23:07
squid-3.0.STABLE13.tar.bz2 това е .. версията.
явно трябва да се прекомпилира кернал и тн .. което няма да направя, понеже закрепих да работи добре вер. 2.7 последен рииз 2009-та.
в опътването на ласков става въпрос за tproxy, а аз ползвам transparent  не знам дали има разлика.

transparent  Support for transparent interception of
                   outgoing requests without browser settings.
                   NP: disables authentication on the port.

tproxy           Support Linux TPROXY for spoofing outgoing
                    connections using the client IP address.
                    NP: disables authentication on the port.


Титла: Re: squid3
Публикувано от: laskov в Feb 16, 2009, 09:47
Да, явно са различни неща. Ето цитат от ./configure --help
Цитат
  --enable-linux-netfilter
                          Enable Transparent Proxy support for Linux (Netfilter) systems.
  --enable-linux-tproxy
                          Enable real Transparent Proxy support for Netfilter TPROXY.
Ще трябва още четене :)


Титла: Re: squid3
Публикувано от: remotex в Feb 16, 2009, 13:38
flipz: дистро, версия 32 или 64 бита и т.н. и нямаше ли готов пакет с нетфилтър?
neter: щом се е компилирало значи си е намерило "хедърите" а онзи ред гърми по време на изпълнение защото вероятно нещо друго т.е. някой друг обект държи mem->swapout.sio вместо текущия  self - затова е сложена там тази проверка, да не прецакаме нещата като си мислим че сме единствени self :-) чиста проба "програмна грешка" aka BUG
...възможно е и да е поради объркване 32/64 бит ама тогава щеше да гърми на много и различни места
пробва ли с максимум дебъг инфо да го стартираш, strace (за първата грешка) и пр.


Титла: Re: squid3
Публикувано от: flipz в Feb 16, 2009, 19:26
flipz: дистро, версия 32 или 64 бита и т.н. и нямаше ли готов пакет с нетфилтър?
neter: щом се е компилирало значи си е намерило "хедърите" а онзи ред гърми по време на изпълнение защото вероятно нещо друго т.е. някой друг обект държи mem->swapout.sio вместо текущия  self - затова е сложена там тази проверка, да не прецакаме нещата като си мислим че сме единствени self :-) чиста проба "програмна грешка" aka BUG
...възможно е и да е поради объркване 32/64 бит ама тогава щеше да гърми на много и различни места
пробва ли с максимум дебъг инфо да го стартираш, strace (за първата грешка) и пр.

Благодаря за инф. единственото което мога да направя е да ти дам инф. по въпроса. Понеже подкарах надеждна вер. от 2.7 не съм се занимавал, а и не ми се повече от това.

root@server:~# uname -a
Linux server 2.6.27.10-smp #1 SMP Sat Feb 7 20:07:44 EET 2009 i686 Pentium(R) Dual-Core  CPU      E5200  @ 2.50GHz GenuineIntel GNU/Linux
root@server:~#

сега ми издумка и кернел-а ..
root@server:/# ping -I 78.85.196.162 78.85.196.161 -s 1942
PING 77.85.194.161 (77.85.194.161) from 77.85.194.162 : 1942(1970) bytes of data.
Message from syslogd@server at Mon Feb 16 18:48:22 2009 ...
server kernel: skb_over_panic: text:f8d49667 len:1984 put:1984 head:f1054800 data:f1054810 tail:0xf1054fd0 end:0xf1054e80 dev:eth1
Message from syslogd@server at Mon Feb 16 18:48:22 2009 ...
server kernel: ------------[ cut here ]------------
Message from syslogd@server at Mon Feb 16 18:48:22 2009 ...
server kernel: invalid opcode: 0000 [#1] SMP
Message from syslogd@server at Mon Feb 16 18:48:22 2009 ...
server kernel: Process nacctd (pid: 26723, ti=e9250000 task=e4832260 task.ti=e9250000)

тази вечер трябва да го сменя, че .. да не стане някоя беля когато не съм на линия .. а и на мен все пак ми трябва инф. за пинг-а до гейта + че си ползвам разни неща като cacti oreon nagios i tn.