redirector вдруг упал

Обсуждение программы редиректора
Ответить
Mosga
Сообщения: 7
Зарегистрирован: Чт мар 17, 2011 20:29

redirector вдруг упал

Сообщение Mosga »

Здравствуйте, упал на ровном месте rejik. Стабильная версия 3.2.8 с патчем для поддержки ipv6, сквид дистрибутивный squid-3.1.10-1.el6_2.1.x86_64, система Scientific Linux 6.1.

abrt оставил мне это (squid/redirector/glibc с debuginfo, тут он сообщает неоответствие debuginfo по ядру, думаю, не критично):

Код: Выделить всё

[root@lime ~]# abrt-cli -b  -i bc83a0c7af75eab26a565d6c83d242b970514be3
ID сбоя:           23:bc83a0c7af75eab26a565d6c83d242b970514be3
Последний сбой:         Втр 03 Янв 2012 19:58:57
Анализатор:           CCpp
Компонент:          redirector
Пакет:            redirector-3.2.8-msg2
Команда:            (redirector) /etc/squid/redirector/redirector.conf
Программа:         /usr/sbin/redirector
Система:             Scientific Linux release 6.1 (Carbon), ядро 2.6.32-131.21.1.el6.x86_64
Причина:             Process /usr/sbin/redirector was killed by signal 11 (SIGSEGV)
Дамп ядра:     /var/spool/abrt/ccpp-1325606337-5874/coredump
Рейтинг:           4
Функция сбоя:     parse_input
Имя узла:           lime.asgard

Протокол сбоя:
Missing separate debuginfo for 
Try: yum --disablerepo='*' --enablerepo='*-debuginfo' install /usr/lib/debug/.build-id/9a/179ee85386e24c8b1a58cd2c01a95664ab9018 /var/cache/abrt-di/usr/lib/debug/.build-id/9a/179ee85386e24c8b1a58cd2c01a95664ab9018
[New Thread 5874]
Core was generated by `(redirector) /etc/squid/redirector/redirector.conf'.
Program terminated with signal 11, Segmentation fault.
#0  parse_input (str=0x7fff68485000 <Address 0x7fff68485000 out of bounds>) at parse_input.c:97
97	    while(*str!=' ')

Thread 1 (Thread 5874):
#0  parse_input (str=0x7fff68485000 <Address 0x7fff68485000 out of bounds>) at parse_input.c:97
        k = <value optimized out>
        hex = "3A"
        k1 = 0x21010ff ""
        c = <value optimized out>
        x = 58
#1  0x0000000000401565 in main (argc=<value optimized out>, argv=<value optimized out>) at redirector.c:81
        z = <value optimized out>
        etmp = "REDIRECTOR: WARNING: Can't parse url: http://bbc.112.2o7.net/b/ss/bbcglobalnewsdev,bbcrussian/1/H.21/s11838968794325?AQB=1&pccr=true&&ndh=1&t=3/0/2012 19:58:56 2 -240&ce=ISO-8859-1&cdp=3&pageName=bbc "...
        str = "http://bbc.112.2o7.net/b/ss/bbcglobalnewsdev,bbcrussian/1/H.21/s16243294370520?AQB=1&pccr=true&&ndh=1&t=3/0/2012%2019%3A58%3A56%202%20-240&ce=ISO-8859-1&cdp=3&pageName=bbc%20russian%7C%u043B%u0435%u04"...
        flag = <value optimized out>
From                To                  Syms Read   Shared Object Library
0x0000003db6801540  0x0000003db681adb8  Yes         /lib64/libpcre.so.0.0.1
0x0000003db4c1ea20  0x0000003db4d4c39c  Yes         /lib64/libc-2.12.so
0x0000003db4800b00  0x0000003db48197ab  Yes         /lib64/ld-2.12.so
$1 = 0x0
No symbol "__glib_assert_msg" in current context.
rax            0x21000f0	34603248
rbx            0x2101fe8	34611176
rcx            0x0	0
rdx            0x2101fe7	34611175
rsi            0x4069f5	4221429
rdi            0x7fff68480d12	140734942940434
rbp            0x21010ff	0x21010ff
rsp            0x7fff684813c0	0x7fff684813c0
r8             0x3db4f9b580	265029268864
r9             0x100	256
r10            0x2	2
r11            0x2	2
r12            0x7fff68485000	140734942957568
r13            0x21010ff	34607359
r14            0x7fff684813d0	140734942942160
r15            0x7fff684813cc	140734942942156
rip            0x40245c	0x40245c <parse_input+316>
eflags         0x10216	[ PF AF IF RF ]
cs             0x33	51
ss             0x2b	43
ds             0x0	0
es             0x0	0
fs             0x0	0
gs             0x0	0
Dump of assembler code for function parse_input:
   0x0000000000402320 <+0>:	push   %r15
   0x0000000000402322 <+2>:	push   %r14
   0x0000000000402324 <+4>:	push   %r13
   0x0000000000402326 <+6>:	push   %r12
   0x0000000000402328 <+8>:	push   %rbp
   0x0000000000402329 <+9>:	push   %rbx
   0x000000000040232a <+10>:	sub    $0x28,%rsp
   0x000000000040232e <+14>:	movzbl (%rdi),%edx
   0x0000000000402331 <+17>:	mov    0x206150(%rip),%rax        # 0x608488
   0x0000000000402338 <+24>:	cmp    $0x20,%dl
   0x000000000040233b <+27>:	je     0x40237a <parse_input+90>
   0x000000000040233d <+29>:	mov    %dl,(%rax)
   0x000000000040233f <+31>:	cmpb   $0x0,(%rdi)
   0x0000000000402342 <+34>:	mov    $0x1,%edx
   0x0000000000402347 <+39>:	jne    0x40236a <parse_input+74>
   0x0000000000402349 <+41>:	jmpq   0x4024e0 <parse_input+448>
   0x000000000040234e <+46>:	xchg   %ax,%ax
   0x0000000000402350 <+48>:	add    $0x1,%edx
   0x0000000000402353 <+51>:	mov    %cl,(%rax)
   0x0000000000402355 <+53>:	cmp    $0xfff,%edx
   0x000000000040235b <+59>:	jg     0x4024e0 <parse_input+448>
   0x0000000000402361 <+65>:	cmpb   $0x0,(%rdi)
   0x0000000000402364 <+68>:	je     0x4024e0 <parse_input+448>
   0x000000000040236a <+74>:	add    $0x1,%rdi
   0x000000000040236e <+78>:	add    $0x1,%rax
   0x0000000000402372 <+82>:	movzbl (%rdi),%ecx
   0x0000000000402375 <+85>:	cmp    $0x20,%cl
   0x0000000000402378 <+88>:	jne    0x402350 <parse_input+48>
   0x000000000040237a <+90>:	movb   $0x0,(%rax)
   0x000000000040237d <+93>:	lea    0x1(%rdi),%r12
   0x0000000000402381 <+97>:	lea    0xc(%rsp),%r15
   0x0000000000402386 <+102>:	callq  0x4019e0 <raw_change>
   0x000000000040238b <+107>:	mov    0x2060f6(%rip),%rbp        # 0x608488
   0x0000000000402392 <+114>:	mov    0x206047(%rip),%rbx        # 0x6083e0
   0x0000000000402399 <+121>:	lea    0x10(%rsp),%r14
   0x000000000040239e <+126>:	movzbl 0x0(%rbp),%eax
   0x00000000004023a2 <+130>:	add    $0x1,%rbx
   0x00000000004023a6 <+134>:	jmp    0x4023bf <parse_input+159>
   0x00000000004023a8 <+136>:	nopl   0x0(%rax,%rax,1)
   0x00000000004023b0 <+144>:	movzbl 0x1(%rbp),%eax
   0x00000000004023b4 <+148>:	lea    0x1(%rbp),%r13
   0x00000000004023b8 <+152>:	add    $0x1,%rbx
   0x00000000004023bc <+156>:	mov    %r13,%rbp
   0x00000000004023bf <+159>:	test   %al,%al
   0x00000000004023c1 <+161>:	lea    -0x1(%rbx),%rdx
   0x00000000004023c5 <+165>:	je     0x402420 <parse_input+256>
   0x00000000004023c7 <+167>:	cmp    $0x25,%al
   0x00000000004023c9 <+169>:	mov    %al,-0x1(%rbx)
   0x00000000004023cc <+172>:	jne    0x4023b0 <parse_input+144>
   0x00000000004023ce <+174>:	movzbl 0x1(%rbp),%eax
   0x00000000004023d2 <+178>:	lea    0x1(%rbp),%r13
   0x00000000004023d6 <+182>:	cmp    $0x25,%al
   0x00000000004023d8 <+184>:	je     0x4024f8 <parse_input+472>
   0x00000000004023de <+190>:	test   %al,%al
   0x00000000004023e0 <+192>:	je     0x4023b8 <parse_input+152>
   0x00000000004023e2 <+194>:	cmpb   $0x0,0x2(%rbp)
   0x00000000004023e6 <+198>:	je     0x4023b8 <parse_input+152>
   0x00000000004023e8 <+200>:	mov    %al,0x10(%rsp)
   0x00000000004023ec <+204>:	movzbl 0x2(%rbp),%eax
   0x00000000004023f0 <+208>:	mov    %r15,%rdx
   0x00000000004023f3 <+211>:	mov    $0x4069f3,%esi
   0x00000000004023f8 <+216>:	mov    %r14,%rdi
   0x00000000004023fb <+219>:	movb   $0x0,0x12(%rsp)
   0x0000000000402400 <+224>:	mov    %al,0x11(%rsp)
   0x0000000000402404 <+228>:	xor    %eax,%eax
   0x0000000000402406 <+230>:	callq  0x401020 <__isoc99_sscanf@plt>
   0x000000000040240b <+235>:	cmp    $0x1,%eax
   0x000000000040240e <+238>:	je     0x40261d <parse_input+765>
   0x0000000000402414 <+244>:	movzbl 0x0(%r13),%eax
   0x0000000000402419 <+249>:	jmp    0x4023b8 <parse_input+152>
   0x000000000040241b <+251>:	nopl   0x0(%rax,%rax,1)
   0x0000000000402420 <+256>:	movb   $0x0,(%rdx)
   0x0000000000402423 <+259>:	mov    0x20601e(%rip),%rax        # 0x608448
   0x000000000040242a <+266>:	movb   $0x0,(%rax)
   0x000000000040242d <+269>:	mov    0x206014(%rip),%rax        # 0x608448
   0x0000000000402434 <+276>:	movb   $0x0,0x1(%rax)
   0x0000000000402438 <+280>:	mov    0x206009(%rip),%rax        # 0x608448
   0x000000000040243f <+287>:	movb   $0x0,0x2(%rax)
   0x0000000000402443 <+291>:	mov    0x205ffe(%rip),%rax        # 0x608448
   0x000000000040244a <+298>:	movb   $0x0,0x3(%rax)
   0x000000000040244e <+302>:	cmpb   $0x20,(%r12)
   0x0000000000402453 <+307>:	je     0x402463 <parse_input+323>
   0x0000000000402455 <+309>:	nopl   (%rax)
   0x0000000000402458 <+312>:	add    $0x1,%r12
=> 0x000000000040245c <+316>:	cmpb   $0x20,(%r12)
   0x0000000000402461 <+321>:	jne    0x402458 <parse_input+312>
   0x0000000000402463 <+323>:	mov    0x205f6e(%rip),%rax        # 0x6083d8
   0x000000000040246a <+330>:	lea    0x1(%r12),%rbx
   0x000000000040246f <+335>:	movb   $0x0,(%rax)
   0x0000000000402472 <+338>:	movzbl 0x1(%r12),%ebp
   0x0000000000402478 <+344>:	mov    0x206001(%rip),%r13        # 0x608480
   0x000000000040247f <+351>:	cmp    $0x20,%bpl
   0x0000000000402483 <+355>:	je     0x402508 <parse_input+488>
   0x0000000000402489 <+361>:	xor    %r12d,%r12d
   0x000000000040248c <+364>:	jmp    0x4024a6 <parse_input+390>
   0x000000000040248e <+366>:	xchg   %ax,%ax
   0x0000000000402490 <+368>:	cmpb   $0x0,(%rbx)
   0x0000000000402493 <+371>:	je     0x4024e0 <parse_input+448>
   0x0000000000402495 <+373>:	add    $0x1,%rbx
   0x0000000000402499 <+377>:	add    $0x1,%r13
   0x000000000040249d <+381>:	movzbl (%rbx),%ebp
   0x00000000004024a0 <+384>:	cmp    $0x20,%bpl
   0x00000000004024a4 <+388>:	je     0x402508 <parse_input+488>
   0x00000000004024a6 <+390>:	movsbl %bpl,%ebp
   0x00000000004024aa <+394>:	lea    0x80(%rbp),%eax
   0x00000000004024b0 <+400>:	cmp    $0x17f,%eax
   0x00000000004024b5 <+405>:	ja     0x4024c9 <parse_input+425>
   0x00000000004024b7 <+407>:	movslq %ebp,%rbp
   0x00000000004024ba <+410>:	callq  0x401200 <__ctype_tolower_loc@plt>
   0x00000000004024bf <+415>:	shl    $0x2,%rbp
   0x00000000004024c3 <+419>:	add    (%rax),%rbp
   0x00000000004024c6 <+422>:	mov    0x0(%rbp),%ebp
   0x00000000004024c9 <+425>:	add    $0x1,%r12d
   0x00000000004024cd <+429>:	mov    %bpl,0x0(%r13)
   0x00000000004024d1 <+433>:	cmp    $0x64,%r12d
   0x00000000004024d5 <+437>:	jle    0x402490 <parse_input+368>
   0x00000000004024d7 <+439>:	nopw   0x0(%rax,%rax,1)
   0x00000000004024e0 <+448>:	add    $0x28,%rsp
   0x00000000004024e4 <+452>:	mov    $0xffffffff,%eax
   0x00000000004024e9 <+457>:	pop    %rbx
   0x00000000004024ea <+458>:	pop    %rbp
   0x00000000004024eb <+459>:	pop    %r12
   0x00000000004024ed <+461>:	pop    %r13
   0x00000000004024ef <+463>:	pop    %r14
   0x00000000004024f1 <+465>:	pop    %r15
   0x00000000004024f3 <+467>:	retq   
   0x00000000004024f4 <+468>:	nopl   0x0(%rax)
   0x00000000004024f8 <+472>:	lea    0x2(%rbp),%r13
   0x00000000004024fc <+476>:	movzbl 0x2(%rbp),%eax
   0x0000000000402500 <+480>:	jmpq   0x4023b8 <parse_input+152>
   0x0000000000402505 <+485>:	nopl   (%rax)
   0x0000000000402508 <+488>:	movb   $0x0,0x0(%r13)
   0x000000000040250d <+493>:	lea    0x1(%rbx),%r12
   0x0000000000402511 <+497>:	mov    0x205f68(%rip),%rbp        # 0x608480
   0x0000000000402518 <+504>:	mov    0x205f31(%rip),%rbx        # 0x608450
   0x000000000040251f <+511>:	lea    0xc(%rsp),%r15
   0x0000000000402524 <+516>:	lea    0x10(%rsp),%r14
   0x0000000000402529 <+521>:	movzbl 0x0(%rbp),%eax
   0x000000000040252d <+525>:	add    $0x1,%rbx
   0x0000000000402531 <+529>:	jmp    0x402547 <parse_input+551>
   0x0000000000402533 <+531>:	nopl   0x0(%rax,%rax,1)
   0x0000000000402538 <+536>:	movzbl 0x1(%rbp),%eax
   0x000000000040253c <+540>:	lea    0x1(%rbp),%r13
   0x0000000000402540 <+544>:	add    $0x1,%rbx
   0x0000000000402544 <+548>:	mov    %r13,%rbp
   0x0000000000402547 <+551>:	test   %al,%al
   0x0000000000402549 <+553>:	lea    -0x1(%rbx),%rdx
   0x000000000040254d <+557>:	je     0x4025a8 <parse_input+648>
   0x000000000040254f <+559>:	cmp    $0x25,%al
   0x0000000000402551 <+561>:	mov    %al,-0x1(%rbx)
   0x0000000000402554 <+564>:	jne    0x402538 <parse_input+536>
   0x0000000000402556 <+566>:	movzbl 0x1(%rbp),%eax
   0x000000000040255a <+570>:	lea    0x1(%rbp),%r13
   0x000000000040255e <+574>:	cmp    $0x25,%al
   0x0000000000402560 <+576>:	je     0x402610 <parse_input+752>
   0x0000000000402566 <+582>:	test   %al,%al
   0x0000000000402568 <+584>:	je     0x402540 <parse_input+544>
   0x000000000040256a <+586>:	cmpb   $0x0,0x2(%rbp)
   0x000000000040256e <+590>:	je     0x402540 <parse_input+544>
   0x0000000000402570 <+592>:	mov    %al,0x10(%rsp)
   0x0000000000402574 <+596>:	movzbl 0x2(%rbp),%eax
   0x0000000000402578 <+600>:	mov    %r15,%rdx
   0x000000000040257b <+603>:	mov    $0x4069f3,%esi
   0x0000000000402580 <+608>:	mov    %r14,%rdi
   0x0000000000402583 <+611>:	movb   $0x0,0x12(%rsp)
   0x0000000000402588 <+616>:	mov    %al,0x11(%rsp)
   0x000000000040258c <+620>:	xor    %eax,%eax
   0x000000000040258e <+622>:	callq  0x401020 <__isoc99_sscanf@plt>
   0x0000000000402593 <+627>:	cmp    $0x1,%eax
   0x0000000000402596 <+630>:	je     0x402631 <parse_input+785>
   0x000000000040259c <+636>:	movzbl 0x0(%r13),%eax
   0x00000000004025a1 <+641>:	jmp    0x402540 <parse_input+544>
   0x00000000004025a3 <+643>:	nopl   0x0(%rax,%rax,1)
   0x00000000004025a8 <+648>:	movb   $0x0,(%rdx)
   0x00000000004025ab <+651>:	movzbl (%r12),%eax
   0x00000000004025b0 <+656>:	mov    0x205ec1(%rip),%rdx        # 0x608478
   0x00000000004025b7 <+663>:	cmp    $0x20,%al
   0x00000000004025b9 <+665>:	je     0x4025f9 <parse_input+729>
   0x00000000004025bb <+667>:	test   %al,%al
   0x00000000004025bd <+669>:	je     0x4025f9 <parse_input+729>
   0x00000000004025bf <+671>:	cmp    $0xa,%al
   0x00000000004025c1 <+673>:	je     0x4025f9 <parse_input+729>
   0x00000000004025c3 <+675>:	cmp    $0xd,%al
   0x00000000004025c5 <+677>:	lea    0xb(%rdx),%rcx
   0x00000000004025c9 <+681>:	jne    0x4025e6 <parse_input+710>
   0x00000000004025cb <+683>:	jmp    0x4025f9 <parse_input+729>
   0x00000000004025cd <+685>:	nopl   (%rax)
   0x00000000004025d0 <+688>:	cmp    $0x20,%al
   0x00000000004025d2 <+690>:	je     0x4025f9 <parse_input+729>
   0x00000000004025d4 <+692>:	cmp    $0xa,%al
   0x00000000004025d6 <+694>:	je     0x4025f9 <parse_input+729>
   0x00000000004025d8 <+696>:	cmp    $0xd,%al
   0x00000000004025da <+698>:	je     0x4025f9 <parse_input+729>
   0x00000000004025dc <+700>:	cmp    %rcx,%rdx
   0x00000000004025df <+703>:	nop
   0x00000000004025e0 <+704>:	je     0x4024e0 <parse_input+448>
   0x00000000004025e6 <+710>:	add    $0x1,%r12
   0x00000000004025ea <+714>:	mov    %al,(%rdx)
   0x00000000004025ec <+716>:	add    $0x1,%rdx
   0x00000000004025f0 <+720>:	movzbl (%r12),%eax
   0x00000000004025f5 <+725>:	test   %al,%al
   0x00000000004025f7 <+727>:	jne    0x4025d0 <parse_input+688>
   0x00000000004025f9 <+729>:	movb   $0x0,(%rdx)
   0x00000000004025fc <+732>:	add    $0x28,%rsp
   0x0000000000402600 <+736>:	xor    %eax,%eax
   0x0000000000402602 <+738>:	pop    %rbx
   0x0000000000402603 <+739>:	pop    %rbp
   0x0000000000402604 <+740>:	pop    %r12
   0x0000000000402606 <+742>:	pop    %r13
   0x0000000000402608 <+744>:	pop    %r14
   0x000000000040260a <+746>:	pop    %r15
   0x000000000040260c <+748>:	retq   
   0x000000000040260d <+749>:	nopl   (%rax)
   0x0000000000402610 <+752>:	lea    0x2(%rbp),%r13
   0x0000000000402614 <+756>:	movzbl 0x2(%rbp),%eax
   0x0000000000402618 <+760>:	jmpq   0x402540 <parse_input+544>
   0x000000000040261d <+765>:	mov    0xc(%rsp),%eax
   0x0000000000402621 <+769>:	lea    0x3(%rbp),%r13
   0x0000000000402625 <+773>:	mov    %al,-0x1(%rbx)
   0x0000000000402628 <+776>:	movzbl 0x3(%rbp),%eax
   0x000000000040262c <+780>:	jmpq   0x4023b8 <parse_input+152>
   0x0000000000402631 <+785>:	mov    0xc(%rsp),%eax
   0x0000000000402635 <+789>:	lea    0x3(%rbp),%r13
   0x0000000000402639 <+793>:	mov    %al,-0x1(%rbx)
   0x000000000040263c <+796>:	movzbl 0x3(%rbp),%eax
   0x0000000000402640 <+800>:	jmpq   0x402540 <parse_input+544>
End of assembler dump.
Понимаю, что не особо много видно, но может понятно будет, в чем бага?

Остальные процессы redirector нормально продолжали работать, упал только один.

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Re: redirector вдруг упал

Сообщение Slava »

Да, к сожалению данных мало.
Что бы повторить проблему, минимум нужен полный урл http://bbc.112.2o7.net/b/ss/bbcglobalne ... t=3/0/2012 19:58:56 2 -240&ce=ISO-8859-1&cdp=3&pageName=bbc <здесь обрезано>

В принципе, Вы можете посмотреть в логах сквида, по каким урлам ходили и попробовать повторить проблему.

Mosga
Сообщения: 7
Зарегистрирован: Чт мар 17, 2011 20:29

Re: redirector вдруг упал

Сообщение Mosga »

Я не могу показать лог сквида, он обрезает все после первого ? - т.е. там строка еще короче.

Но я попросил gdb вывести строку подлиннее из функции main().

Код: Выделить всё

gdb /usr/sbin/redirector /var/spool/abrt/ccpp-1325606337-5874/coredump
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-48.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/sbin/redirector...Reading symbols from /usr/lib/debug/usr/sbin/redirector.debug...done.
done.
[New Thread 5874]
Missing separate debuginfo for 
Try: yum --disablerepo='*' --enablerepo='*-debuginfo' install /usr/lib/debug/.build-id/9a/179ee85386e24c8b1a58cd2c01a95664ab9018
Reading symbols from /lib64/libpcre.so.0.0.1...Reading symbols from /usr/lib/debug/lib64/libpcre.so.0.0.1.debug...done.
done.
Loaded symbols for /lib64/libpcre.so.0.0.1
Reading symbols from /lib64/libc-2.12.so...Reading symbols from /usr/lib/debug/lib64/libc-2.12.so.debug...done.
done.
Loaded symbols for /lib64/libc-2.12.so
Reading symbols from /lib64/ld-2.12.so...Reading symbols from /usr/lib/debug/lib64/ld-2.12.so.debug...done.
done.
Loaded symbols for /lib64/ld-2.12.so
Core was generated by `(redirector) /etc/squid/redirector/redirector.conf'.
Program terminated with signal 11, Segmentation fault.
#0  parse_input (str=0x7fff68485000 <Address 0x7fff68485000 out of bounds>) at parse_input.c:97
97	    while(*str!=' ')
(gdb) bt
#0  parse_input (str=0x7fff68485000 <Address 0x7fff68485000 out of bounds>) at parse_input.c:97
#1  0x0000000000401565 in main (argc=<value optimized out>, argv=<value optimized out>) at redirector.c:81
(gdb) frame 1
#1  0x0000000000401565 in main (argc=<value optimized out>, argv=<value optimized out>) at redirector.c:81
81	        if(parse_input(str)) 
(gdb) set print elements 10000
(gdb) print etmp
$1 = "REDIRECTOR: WARNING: Can't parse url: http://bbc.112.2o7.net/b/ss/bbcglobalnewsdev,bbcrussian/1/H.21/s11838968794325?AQB=1&pccr=true&&ndh=1&t=3/0/2012 19:58:56 2 -240&ce=ISO-8859-1&cdp=3&pageName=bbc russian|%u0431%u0440%u0438%u0442%u0430%u043D%u0438%u044F|%u043D%u0430 %u0431%u0440%u0438%u0442%u0430%u043D%u0438%u044E %u043E%u0431%u0440%u0443%u0448%u0438%u043B%u0438%u0441%u044C %u0431%u0443%u0440%u0438 %u0438 %u0434%u043E%u0436%u0434%u0438&g=http://www.bbc.co.uk/russian/uk/2012/01/120103_uk_weather_warning.shtml&r=http://www.bbc.co.uk/russian/international/2012/01/120103_israel_palestine_contacts.shtml&cc=USD&events=event2&h1=BBC Russian|%u0411%u0440%u0438%u0442%u0430%u043D%u0438%u044F|%u041D%u0430 %u0411%u0440%u0438%u0442%u0430%u043D%u0438%u044E %u043E%u0431%u0440%u0443%u0448%u0438%u043B%u0438%u0441%u044C %u0431%u0443%u0440%u0438 %u0438 %u0434%u043E%u0436%u0434%u0438&v2=bbc russian|%u0431%u0440%u0438%u0442%u0430%u043D%u0438%u044F|%u043D%u0430 %u0431%u0440%u0438%u0442%u0430%u043D%u0438%u044E %u043E%u0431%u0440%u0443%u0448%u0438%u043B%u0438%u0441%u044C %u0431%u0443%u0440%u0438 %u0438 %u0434%u043E%u0436%u0434%u0438&c4=14799223&c5=story&c6=britain&c7=russian>britain&c11=tuesday|3:30pm&c12=5&c13=First Visit&v13=First Visit&c15=/russian/uk/2012/01/120103_uk_weather_warning.shtml&c17=bbc russian|%u0431%u0440%u0438%u0442%u0430%u043D%u0438%u044F|%u043D%u0430 %u0431%u0440%u0438%u0442%u0430%u043D%u0438%u044E %u043E%u0431%u0440%u0443%u0448%u0438%u043B%u0438%u0441%u044C %u0431%u0443%u0440%u0438 %u0438 %u0434%u043E%u0436%u0434%u0438&c18=Repeat&c20=bbc russian|%u0431%u0440%u0438%u0442%u0430%u043D%u0438%u044F|%u043D%u0430 %u0431%u0440%u0438%u0442%u0430%u043D%u0438%u044E %u043E%u0431%u0440%u0443%u0448%u0438%u043B%u0438%u0441%u044C %u0431%u0443%u0440%u0438 %u0438 %u0434%u043E%u0436%u0434%u0438&c25=BBC&c29=0&c30=bbc russian|%u043B%u0435%u043D%u0442%u0430 %u043D%u043E%u0432%u043E%u0441%u0442%u0435%u0439|%u0432 %u0442%u0430%u0434%u0436%u0438%u043A%u0438%u0441%u0442%u0430%u043D%u0435 %u0437%u0430%u0434%u0435%u0440%u0436%u0430%u043D%u044B %u043F%u043E%u0434%u043E%u0437%u0440%u0435%u0432%u0430%u0435%u043C%u044B%u0435 %u0432 %u0443%u0431%u0438%u0439%u0441%u0442%u0432%u0435 \"%u0434%u0435%u0434%u0430 %u043C%u043E%u0440%u043E%u0437%u0430\"&c34=russian_story&c45=russian&s=2560x1600&c=24&j=1.7&v=Y&k=Y&bw=1234&bh=1023&p=Skype Buttons for Kopete;IcedTea-Web Plugin (using IcedTea-Web 1.1.4 (fedora-3.fc16-x86_64));Gnome Shell Integration;DivX%u00AE Web Player;VLC Multimedia Plugin (compatible Totem 3.2.1);QuickTime Plug-in 7.6.6;Windows Media Player Plug-in 10 (compatible; Totem);iTunes Application Detector;Shockwave Flash;&AQE=1. Pass.\000%u0432%u0435 \"%u0434%u0435%u0434%u0430 %u043C%u043E%u0440%u043E%u0437%u0430\"&c25=BBC&c29=0&c30=bbc russian|%u0432 %u043C%u0438%u0440%u0435|%u0438%u0437%u0440%u0430%u0438%u043B%u044C %u0438 %u043F%u0430%u043B%u0435%u0441%u0442%u0438%u043D%u0446%u044B: %u043F%u0435%u0440%u0432%u044B%u0435 %u043F%u0435%u0440%u0435%u0433%u043E%u0432%u043E%u0440%u044B %u0441 2010 %u0433%u043E%u0434%u0430&c34=russian_story&c45=russian&s=2560x1600&c=24&j=1.7&v=Y&k=Y&bw=1234&bh=1023&p=Skype Buttons for Kopete;IcedTea-Web Plugin (using IcedTea-Web 1.1.4 (fedora-3.fc16-x86_64));Gnome Shell Integration;DivX%u00AE Web Player;VLC Multimedia Plugin (compatible Totem 3.2.1);QuickTime Plug-in 7.6.6;Windows Media Player Plug-in 10 (compatible; Totem);iTunes Application Detector;Shockwave Flash;&pid=bbc russian|%u0432 %u043C%u0438%u0440%u0435|%u0438%u0437%u0440%u0430%u0438%u043B%u044C %u0438 %u043F%u0430%u043B%u0435%u0441%u0442%u0438%u043D%u0446%u044B: %u043F%u0435%u0440%u0432%u044B%u0435 %u043F%u0435%u0440%u0435%u0433%u043E%u0432%u043E%u0440%u044B %u0441 2010 %u0433%u043E%u0434%u0430&pidt=1&oid=http://www.bbc.co.uk/russian/uk/2012/01/120103_uk_weather_warning.shtml&ot=A&AQE=1. Pass.\000&p=Skype%20Buttons%20for%20Kopete%3BIcedTea-Web%20Plugin%20(using%20IcedTea-Web%201.1.4%20(fedora-3.fc16-x86_64))%3BGnome%20Shell%20Integration%3BDivX%C2%AE%20Web%20Player%3BVLC%20Multimedia%20Plugin%20(compatible%20Totem%203.2.1)%3BQuickTime%20Plug-in%207.6.6%3BWindows%20Media%20Player%20Plug-in%2010%20(compatible%3B%20Tote", '\000' <repeats 1367 times>
(gdb) print str
$2 = "http://bbc.112.2o7.net/b/ss/bbcglobalnewsdev,bbcrussian/1/H.21/s16243294370520?AQB=1&pccr=true&&ndh=1&t=3/0/2012%2019%3A58%3A56%202%20-240&ce=ISO-8859-1&cdp=3&pageName=bbc%20russian%7C%u043B%u0435%u043D%u0442%u0430%20%u043D%u043E%u0432%u043E%u0441%u0442%u0435%u0439%7C%u0432%20%u0442%u0430%u0434%u0436%u0438%u043A%u0438%u0441%u0442%u0430%u043D%u0435%20%u0437%u0430%u0434%u0435%u0440%u0436%u0430%u043D%u044B%20%u043F%u043E%u0434%u043E%u0437%u0440%u0435%u0432%u0430%u0435%u043C%u044B%u0435%20%u0432%20%u0443%u0431%u0438%u0439%u0441%u0442%u0432%u0435%20%22%u0434%u0435%u0434%u0430%20%u043C%u043E%u0440%u043E%u0437%u0430%22&g=http%3A//www.bbc.co.uk/russian/rolling_news/2012/01/120103_rn_tajikistan_arrests.shtml&r=http%3A//www.bbc.co.uk/russian/international/2012/01/120103_israel_palestine_contacts.shtml&cc=USD&events=event2&h1=BBC%20Russian%7C%u041B%u0435%u043D%u0442%u0430%20%u043D%u043E%u0432%u043E%u0441%u0442%u0435%u0439%7C%u0412%20%u0422%u0430%u0434%u0436%u0438%u043A%u0438%u0441%u0442%u0430%u043D%u0435%20%u0437%u0430%u0434%u0435%u0440%u0436%u0430%u043D%u044B%20%u043F%u043E%u0434%u043E%u0437%u0440%u0435%u0432%u0430%u0435%u043C%u044B%u0435%20%u0432%20%u0443%u0431%u0438%u0439%u0441%u0442%u0432%u0435%20%22%u0414%u0435%u0434%u0430%20%u041C%u043E%u0440%u043E%u0437%u0430%22&v2=bbc%20russian%7C%u043B%u0435%u043D%u0442%u0430%20%u043D%u043E%u0432%u043E%u0441%u0442%u0435%u0439%7C%u0432%20%u0442%u0430%u0434%u0436%u0438%u043A%u0438%u0441%u0442%u0430%u043D%u0435%20%u0437%u0430%u0434%u0435%u0440%u0436%u0430%u043D%u044B%20%u043F%u043E%u0434%u043E%u0437%u0440%u0435%u0432%u0430%u0435%u043C%u044B%u0435%20%u0432%20%u0443%u0431%u0438%u0439%u0441%u0442%u0432%u0435%20%22%u0434%u0435%u0434%u0430%20%u043C%u043E%u0440%u043E%u0437%u0430%22&c4=14794122&c5=story&c6=rolling_news&c7=russian%3Erolling_news&c11=tuesday%7C3%3A30pm&c12=5&c13=First%20Visit&v13=First%20Visit&c15=/russian/rolling_news/2012/01/120103_rn_tajikistan_arrests.shtml&c17=bbc%20russian%7C%u043B%u0435%u043D%u0442%u0430%20%u043D%u043E%u0432%u043E%u0441%u0442%u0435%u0439%7C%u0432%20%u0442%u0430%u0434%u0436%u0438%u043A%u0438%u0441%u0442%u0430%u043D%u0435%20%u0437%u0430%u0434%u0435%u0440%u0436%u0430%u043D%u044B%20%u043F%u043E%u0434%u043E%u0437%u0440%u0435%u0432%u0430%u0435%u043C%u044B%u0435%20%u0432%20%u0443%u0431%u0438%u0439%u0441%u0442%u0432%u0435%20%22%u0434%u0435%u0434%u0430%20%u043C%u043E%u0440%u043E%u0437%u0430%22&c18=Repeat&c20=bbc%20russian%7C%u043B%u0435%u043D%u0442%u0430%20%u043D%u043E%u0432%u043E%u0441%u0442%u0435%u0439%7C%u0432%20%u0442%u0430%u0434%u0436%u0438%u043A%u0438%u0441%u0442%u0430%u043D%u0435%20%u0437%u0430%u0434%u0435%u0440%u0436%u0430%u043D%u044B%20%u043F%u043E%u0434%u043E%u0437%u0440%u0435%u0432%u0430%u0435%u043C%u044B%u0435%20%u0432%20%u0443%u0431%u0438%u0439%u0441%u0442%u0432%u0435%20%22%u0434%u0435%u0434%u0430%20%u043C%u043E%u0440%u043E%u0437%u0430%22&c25=BBC&c29=0&c30=bbc%20russian%7C%u0432%20%u043C%u0438%u0440%u0435%7C%u0438%u0437%u0440%u0430%u0438%u043B%u044C%20%u0438%20%u043F%u0430%u043B%u0435%u0441%u0442%u0438%u043D%u0446%u044B%3A%20%u043F%u0435%u0440%u0432%u044B%u0435%20%u043F%u0435%u0440%u0435%u0433%u043E%u0432%u043E%u0440%u044B%20%u0441%202010%20%u0433%u043E%u0434%u0430&c34=russian_story&c45=russian&s=2560x1600&c=24&j=1.7&v=Y&k=Y&bw=1234&bh=1023&p=Skype%20Buttons%20for%20Kopete%3BIcedTea-Web%20Plugin%20%28using%20IcedTea-Web%201.1.4%20%28fedora-3.fc16-x86_64%29%29%3BGnome%20Shell%20Integration%3BDivX%u00AE%20Web%20Player%3BVLC%20Multimedia%20Plugin%20%28compatible%20Totem%203.2.1%29%3BQuickTime%20Plug-in%207.6.6%3BWindows%20Media%20Player%20Plug-in%2010%20%28compatible%3B%20Totem%29%3BiTunes%20Application%20Detector%3BShockwave%20Flash%3B&pid=bbc%20russian%7C%u0432%20%u043C%u0438%u0440%u0435%7C%u0438%u0437%u0440%u0430%u0438%u043B%u044C%20%u0438%20%u043F%u0430%u043B%u0435%u0441%u0442%u0438%u043D%u0446%u044B%3A%20%u043F%u0435%u0440%u0432%u044B%u0435%20%u043F%u0435%u0440%u0435%u0433%u043E%u0432%u043E%u0440%u044B%20%u0441%202010%20%u0433%u043E%u0434%u0430&pidt=1&oid=http%3A//www.bbc.co.uk/russian/uk/2012/01/120103_uk_weather_warning.shtml&ot=A&AQE=1 2002:5970:899:"
В фрейме 0 (функция parse_input) смотреть вроде как нечего - туда str вообще не попала, если я правильно понял.

Если еще что посмотреть в дампе, скажите. Я не эксперт в gdb; может еще что-то полезное можно вытащить.

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Re: redirector вдруг упал

Сообщение Slava »

Урл нужен, чтобы повторить проблему.
Попробуйте его открыть на Вашей конфигурации, упадет ли?

Mosga
Сообщения: 7
Зарегистрирован: Чт мар 17, 2011 20:29

Re: redirector вдруг упал

Сообщение Mosga »

Да, падает при открытии http://bbc.112.2o7.net/b/ss/bbcglobalne ... ot=A&AQE=1

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Re: redirector вдруг упал

Сообщение Slava »

Проблема решена в http://rejik.ru/download/redirector-3.2.10b2.tgz
Для ipv6 подойдет тот же патч.

К своему стыду, прочитав пару статей про ipv6 я так и не понял, как сделать ограничение по ip для него, может подсказать толковую доку?

Mosga
Сообщения: 7
Зарегистрирован: Чт мар 17, 2011 20:29

Re: redirector вдруг упал

Сообщение Mosga »

Спасибо, попробую.

А в чем проблема с ipv6? Там все так же, запись подсетей возможна только по формату CIDR.
Например, для ip6tables я определил параметры

Код: Выделить всё

NET_IPv6=2002:5970:899::/48
IP_IPv6=2002:5970:899::1
NET_LOCAL_IPv6=2002:5970:899:1::/64
IP_LOCAL_IPv6=2002:5970:899:1::1
NET_LINK_LOCAL_IPv6=fe80::/10
NET_MULTICAST_IPv6=ff00::/8
И использую их точно так же в -d/-s, как аналоги с iptables.
http://en.wikipedia.org/wiki/Subnetwork#IPv6_subnetting, http://en.wikipedia.org/wiki/CIDR_notation вроде все понятно объясняют.

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Re: redirector вдруг упал

Сообщение Slava »

Проблема в моем понимании, мне казалось, что в адресе ipv6 хранится нечто большее, чем сам адрес.

Для ipv4 я проверял попадание в заданный диапазон так:

Для каждой цифры ip
если (заданный_ip & заданная_маска == проверяемый_ip &заданная_маска)
то проверяемый_ip попадает в заданный_ip/заданная_маска

& - битовое И

Для ipv6 можно так же делать?

Mosga
Сообщения: 7
Зарегистрирован: Чт мар 17, 2011 20:29

Re: redirector вдруг упал

Сообщение Mosga »

Да, все так же. Делаете битовую маску из CIDR и выполняете эту проверку.

Разница только по двум моментам: ipv6 адреса часто записываются в сокращенном виде - разумеется, их надо развернуть в полный 128-битный вид перед такой операцией, это делается однозначно; правила описаны в RFC, википедии и много где, и ipv6 поддерживает запись ipv4-адресов, в нотации ::ffff:ipv4. Маска в этом случае, соответственно, не больше 32-х. Поддерживать эту нотацию совершенно необязательно, тот же сквид это не делает. В конфигах от этой нотации никакого проку, она исключительно для внутреннего представления в некоторых приложениях (иногда удобно представить ipv4 как подмножество ipv6 и иметь единый код для их обработки); проще всего забыть про эту нотацию.

Правда, выполнять & и сравнение 128 раз не очень-то хорошо, нужно сразу все, чтобы было быстро.. А 128-битного and по-моему не бывает? В общем, возможно, придется подумать над оптимизацией :)
В конце концов, наверное можно стащить алгоритм обработки acl из сквида, или из апача (возможно, в apr есть..)..

Ответить