Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Баг-репорты (http://mangos.ytdb.ru/forumdisplay.php?f=27)
-   -   краш (http://mangos.ytdb.ru/showthread.php?t=1567)

lovepsone 22.06.2010 20:33

краш
 
Mangos 10096 - чистый
Ytdb 552
SD2 1725 - чистый
Win32
стоял у меня мангос 10080 - крашей не наблюдалось.
обновил до 10096 и появился краш, от которого я избавиться не могу!
Проблема в том что mangosd.exe запускается и сразу закрывается моментально.
ну я сразу понял что надо обновить кофинги. Обновил кофинги и серв запустился. Смотрю на лог в консоле и решил изменить лог загрузки на 1 ( по умалчанию стояло 3).
запускаю серв и обратно mangosd.exe запускается и сразу закрывается!
вобщем обратно взял обновил кофинг и в этот раз поменял цвета загрузки и всеровно крашь
Просмотрев лог краша то увидел это:
Цитата:

Crash! 22.06.2010 20:24:57. mangosd.exe has crashed! Lines logged from Server.log
просмотрев лог краша давай открывать Server.log , а в нем пусто.
как избавиться от этого краша ??

zergtmn 22.06.2010 20:40

Говорят надо сохранить конфиги в ANSI.
А ты обновил их после 10081 коммита?

lovepsone 22.06.2010 20:48

Цитата:

Сообщение от zergtmn (Сообщение 9391)
Говорят надо сохранить конфиги в ANSI.
А ты обновил их после 10081 коммита?

да после! а что в камите 10081(ща посмотрю)
как понять сохранить конфиги в ANSI?

Hantet 22.06.2010 20:57

Цитата:

Сообщение от lovepsone (Сообщение 9393)
да после! а что в камите 10081(ща посмотрю)
как понять ранить конфиги в ANSI?

Если падвендой, то:
Открыть с помощью блокнота -> файл -> сохранить как... -> Кодировка -> выбрать ФТЫШ (ANSI, то есть :))

tempura 22.06.2010 21:06

Кого ранить?
Цитата:

NOTE: all config versions update because in old state it's not compatible with new way loading.
Look for *.conf.dist.in chаnges in commit for update configs.
Приведите перевод пожалуйста.

Astellar 22.06.2010 22:10

Эм, вообще-то изначально конфиги мангоса именно в ANSI. Зачем их в UTF гнать? Под виндой и исполняемые файлы собираются без явной поддержки юникода. Так что проблема эта от излишнего усердия :)

zergtmn 22.06.2010 22:15

Цитата:

Сообщение от Astellar (Сообщение 9406)
Эм, вообще-то изначально конфиги мангоса именно в ANSI. Зачем их в UTF гнать? Под виндой и исполняемые файлы собираются без явной поддержки юникода. Так что проблема эта от излишнего усердия :)

В mangosd.conf есть один символ, из-за которого файл сохраняется в UTF8:
Код:

#    Visibility.Distance.Grey.Unit
#        Visibility grey distance for creatures/players (fast changing objects)
#        addition to appropriate object type Visibility.Distance.* use in case visibility removing to
#        object (except corpse around distences) If is distance and G is grey distance then object
#        make visible if distance to it <= D but make non visible if distance > D+G
#        Default: 1 (yard)


Astellar 22.06.2010 22:28

Цитата:

Сообщение от zergtmn (Сообщение 9407)
В mangosd.conf есть один символ, из-за которого файл сохраняется в UTF8

Во блин. Нужно научить себя пользоваться стандартным блокнотом. Notepad++ жрет и сохраняет в ANSI. Значит это нужно исправить и закоммитить в репозиторий.

LordJZ 22.06.2010 22:59

Цитата:

Сообщение от Astellar (Сообщение 9408)
Во блин. Нужно научить себя пользоваться стандартным блокнотом. Notepad++ жрет и сохраняет в ANSI. Значит это нужно исправить и закоммитить в репозиторий.

Кодировки -> Преобразовать в UTF8 без BOM

Astellar 22.06.2010 23:47

Я знаю. Но еще раз повторюсь, проблема сия чисто виндовая. Что-то не срастается с юникодом. Мой сервер под управлением Linux прекрасно читает конфиги, сохраненные в UTF8. ACE тоже юникод поддерживает прекрасно.

Не помешало бы конечно найти, что же ему мешает прочитать файл...

tempura 23.06.2010 00:32

Цитата:

Сообщение от Astellar (Сообщение 9406)
Эм, вообще-то изначально конфиги мангоса именно в ANSI. Зачем их в UTF гнать?

MOTD с русскими буквами не читается, если конфиг не в utf. По крайней мере - раньше не читался. Сейчас проверять буду, будем посмотреть...

KiriX 23.06.2010 00:49

Цитата:

Сообщение от tempura (Сообщение 9419)
MOTD с русскими буквами не читается, если конфиг не в utf. По крайней мере - раньше не читался. Сейчас проверять буду, будем посмотреть...

В чём я только не сохранял конфиг, но у меня MOTD, если там использовался русский, читался только когда-то давно. Уже около года не читается вне зависимости от кодировки конфига. Выше ревы, где менялась работа с конфигом я ещё не "прыгал"

LordJZ 23.06.2010 01:53

Почему-то у меня и конфиг читается, и МОТД на русском, и на винде и на иксах.

KiriX 23.06.2010 02:08

Цитата:

Сообщение от LordJZ (Сообщение 9426)
Почему-то у меня и конфиг читается, и МОТД на русском, и на винде и на иксах.

ХЗ - у меня на винде не читает.
Кстати, вспомнил, что это ещё и от машинке на которой запускается как-то зависит...

xex 25.06.2010 02:52

Решил поэкспериментировать.
Винда. Motd написал на русском. Сохранил в UTF-8. .config reload - конфиг не читается. Убрал в начале mangosd.conf 4 байта (метка utf-8), всё читается, текст в игре на русском (.server motd).

Вердикт:
Всё работает. Нужно метку кодировки удалить.

P.S. Рева 10096
P.P.S. Глянул обновления, исправлено. [10098] Re-apply to ACE hack for support utf8 config files
Пора обновлятся =)

KiriX 25.06.2010 08:30

Сохранял и в UTF-8 и в UTF-8 без BOM, сохранял стандартным виндовозовским блокногот и нотпад++ - русский MOTD не читается у меня...

tempura 25.06.2010 13:11

Как вариант - у тебя он слишком длинный. Попробуй пару-тройку букв оставить, остальное закомментить.

KiriX 25.06.2010 16:01

Цитата:

Сообщение от tempura (Сообщение 9575)
Как вариант - у тебя он слишком длинный. Попробуй пару-тройку букв оставить, остальное закомментить.

Да, я тоже уже стал слоняться к данному варианту. Не хочу короче - лучше в коде увеличу длину MOTD =)

KiriX 25.06.2010 17:11

Да, влияет длина сообщения. При чём не зависимо от этой самой длины MOTD командой .s motd выводится нормально, а вот при логине - нет.

Hantet 25.06.2010 22:04

Цитата:

Сообщение от KiriX (Сообщение 9588)
Да, влияет длина сообщения. При чём не зависимо от этой самой длины MOTD командой .s motd выводится нормально, а вот при логине - нет.

Видимо при логине объявляется переменная, в которую заносится motd, и если размера этой переменной не хватает - motd не наблюдается. А вот при команде .s motd текст выводится напрямую, обходя мало-лимитированные переменные. Это лишь догадки.

KiriX 25.06.2010 22:53

Цитата:

Сообщение от Hantet (Сообщение 9602)
Видимо при логине объявляется переменная, в которую заносится motd, и если размера этой переменной не хватает - motd не наблюдается. А вот при команде .s motd текст выводится напрямую, обходя мало-лимитированные переменные. Это лишь догадки.

Скорее всего именно так...

tempura 25.06.2010 23:36

Причем мотд примерно 255 знаков. Опытным путем выяснено. :)
Найдешь где хайдится - мне скажи. А то я там хотел хотя бы одну главу "Войны и мира" зацитировать, а не принимает, сцуко! :(

KiriX 26.06.2010 00:07

Цитата:

Сообщение от tempura (Сообщение 9605)
Причем мотд примерно 255 знаков. Опытным путем выяснено. :)
Найдешь где хайдится - мне скажи. А то я там хотел хотя бы одну главу "Войны и мира" зацитировать, а не принимает, сцуко! :(

255 инглишь? Русских явно не столько =)

tempura 26.06.2010 00:26

эм... вот это хороший вопрос... Слушай, я навскидку не помню, тестировать сейчас рук и головы не хватит, но что вспоминается... Букв англ (кажется) вообще дохрена можно было сунуть. А рус - что-то именно с количеством символов, я еще помнится все подбивал их в нужное число.
Опять же - в чистой теории - англ символ в юникоде - два байта (или бита?), а не-англ - четыре? (или это я уже совсем полный бред гоню?)

KiriX 26.06.2010 00:38

Цитата:

Сообщение от tempura (Сообщение 9616)
эм... вот это хороший вопрос... Слушай, я навскидку не помню, тестировать сейчас рук и головы не хватит, но что вспоминается... Букв англ (кажется) вообще дохрена можно было сунуть. А рус - что-то именно с количеством символов, я еще помнится все подбивал их в нужное число.
Опять же - в чистой теории - англ символ в юникоде - два байта (или бита?), а не-англ - четыре? (или это я уже совсем полный бред гоню?)

Так-так... А это значит, что motd из русских символов будет по количеству символов ровно в два раза меньше чем motd из инглишь символов =(
Если размер ограничен в соответствии с требованием опкода - тот тут уже ничего не попишешь...

tempura 26.06.2010 07:38

Цитата:

Сообщение от KiriX (Сообщение 9619)
motd из русских символов будет по количеству символов ровно в два раза меньше чем motd из инглишь символов

в смысле - больше, то бишь - длиннее?

KiriX 26.06.2010 11:01

Цитата:

Сообщение от tempura (Сообщение 9625)
в смысле - больше, то бишь - длиннее?

Объясняю на пальцах =)
У тебя есть ёмкость в 10 литров. И набор шариков - латинские шарики, каждый объёмом в 1 литр и весом 1 кг и кириллические шарики - тоже весом в 1 кг, но объёмом в 2 литра каждый.
Каких шариков по сути ты унесёшь больше в своей посудине? =)
Тут:
Вес - количество символов (1 символ - 1 кг)
Объём - длина одного символа типа в байтах
Кастрюля - резервированный объём памяти под motd в mangos

tempura 27.06.2010 20:31





А что мы, в итоге, имеем из конкретных сведений? Какие-то ограничения на мотд стоят, или это мы сами тут себе напридумывали?

KiriX 28.06.2010 10:22

Цитата:

Сообщение от tempura (Сообщение 9688)

А что мы, в итоге, имеем из конкретных сведений? Какие-то ограничения на мотд стоят, или это мы сами тут себе напридумывали?

Вероятнее всего в опкоде, в котором посылается мотд - текст должен быть опред объёма - отсюда и ограничение...

Hantet 28.06.2010 14:09

Цитата:

Добро пожаловать в русскоязычные игровые миры World of Warcraft!
64 символа. Blizzard специально текст подбирали или совпадение? :)
Кто проверит?

timmit 28.06.2010 14:28

когда заходишь там не только это запись, там еще пару тройка строк на русском на счет записей и их кражи :) И это тоже в мотд я так понял входит

xex 28.06.2010 15:08

В motd может быть сколько угодно строк.
Каждая строка отделяется символом @.
Длина строки в пакете - байт? (предположение)
По крайней мере нельзя написать больше 255 символов в чат в игре.
Из этого и исходим.
Пишем motd следующего вида:
motd = "Первая строка@Вторая строка@n-∞ строка" # =)

KiriX 29.06.2010 08:46

Цитата:

Сообщение от xex (Сообщение 9709)
В motd может быть сколько угодно строк.
Каждая строка отделяется символом @.
Длина строки в пакете - байт? (предположение)
По крайней мере нельзя написать больше 255 символов в чат в игре.
Из этого и исходим.
Пишем motd следующего вида:
motd = "Первая строка@Вторая строка@n-∞ строка" # =)

Логично, но попробуйте в мотд вставить текст, например, в длину этого моего сообщения.

Хотя даже меньше всё равно не отображает...

xex 29.06.2010 10:14

Цитата:

Сообщение от KiriX (Сообщение 9720)
Логично, но попробуйте в мотд вставить текст, например, в длину этого моего сообщения.

Хотя даже меньше всё равно не отображает...

Точно, практика размышлизмы не подтвердила =)
Загружаться загружается, но клиент не отображает.

Поэкспериментировав выяснилось:
макс. длина строки с русскими буквами без пробелов в utf-8: 49 символов;
макс. возможно строк: 40.

Итого имеем 49 * 40 = 1960 символов. Вполне достаточно для чего угодно.

Hantet 29.06.2010 15:18

Цитата:

Сообщение от xex (Сообщение 9724)
Точно, практика размышлизмы не подтвердила =)
Загружаться загружается, но клиент не отображает.

Поэкспериментировав выяснилось:
макс. длина строки с русскими буквами без пробелов в utf-8: 49 символов;
макс. возможно строк: 40.

Итого имеем 49 * 40 = 1960 символов. Вполне достаточно для чего угодно.

Главное не забывать ставить вовремя собаку :)

tempura 29.06.2010 23:02

То есть ограничение идет не на общую длину текста, а на длину строки? Вот это удачно, спасиба.

KiriX 29.06.2010 23:36

Цитата:

Сообщение от tempura (Сообщение 9758)
То есть ограничение идет не на общую длину текста, а на длину строки? Вот это удачно, спасиба.

