Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Принятые патчи

Важная информация

Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.

Повод для гордости.

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.05.2010, 00:40   #1
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
Сообщение [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);
В функцию передавалось не 3, а целых 4 параметра (не считая id mangos_string). Не долго думая, убрал с конца переменную ориентации (зачем ей там быть, это ведь только чат?). Собираю...

Собрал. Теперь команда работает без падения.
Баг? Кривизна моих рук/головы?

Фикс в аттаче (подогнан под 9948).

P.s. Странно только то, что эта ошибка замечена мною даже в ветке 0.12, а никто ничего не отпостил (хотя, может быть потому, что недо-админы не суются к нам, а чОткие пацаны просто не используют эту команду ).
Вложения
Тип файла: patch fix_gobject_turn.patch (518 байт, 18 просмотров)
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет

Последний раз редактировалось Hantet; 21.05.2010 в 15:20.
Hantet вне форума  
2 пользователя(ей) сказали cпасибо:
Lightunit (21.05.2010), Vladimir (22.05.2010)
Старый 21.05.2010, 06:21   #2
Lightunit
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 66
Сказал(а) спасибо: 120
Поблагодарили 9 раз(а) в 7 сообщениях
Lightunit На верном пути
Сообщение

У меня такая же проблема на FreeBSD

YTDB: 546
MaNGOS: 9851
RuDB: 37.6
Патчи от Карателя

Если использовать данную команду один раз, то сервер падает через минуты 3-5. Если 5 раз или более, то сервер сразу падает.
Lightunit вне форума  
Старый 21.05.2010, 08:21   #3
timmit
YTDB Dev
 
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
timmit На верном пути
По умолчанию

А ничего что эту таблицу ядерщики заполняют? Но обязательно надо базу поругать, конечно.
timmit вне форума  
Старый 21.05.2010, 09:04   #4
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Тс-с-с-с!!! Тиммит, зачем палишь!
Пусть все считают, что девы базы еще и ядро пишут!
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума  
Старый 21.05.2010, 15:11   #5
Hantet
Ученый
 
Аватар для Hantet
 
Регистрация: 07.03.2010
Адрес: Санкт-Петербург
Сообщений: 163
Сказал(а) спасибо: 124
Поблагодарили 111 раз(а) в 52 сообщениях
Hantet Скоро придёт к известностиHantet Скоро придёт к известности
Отправить сообщение для Hantet с помощью ICQ
По умолчанию

Цитата:
Сообщение от timmit Посмотреть сообщение
А ничего что эту таблицу ядерщики заполняют? Но обязательно надо базу поругать, конечно.
Каюсь
Буду знать (хотя я подозревал).
__________________
Галя: Вот почему когда я пуск делаю и по ярлыку две то запускается, а если вот мне к примеру надо не из пуска её то ничего и в красном показывает, а надо ведь чтобы квадратик жёлтенький открывал и там 3 кнопки должно быть?
admin: О Боже!
admin: Кто-нибудь, пришлите ко мне уборщицу, пусть мой мозг со стен и потолка отмоет

Последний раз редактировалось Hantet; 21.05.2010 в 15:15.
Hantet вне форума  
Старый 22.05.2010, 08:46   #6
wk23
Пользователь
 
Регистрация: 11.03.2010
Адрес: Спб
Сообщений: 35
Сказал(а) спасибо: 5
Поблагодарили 10 раз(а) в 8 сообщениях
wk23 На верном пути
По умолчанию

не была бы указана база, началось бы "фу, почему не указал"; поля _loc* core devs разве заполняют? например, именно локализация LANG_QUEST_LIST_CHAT причина крашей
wk23 вне форума  
Старый 22.05.2010, 09:46   #7
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Цитата:
Сообщение от timmit Посмотреть сообщение
А ничего что эту таблицу ядерщики заполняют? Но обязательно надо базу поругать, конечно.
Угу, только разрабочики DB ее почемуто иногда калечет, да и они тоже заполняют в локализациях (см. другую ветку...)

Но в данном конкретном случае баг ядра.
__________________
Так как устал объяснять знайте ICQ не пользуюсь

Последний раз редактировалось Vladimir; 22.05.2010 в 09:48.
Vladimir вне форума  
Старый 22.05.2010, 10:05   #8
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Патч добавлен в [9950]. Спасибо.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[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


Текущее время: 11:48. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot