Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]:
Monday, January 12, 2009, 9:09:57 PM, you wrote:
IS> On Mon, Jan 12, 2009 at 08:43:10PM +0100, Andrew wrote:
>>
>> Monday, January 12, 2009, 3:04:18 PM, you wrote:
>> IS> On Mon, Jan 12, 2009 at 03:38:42PM +0300, Igor Sysoev wrote:
>>
>> >> On Mon, Jan 12, 2009 at 01:30:54PM +0100, Andrew wrote:
>> >>
>> >> >
>> >> > > Если из вашего модуля, то скорее всего ошибка именно там.
>> >> >
>> >> > Показывает, что из моего модуля. Но ошибка, по которой произошло
>> >> > падение, подозрительно глубоко в ngx_slab_alloc_pages. Маловероятно,
>> >> > что мой модуль обнулил только кусочек структуры ngx_slab_page_t, а
>> >> > именно page->next = null.
>> >>
>> >> А какой размер зоны используется в своём модуле ?
>>
>> Если page->>slab:
>>
>> IS> (gdb) p* page
>> IS> $3 = {slab = 1095216660489, next = 0x0, prev = 46912546242592}
>>
>> IS> верный, то зона должна быть 1020G, что не похоже на правду.
>>
>> IS> Остаётся предположить, что чей-то код записал в начало ngx_slab_page_t,
>> IS> то есть, в slab и next "09 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00".
>>
>> А значение prev похоже на правду?
>>
>> Если посмотреть кусок памяти до ngx_slab_page_t и после,
>> то видно что там куча повторяющихся значений. Кажется маловероятным, что
>> свой модуль записал какие-то данные в начало ngx_slab_page_t, и они
>> оказались точно такими же как и данные, которые он не перезаписывал.
>>
>> (gdb) p page
>> $116 = (ngx_slab_page_t *) 0x2aaaadf4f440
>> (gdb) x/128d page-2
>> 0x2aaaadf4f410: 9 0 0 0 -1 0 0 0
>> 0x2aaaadf4f418: 0 0 0 0 0 0 0 0
>> 0x2aaaadf4f420: 1 0 0 0 0 0 0 0
>> 0x2aaaadf4f428: 1 0 0 0 0 0 0 0
>> 0x2aaaadf4f430: 80 -97 -12 -83 -86 42 0 0
>> 0x2aaaadf4f438: -16 -44 -12 -83 -86 42 0 0
>> 0x2aaaadf4f440: 9 0 0 0 -1 0 0 0
>> 0x2aaaadf4f448: 0 0 0 0 0 0 0 0
>> 0x2aaaadf4f450: 32 -128 -89 -83 -86 42 0 0
>> 0x2aaaadf4f458: 8 0 0 0 -1 0 0 0
>> 0x2aaaadf4f460: 0 0 0 0 0 0 0 0
>> 0x2aaaadf4f468: 32 -128 -89 -83 -86 42 0 0
>> 0x2aaaadf4f470: 9 0 0 0 -1 0 0 0
>> 0x2aaaadf4f478: 0 0 0 0 0 0 0 0
>> 0x2aaaadf4f480: 1 0 0 0 0 0 0 0
>> 0x2aaaadf4f488: 9 0 0 0 -1 0 0 0
IS> Можно сделать
IS> p/x *pool
IS> x/128x page-2
IS> ?
Конечно.
(gdb) p/x *pool
$1 = {lock = 0xba0, min_size = 0x8, min_shift = 0x3, pages = 0x2aaaada78128,
free = {slab = 0x0, next = 0x2aaaadf4f458,
prev = 0x2aaaadf52230}, start = 0x2aaaaf04e000, end = 0x2aab97e78000, mutex
= {lock = 0x2aaaada78000}}
(gdb) x/128x page-2
0x2aaaadf4f410: 0x00000009 0x000000ff 0x00000000 0x00000000
0x2aaaadf4f420: 0x00000001 0x00000000 0x00000001 0x00000000
0x2aaaadf4f430: 0xadf49f50 0x00002aaa 0xadf4d4f0 0x00002aaa
0x2aaaadf4f440: 0x00000009 0x000000ff 0x00000000 0x00000000
0x2aaaadf4f450: 0xada78020 0x00002aaa 0x00000008 0x000000ff
0x2aaaadf4f460: 0x00000000 0x00000000 0xada78020 0x00002aaa
0x2aaaadf4f470: 0x00000009 0x000000ff 0x00000000 0x00000000
0x2aaaadf4f480: 0x00000001 0x00000000 0x00000009 0x000000ff
0x2aaaadf4f490: 0x00000000 0x00000000 0x00000001 0x00000000
0x2aaaadf4f4a0: 0x00000001 0x00000000 0xadf4bd08 0x00002aaa
0x2aaaadf4f4b0: 0xadf4c380 0x00002aaa 0x00000001 0x00000000
0x2aaaadf4f4c0: 0xadf4bcf0 0x00002aaa 0xadf49920 0x00002aaa
0x2aaaadf4f4d0: 0xffffffff 0xffffffff 0x00000000 0x00000000
0x2aaaadf4f4e0: 0x00000002 0x00000000 0x00000009 0x000000ff
0x2aaaadf4f4f0: 0x00000000 0x00000000 0x00000001 0x00000000
0x2aaaadf4f500: 0x00000001 0x00000000 0xadf4b210 0x00002aaa
0x2aaaadf4f510: 0xadf4d8c8 0x00002aaa 0x00000009 0x000000ff
0x2aaaadf4f520: 0x00000000 0x00000000 0x00000001 0x00000000
0x2aaaadf4f530: 0x00000001 0x00000000 0xadf4a610 0x00002aaa
0x2aaaadf4f540: 0xadf498c0 0x00002aaa 0x00000009 0x000000ff
0x2aaaadf4f550: 0x00000000 0x00000000 0x00000001 0x00000000
0x2aaaadf4f560: 0x00000009 0x000000ff 0x00000000 0x00000000
0x2aaaadf4f570: 0x00000001 0x00000000 0x00000009 0x000000ff
0x2aaaadf4f580: 0x00000000 0x00000000 0x00000001 0x00000000
0x2aaaadf4f590: 0x00000009 0x000000ff 0x00000000 0x00000000
0x2aaaadf4f5a0: 0x00000001 0x00000000 0x00000001 0x00000000
0x2aaaadf4f5b0: 0xadf4e090 0x00002aaa 0xadf4c9b0 0x00002aaa
0x2aaaadf4f5c0: 0x00000001 0x00000000 0xadf4d6e8 0x00002aaa
0x2aaaadf4f5d0: 0xadf4fd10 0x00002aaa 0x00000007 0xffffffff
0x2aaaadf4f5e0: 0x00000000 0x00000000 0x00000001 0x00000000
0x2aaaadf4f5f0: 0x00000009 0x000000ff 0x00000000 0x00000000
0x2aaaadf4f600: 0x00000001 0x00000000 0x00000009 0x000000ff
|