Теоретически, да. Практически - как раз наоборот - на длину строки. Если строка слишком длинна - не отображает - надо переносить.

joni 08.08.2010 12:03

Здравствуйте, помогите с решением проблемы

Чистое ядро
maNGOS/0.17.0 (** Revision 10326 -* ) for Linux_x32
библиотека скриптов: 10307+
База данных:
YTDB - R559

раз сервер упал, в консоли написало:

Код:

Ошибка сегментации
Сервер стоит на виртуальной машине.
у меня есть предположение по поводу этой ошибки но оно не профессиональное.... поскольку машина виртуальная и ей выделяется только часть памяти то возможно ошибка кроется в этом... но нужно мнение более опытных.

раз сервер упал, в консоли написало:

прилагаю скриншот.

раз сервер упал, в консоли написало:

прилагаю скриншот

За ранее буду очень благодарен.

tempura 08.08.2010 12:25

Цитата:

Сообщение от joni (Сообщение 12231)
раз сервер упал, в консоли написало:

прилагаю скриншот.

раз сервер упал, в консоли написало:

прилагаю скриншот

Правила написания баг-репортов
Цитата:

За скриншоты консоли - сразу убивать буду, либо заставлю руками их в пост перепечатывать.


Цитата:

Сообщение от joni (Сообщение 12231)
За ранее буду очень благодарен.

За позднее - будешь.

joni 08.08.2010 17:14

Хорошо, в следующий раз, буду более внимательным.

пункт 2-3 выложу не много позже.

Не могли бы Вы подсказать, по поводу 1го пункта? чем эта ошибка могла быть вызвана

Код:

Ошибка сегментации
Сейчас снова упал сервер. В консоли пишется:

Код:

Couldn't find the caster of the single target aura (SpellId 59131), may crash later!
../../../src/game/SpellAuras.cpp:8848: Error: Assertion in UnregisterSingleCastHolder failed: false
Stack Trace:
./mangos-worldd(_ZN4Unit21RemoveSpellAuraHolderEP15SpellAuraHolder14AuraRemoveMode+0xfb) [0x83cda8b]
./mangos-worldd(_ZN4Unit29RemoveNotOwnSingleTargetAurasEj+0x106) [0x83ce446]
./mangos-worldd(_ZN4Unit15RemoveFromWorldEv+0x48) [0x83cf3c8]
./mangos-worldd(_ZN8Creature15RemoveFromWorldEv+0x1d) [0x818aa4d]
./mangos-worldd(_ZN18ObjectGridUnloader5VisitI8CreatureEEvR14GridRefManagerIT_E+0x45) [0x82902e5]
./mangos-worldd(_ZN18ObjectGridUnloader6UnloadER4GridI6Player8TypeListIS1_S2_I8CreatureS2_I6CorpseS2_I6Camera8TypeNullEEEES2_I10GameObjectS2_IS3_S2_I13DynamicObjectS2_IS4_S6_EEEEE+0x2d) [0x828f8bd]
./mangos-worldd(_ZN3Map10UnloadGridERKjS1_b+0xe2) [0x825fa02]
./mangos-worldd(_ZNK12RemovalState6UpdateER3MapR5NGridILj8E6Player8TypeListIS3_S4_I8CreatureS4_I6CorpseS4_I6Camera8TypeNullEEEES4_I10GameObjectS4_IS5_S4_I13DynamicObjectS4_IS6_S8_EEEEER8GridInfoRKjSO_SO_+0x62) [0x8450892]
./mangos-worldd(_ZN3Map6UpdateERKj+0x874) [0x826aed4]
./mangos-worldd(_ZN10MapManager6UpdateEj+0x95) [0x8275d05]
./mangos-worldd(_ZN5World6UpdateEj+0x1f2) [0x83fd652]
./mangos-worldd(_ZN13WorldRunnable3runEv+0xb8) [0x81438e8]
./mangos-worldd(_ZN9ACE_Based6Thread10ThreadTaskEPv+0x1a) [0x84ad3aa]
/opt/mangos/lib/libACE-5.6.6.so(_ZN21ACE_OS_Thread_Adapter6invokeEv+0x6e) [0xb7ea023e]
/opt/mangos/lib/libACE-5.6.6.so(ace_thread_adapter+0x11) [0xb7e49f41]
/lib/libpthread.so.0 [0xb76daf3b]
/lib/libc.so.6(clone+0x5e) [0xb7540d0e]
mangos-worldd: ../../../src/game/SpellAuras.cpp:8848: void SpellAuraHolder::UnregisterSingleCastHolder(): Assertion `"false" && 0' failed.
Аварийный останов



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

ru-mangos.ru - Русское сообщество MaNGOS