|
Регистрация | Файлы | Правила | Альбомы | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.
Повод для гордости. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
21.05.2010, 00:40 | #1 |
Ученый
|
[9950][Crash] Turned Objects
Сегодня ненароком уронил свой сервер, пользуясь командой .gobject turn #guid. Функция отработала (объект пропал и появился в нужном месте), но после чего всё зависло. По идее, в чат должно было написать что-то вроде "Game Object #id turned", однако вместо этого сервер упал. Благо, на машине (вместе с MaNGOS) у меня стоит MSVC++. Вылетела ошибка и windows предложил мне отладку программы. В ходе расследования определил, что падение происходит из-за финального PSendSysMessage() (что и требовалось доказать). Далее отладчик сообщил мне первый аргумент этой функции (HEX: 0x00...114 = DEC: 276). Решил проверить, что же у меня там в базе лежит. Полез в mangos_string, нашёл id 276. АГА, вот оно! Истинная структура: "Game Object |cffffffff|Hgameobject:%d|h[%s]|h|r (GUID: %u) turned". Из этого я понял, что в эту структуру подставляется 3 значения. Полез в ядро (level2.cpp: bool ChatHandler::HandleGameObjectTurnCommand(const char* args)), и очумел. Код:
PSendSysMessage(LANG_COMMAND_TURNOBJMESSAGE, obj->GetGUIDLow(), obj->GetGOInfo()->name, obj->GetGUIDLow(), o); Собрал. Теперь команда работает без падения. Баг? Кривизна моих рук/головы? Фикс в аттаче (подогнан под 9948). P.s. Странно только то, что эта ошибка замечена мною даже в ветке 0.12, а никто ничего не отпостил (хотя, может быть потому, что недо-админы не суются к нам, а чОткие пацаны просто не используют эту команду ).
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть? admin: О Боже! admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет Последний раз редактировалось Hantet; 21.05.2010 в 15:20. |
21.05.2010, 06:21 | #2 |
Пользователь
Регистрация: 09.03.2010
Сообщений: 66
Сказал(а) спасибо: 120
Поблагодарили 9 раз(а) в 7 сообщениях
|
У меня такая же проблема на FreeBSD
YTDB: 546 MaNGOS: 9851 RuDB: 37.6 Патчи от Карателя Если использовать данную команду один раз, то сервер падает через минуты 3-5. Если 5 раз или более, то сервер сразу падает. |
21.05.2010, 08:21 | #3 |
YTDB Dev
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
|
А ничего что эту таблицу ядерщики заполняют? Но обязательно надо базу поругать, конечно.
|
21.05.2010, 09:04 | #4 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Тс-с-с-с!!! Тиммит, зачем палишь!
Пусть все считают, что девы базы еще и ядро пишут!
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
21.05.2010, 15:11 | #5 | |
Ученый
|
Цитата:
Буду знать (хотя я подозревал).
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть? admin: О Боже! admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет Последний раз редактировалось Hantet; 21.05.2010 в 15:15. |
|
22.05.2010, 08:46 | #6 |
Пользователь
Регистрация: 11.03.2010
Адрес: Спб
Сообщений: 35
Сказал(а) спасибо: 5
Поблагодарили 10 раз(а) в 8 сообщениях
|
не была бы указана база, началось бы "фу, почему не указал"; поля _loc* core devs разве заполняют? например, именно локализация LANG_QUEST_LIST_CHAT причина крашей
|
22.05.2010, 09:46 | #7 | |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Цитата:
Но в данном конкретном случае баг ядра.
__________________
Так как устал объяснять знайте ICQ не пользуюсь Последний раз редактировалось Vladimir; 22.05.2010 в 09:48. |
|
22.05.2010, 10:05 | #8 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Патч добавлен в [9950]. Спасибо.
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[10193] Use for Transport::Update arg uint32 type as for other world objects | newsbot | CMaNGOS Commits | 0 | 15.07.2010 04:20 |
[10147] Dynamic objects not have interactive size. | newsbot | CMaNGOS Commits | 0 | 03.07.2010 23:23 |
[9950] Fixed crash at .gobject turn command (at *nix at least) | newsbot | CMaNGOS Commits | 0 | 22.05.2010 10:04 |
[9913] Fix TARGET_SCRIPT searcher and also look for objects that are Pet* | newsbot | CMaNGOS Commits | 0 | 16.05.2010 10:31 |
[9614] Objects HIGHGUID_MO_TRANSPORT not have entry part in guid. | newsbot | CMaNGOS Commits | 0 | 24.03.2010 22:00 |