Последнее время муд стал падать со странными сообщениями
crash here: *** buffer overflow detected ***: terminated
Я погуглил, пишут что это ошибка в модуле EPOLL, я решил его выключить. Залез в код, а он выключен, причем очень давно, когда я добавлял в код поддержку нескольких портов. Тогда надо включить, может ошибка пропадет – по-ламерски подумал я. Стал пытаться включить, не компилируется, из-за моих изменений по многопортовости. Возился, возился, бросил, подумал, что это знак перейти на свежий код.
И Виртустан перешел на свежую версию кода Былин. В результате все мои новые команды и модификации пропали, но они сохранены в старой версии кода, постепенно я их внесу.
Но зато я сделал патч до внесению протокола MSSP в свежий код Былин.
Патч вот.
Приложения.
1. Почему эти ошибки стали возникать только в последнее время? Я постоянно обновляю свой сервер, это общие правила безопасности, без этого нельзя. Но с обновлениями приходят не только новые фичи, но и новые баги. Или как другая версия, мир изменился (я чувствую это в земле, я чувствую это в воде) и появился новый тип интернет-атак с длинным запросом. А атаки в интернете постоянно развиватся, например последние дни я начал замечать в логах nginx запросы на файлы типа backup.sql (к мудам это не имеет никакого отношения, но подобных запросов раньше не было)
2. Что такое EPOLL. Работа с периферийными устройствами может быть по прерыванию или по запросу. Муды обычно работают по запросу (httpd и Майнкрафт тоже). Но есть несколько версий библиотек для этого. Первая, это старый классический poll/select, вторая EPOLL, а есть еще EPOLL2. Код Былин может унаследовал от своего отца Circle два способа – poll и EPOLL (см. в коде операторы #ifdef EPOLL). В Линуксе можно и так и так, а в cygwin и macOS компилируется тольков варианте без EPOLL.
3. Поддержка доступа к маду по нескольким портам в самом маде необязательна. Ее можно сделать снаружи мада, например, средствами iptable. Но пока Виртустан работает только на порту 3000 (хост мой стандарный, mud.kharkov.org)
Tag: virtustanmud
Свежая сборка MUD сервера Виртустан для Windows
Еще один переезд
22 февраля 2021 года мои мады и их сайты опять переехали, теперь на сервер с 8 гигабайтами ОЗУ и 50Г диска . (Нет, для мада так много не нужно, для него хватит 1 Г ОЗУ и диска 10Г вместе с ОС, но там у меня крутятся и другие проекты, например Майнкрафт и Майнтест). И ОС Убунту там более новая – 20.04.1 (а на предыдущем сервере была 18.04) Надеюсь, на этом сервере я обоснуюсь надолго. Работа графиков мад-статистики будет налажена в течение 24-25-26 февраля.
Бег по граблям
Я люблю бегать по граблям, в частности, натыкаясь на какую-нибудь ошибку, порой исправляю ее и забываю, как именно я ее исправил и спустя несколько месяцев (или лет) опять натыкаюсь на нее и опять начинаю думать, как же ее исправлять.
Так вот, для памяти запишу: код Виртустан-мада и Старого Зеркала плохо собирается на 64-битных системах, например в cygwin, флаг -m32 и соответствующие библиотеки помогают не всегда. В частности, под cygwin/64 он либо не собирается либо собирается и сразу падает в корку. Ну и чорт с ним, потому как все нормально собирается на 32-разрядном Цигвине, а 32-разрядные exe нормально работают в 64-разрядной Винде.
А на 64-разрядной Ubuntu 18.04.3 мой Виртустан собрался и нормально работает. И Старое Зеркало. (А Былины, как и Ноыое Зеркало изначально заточены именно под Ubuntu x86_64)
Расстрелять!
Сегодня мне на е-мейл пришло письмо с вопросами по поводу лицензии на мой Виртустан мад. В своей наивности в репозитории на Гитхабе я поставил опцию Unlicense (рассуждал я примерно так: лицензии Diku/Circle это не GPL/LGPL/CC/Apache, значит это “прочие лицензии”, а Unlicense наверное что-то похожее и обозначает).
Чем грозит мне это письмо, пока непонятно, но мне уже страшно. Оно подписано просто именем, может даже псевдонимом, может это какой-то китайский программист-энтузиаст, который уточняет, можно ли ему использовать мой код. А может, это юрист, который готовит многомиллионный иск и остаток своих дней я проведу в Азкабане.
Я ответил и кратко изложил уровень своего непонимания и сказал, что все исправлю. Чем, наверное, подписал себе приговор, так как признал свое деяние.
Не, это не Азкабан, это сразу гильотина.
Хотя, может, это кто-то из коллег развлекается. (Бодрич, ты?)
Клонируйте мой проект с Гитхаба, Гитлаба или Битбакета, потому как, боюсь, недолго ему осталось.