[TH] Problem z PF_RING

Arkadiusz Patyk areq w pld-linux.org
Czw, 14 Cze 2007, 22:44:12 CEST


On Thu, 14 Jun 2007 21:19:01 +0200, you wrote:

>On Thu, Jun 14, 2007 at 08:16:15PM +0200, Arkadiusz Patyk wrote:
>[...]
>> Musiałem niestety przy with  pfring wyłączyć optymalizację gcc (-O0),
>> ponieważ z optymalizacją programy segementują po odebraniu jednego
>> pakietu ;(
>> 
>> Problem jest znany. Obejście to właśnie -O0.
>> Znalazłem patcha który niby miał rozwiązywac problem:
>> http://listgateway.unipi.it/pipermail/ntop-misc/2007-April/000865.html
>> ale lipa, nadal z -O2 segmentuje.
>> 
>> 
>> Prośba do osób biegłych w problemach gcc o rzucenie okiem.
>> 
>> Co trzeba:
>> kernel 2.6.21.5-0.1

moge dać wjazd na maszynę z takim jajkiem z TH

>> wywalić w libpcap.spec -O0
>> rpmbuild -bb --with pfring libpcap.spec
>> 
>> i wywołanie tcpdump -i eth0 - jeśli jest źle wywali się po chwili.
>
>A możesz pokazać backtrace z gdb na bibliotekach z debuginfo
>(z pakietów z --debug, albo wczytanym z *-debuginfo)?

Nie wiem czy wystarczy tych debug:
filesystem-debuginfo-3.0-14.i686
libpcap-debuginfo-0.9.5-1.i686
glibc-debuginfo-2.6-3.i686
libpfring-debuginfo-0.9.4-0.20070610.2.i686

tcpdump: verbose output suppressed, use -v or -vv for full protocol
decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
00:38:58.354766 IP 10.9.8.247.22 > 10.9.8.100.14328: P
3006680583:3006680775(192) ack 1798622043 win 104 <nop,nop,timestamp
29117824 3645490475>

Program received signal SIGSEGV, Segmentation fault.
0x37f80016 in ?? ()
(gdb) bt
#0  0x37f80016 in ?? ()
#1  0x081b6f88 in ?? ()
#2  0xffffffff in ?? ()
#3  0x0808da02 in ?? ()
#4  0xbfc9b31c in ?? ()
#5  0xbfc9b338 in ?? ()
#6  0xb7fed630 in _dl_runtime_resolve () from /lib/ld-linux.so.2
#7  0x0808e8eb in ?? ()
#8  0x081b6f88 in ?? ()
#9  0xffffffff in ?? ()
#10 0x0808da02 in ?? ()
#11 0xbfc9b31c in ?? ()
#12 0xb7e9a2c7 in ?? () from /usr/lib/libpcap.so.0
#13 0x00000060 in ?? ()
#14 0xb7ce9c60 in ?? () from /lib/libc.so.6
#15 0xb7fe3549 in check_match.9397 () from /lib/ld-linux.so.2
#16 0xb7fe3a96 in do_lookup_x () from /lib/ld-linux.so.2
#17 0xb7fe3b7c in _dl_lookup_symbol_x () from /lib/ld-linux.so.2
#18 0xb7cfbfd3 in __libc_start_main (main=0x808de83
<geteuid w plt+277975>, argc=2, ubp_av=0xbfc9b3d4, init=0x8099375,
    fini=0x8099374, rtld_fini=0xb7fe87a8 <_dl_fini>,
stack_end=0xbfc9b3cc) at libc-start.c:222
#19 0x0804a0e1 in ?? ()

jak dołeze tcpdump-debuginfo
to:
tcpdump: verbose output suppressed, use -v or -vv for full protocol
decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
00:43:01.136766 IP 10.9.8.247.22 > 10.9.8.100.14328: P
3006707303:3006707495(192) ack 1798627899 win 104 <nop,nop,timestamp
29360606 3645490960>

Program received signal SIGSEGV, Segmentation fault.
0x37f80016 in ?? ()
(gdb) bt
#0  0x37f80016 in ?? ()
#1  0x081b6f88 in ?? ()
#2  0xffffffff in ?? ()
#3  0x0808da02 in info (verbose=<value optimized out>) at
./tcpdump.c:1151
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

-- 
Arkadiusz Patyk [areq<>pld-linux:org] [http://rescuecd.pld-linux.org/]
[IRC:areq skype:arekpatyk  GG:1383 jid:arek<>patyk:net]


Więcej informacji o liście dyskusyjnej pld-devel-pl