My server is crashing, it occurs when certain characters login, so far have 2 characters been busted. Nothing alike, one player logged out on a boat, other one got bugged when going into offline trainers. Then when trying to login they crash the server, below is one of the characters trying to login.
Using: OTSERVBR
OS: Ubuntu 20.04
I'm getting this error in gdb:
Using: OTSERVBR
OS: Ubuntu 20.04
I'm getting this error in gdb:
C++:
Thread 2 "otbr" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff79d6700 (LWP 16271)]
ItemAttributes::getIntAttr (this=0x7000700070002, type=ITEM_ATTRIBUTE_DECAYSTATE) at /home/otsmanager/otservbr-global/src/items/item.cpp:2375
2375 const Attribute* attr = getExistingAttr(type);
(gdb) bt full
#0 ItemAttributes::getIntAttr (this=0x7000700070002, type=ITEM_ATTRIBUTE_DECAYSTATE) at /home/otsmanager/otservbr-global/src/items/item.cpp:2375
attr = <optimized out>
#1 0x00005555556f0dd3 in ItemAttributes::getIntAttr (type=ITEM_ATTRIBUTE_DECAYSTATE, this=<optimized out>) at /home/otsmanager/otservbr-global/src/items/item.h:825
attr = <optimized out>
#2 Item::getIntAttr (type=<optimized out>, this=<optimized out>, this=<optimized out>, type=<optimized out>) at /home/otsmanager/otservbr-global/src/items/item.h:623
No locals.
#3 Item::getDecaying (this=0x7ffff00008d0) at /home/otsmanager/otservbr-global/src/items/item.h:828
No locals.
#4 Game::startDecay(Item*) [clone .constprop.0] (item=0x7ffff00008d0, this=<optimized out>) at /home/otsmanager/otservbr-global/src/game/game.cpp:6426
decayState = <optimized out>
duration = <optimized out>
#5 0x0000555555835e45 in Container::startDecaying (this=0x7fff96affbf0) at /home/otsmanager/otservbr-global/src/items/containers/container.cpp:822
it = {over = std::__cxx11::list = {[0] = 0x7fff96b00190}, cur = 0x7ffff00008d0}
#6 0x00005555558577f0 in IOLoginData::loadPlayer (player=0x7fffc1606550, result=...) at /home/otsmanager/otservbr-global/src/io/iologindata.cpp:611
it2 = <optimized out>
container = <optimized out>
pair = <optimized out>
item = 0x7fff96affbf0
pid = <optimized out>
itemContainer = <optimized out>
it = <optimized out>
end = {<std::iterator<std::bidirectional_iterator_tag, std::pair<unsigned int const, std::pair<Item*, unsigned int> >, long, std::pair<unsigned int const, std::pair<Item*, unsigned int> > const*, std::pair<unsigned int const, std::pair<Item*, unsigned int> > const&>> = {<No data fields>}, current = {first = 101, second = {first = 0x7fff0dc3a5f0, second = 1}}}
db = <optimized out>
accno = <optimized out>
acc = {db_ = 0x555555f11400 <Database::getInstance()::instance>, db_tasks_ = 0x555555f1a440 <g_databaseTasks>, id_ = 38, name_ = "NOTSAFE", password_ = "423423423423424234234234234", premium_remaining_days_ = 0,
premium_last_day_ = 0, account_type_ = account::ACCOUNT_TYPE_NORMAL}
group = <optimized out>
experience = <optimized out>
currExpCount = <optimized out>
nextExpCount = <optimized out>
attrSize = 43
attr = <optimized out>
propStream = {p = 0x7fff9f19a638 "^\246\031\237\377\177", end = 0x7fff9f19a638 "^\246\031\237\377\177"}
condition = <optimized out>
nextManaCount = <optimized out>
manaSpent = <optimized out>
town = <optimized out>
loginPos = @0x7fffc1606c9a: {x = 32817, y = 31274, z = 7 '\a'}
query = <incomplete type>
itemMap = std::map with 34 elements = {[101] = {first = 0x7fff0dc3a5f0, second = 1}, [102] = {first = 0x7fff96affbf0, second = 3}, [103] = {first = 0x7fffc1605640, second = 4}, [104] = {first = 0x7fff0dc737c0, second = 5},
[105] = {first = 0x7fff6bd9c480, second = 6}, [106] = {first = 0x7fffc7ee7790, second = 7}, [107] = {first = 0x7fffc9e028e0, second = 8}, [108] = {first = 0x7fff7f4288f0, second = 10}, [109] = {first = 0x7fff96afff10,
second = 11}, [110] = {first = 0x7ffeff3a2c20, second = 102}, [111] = {first = 0x7fff6bda0590, second = 102}, [112] = {first = 0x7fff97be4450, second = 102}, [113] = {first = 0x7fff9f1a15f0, second = 102}, [114] = {
first = 0x7ffee7075240, second = 102}, [115] = {first = 0x7fff96b00190, second = 102}, [116] = {first = 0x7fff5b95d690, second = 102}, [117] = {first = 0x7fffef613740, second = 102}, [118] = {first = 0x7fff6bdc4150,
second = 115}, [119] = {first = 0x7fffc64dc570, second = 115}, [120] = {first = 0x7fffbd0387d0, second = 115}, [121] = {first = 0x7fff77aa0880, second = 115}, [122] = {first = 0x7fff5ab4ea40, second = 115}, [123] = {
first = 0x7fff61d92920, second = 115}, [124] = {first = 0x7fff5ab440b0, second = 115}, [125] = {first = 0x7fffbd043880, second = 115}, [126] = {first = 0x7fff40554930, second = 115}, [127] = {first = 0x7fff0e996a50,
second = 115}, [128] = {first = 0x7fffacbe22c0, second = 115}, [129] = {first = 0x7fff6bcb1e80, second = 115}, [130] = {first = 0x7fffa87499e0, second = 115}, [131] = {first = 0x7fff35f63aa0, second = 115}, [132] = {
first = 0x7fffec3acdc0, second = 115}, [133] = {first = 0x7fff64554c30, second = 115}, [134] = {first = 0x7fff6d7fcac0, second = 115}}
openContainersList = std::vector of length 0, capacity 0
skillNames = {"skill_fist", "skill_club", "skill_sword", "skill_axe", "skill_dist", "skill_shielding", "skill_fishing", "skill_critical_hit_chance", "skill_critical_hit_damage", "skill_life_leech_chance",
"skill_life_leech_amount", "skill_mana_leech_chance", "skill_mana_leech_amount"}
skillNameTries = {"skill_fist_tries", "skill_club_tries", "skill_sword_tries", "skill_axe_tries", "skill_dist_tries", "skill_shielding_tries", "skill_fishing_tries", "skill_critical_hit_chance_tries",
"skill_critical_hit_damage_tries", "skill_life_leech_chance_tries", "skill_life_leech_amount_tries", "skill_mana_leech_chance_tries", "skill_mana_leech_amount_tries"}
__func__ = <optimized out>
size = <optimized out>
#7 0x000055555585b623 in IOLoginData::loadPlayerById (player=0x7fffc1606550, id=<optimized out>) at /usr/include/c++/9/bits/basic_string.h:1936
db = <optimized out>
query = <incomplete type>
#8 0x000055555575c82e in ProtocolGame::login (this=<optimized out>, name=..., accountId=<optimized out>, operatingSystem=<optimized out>) at /home/otsmanager/otservbr-global/src/creatures/players/player.h:220
waitingList = @0x555555f1edd0: {info = std::unique_ptr<WaitListInfo> = {get() = 0x7fff97bdb700}}
foundPlayer = <optimized out>
__func__ = <optimized out>
#9 0x000055555585b312 in std::function<void ()>::operator()() const (this=0x555555f58e70) at /usr/include/c++/9/bits/std_function.h:683
No locals.
#10 Task::operator() (this=0x555555f58e60) at /home/otsmanager/otservbr-global/src/game/scheduling/tasks.h:40
--Type <RET> for more, q to quit, c to continue without paging--
Last edited: