SimOne about high cpu usage:
Code:Im working on a solution (based on the work of Remere). It seems to work as it should but need to do some more tests before uploading it.
I was able to reproduce that myself:other bug: if u put notation in rule violation and after this, ban the same player, the server crash
*****************************************************
Error report - Fri Mar 14 19:28:56 2008
Compiler info - gcc 3.4.2 (mingw-special)
Compilation Date - Mar 14 2008 19:00:03
Memory load: 66
Total phys: 4194303 K available phys: 2786984 K
Start time: 14-3-2008 18:24:13
Kernel time: 0:0:0.328
User time: 0:0:2.78
Threads: 5
Exception: 0xc0000005 at eip = 0x40c292(IOBan::loadBans(Ban&) - 0x40c1c0)
eax = 0x8
ebx = 0xb08fbac -> 0x46bcec
ecx = 0x77bbcefb -> 0xccccccc3
edx = 0xb08f5e4 -> 0x6c8df0
esi = 0x311d0c0 -> 0xcf8
edi = 0
ebp = 0xb08f614 -> 0xb08fc64
esp = 0xb08f58c -> 0xb08f5e8
efl = 0x10202
---Stack Trace---
From: 0xb08f58c to: 0xb090000
0xb08f58c | 0xb08f5e8 -> 0
0xb08f590 | 0xb08f5e4 -> 0x6c8df0
0xb08f594 | 0x1
0xb08f598 | 0x5d4a00 -> 0x59a6e800
0xb08f59c | 0x69d7f0 -> 0x5cfc04
0xb08f5a0 | 0x46bcec -> 0x83e58955
0xb08f5a0 AccessList::isInList(Player const*)(0x46bb5a)
0xb08f5a4 | 0xb08f5c4 -> 0xb08f5e4
0xb08f5a8 | 0x5cfc3d -> 0x5590c3c9
0xb08f5ac | 0xb08fc30 -> 0
0xb08f5b0 | 0xb08f7c8 -> 0xb08fcb8
0xb08f5b4 | 0x1
0xb08f5b8 | 0x607c00 -> 0x2ae824
0xb08f5bc | 0xb08f5d0 -> 0xb08f5fc
0xb08f5c0 | 0xb08f5cc -> 0x69425c
0xb08f5c4 | 0xb08f5e4 -> 0x6c8df0
0xb08f5c8 | 0x5880e0 -> 0x8de58955
0xb08f5cc | 0x69425c -> 0x201ffff
0xb08f5d0 | 0xb08f5fc -> 0xb08fc2c
0xb08f5d4 | 0x40c2dd -> 0x8b186d8d
0xb08f5d4 IOBan::loadBans(Ban&)(0x40c1c0)
0xb08f5d8 | 0xb08f58c -> 0xb08f5e8
0xb08f5f0 | 0xb08fc30 -> 0
0xb08f5f4 | 0xb08f604 -> 0xb08f614
0xb08f5f8 | 0x5d6029 -> 0x5590c3c9
0xb08f5fc | 0xb08fc2c -> 0
0xb08f600 | 0xb08f620 -> 0x791647
0xb08f604 | 0xb08f614 -> 0xb08fc64
0xb08f608 | 0xb08fbac -> 0x46bcec
0xb08f60c | 0x311d0c0 -> 0xcf8
0xb08f610 | 0
0xb08f614 | 0xb08fc64 -> 0xb08fd44 \\\\\\ stack frame //////
0xb08f618 | 0x46ab82 -> 0x8988458d <-- ret
0xb08f618 AccessList::parseList(std::string const&)(0x46a5e6)
0xb08f61c | 0x6c8de0 -> 0x6c8de0
0xb08f620 | 0x791647
0xb08f624 | 0
0xb08f628 | 0x6c8e60 -> 0x30eb890
0xb08f62c | 0x10000682 -> 0
0xb08f630 | 0
0xb08f634 | 0
0xb08f638 | 0x3257cc4 -> 0x6b6b6146
0xb08f7ec AccessList::parseList(std::string const&)(0x46a5e6)
0xb08fbac AccessList::isInList(Player const*)(0x46bb5a)
0xb08fc40 | 0x1000000
0xb08fc44 | 0x3493140 -> 0x6c4b98
0xb08fc48 | 0x5cfa0c -> 0x9090c3c9
0xb08fc4c | 0xb08fd60 -> 0x2
0xb08fc50 | 0xb08fd60 -> 0x2
0xb08fc54 | 0x1
0xb08fc58 | 0x311ac90 -> 0x311cfb8
0xb08fc5c | 0x311d0c0 -> 0xcf8
0xb08fc60 | 0
0xb08fc64 | 0xb08fd44 -> 0xb08fe34 \\\\\\ stack frame //////
0xb08fc68 | 0x5fd011 -> 0x89c0b60f <-- ret
0xb08fc6c | 0x6c8e60 -> 0x30eb890
0xb08fc70 | 0x10000683 -> 0
0xb08fc74 | 0xb08fcec -> 0x3315fa4
0xb08fc78 | 0xc
0xb08fc7c | 0x2
0xb08fc80 | 0xb08fcfc -> 0x3257cc4
0xb08fc84 | 0xb08fd0c -> 0x69d518
0xb08fc88 | 0
0xb08fca0 House::setAccessList(unsigned int, std::string const&)(0x468b68)
0xb08fd20 | 0x33242a8 -> 0x1
0xb08fd24 | 0x311ac90 -> 0x311cfb8
0xb08fd28 | 0xbc6c74 -> 0x568b0d73
0xb08fd2c | 0x77ba20e8 -> 0xffffffff
0xb08fd30 | 0xffffffff
0xb08fd34 | 0xb08fd44 -> 0xb08fe34
0xb08fd38 | 0x311ac90 -> 0x311cfb8
0xb08fd3c | 0x311d0c0 -> 0xcf8
0xb08fd40 | 0
0xb08fd44 | 0xb08fe34 -> 0xb08fe54 \\\\\\ stack frame //////
0xb08fd48 | 0x5aafb3 -> 0x89c0b60f <-- ret
0xb08fd4c | 0x3324248 -> 0x468ca2
0xb08fd50 | 0x6c8e60 -> 0x30eb890
0xb08fd54 | 0x10000683 -> 0
0xb08fd58 | 0xb08fdec -> 0x32d8bc4
0xb08fd5c | 0xc
0xb08fd60 | 0x2
0xb08fd64 | 0xb08fdfc -> 0x3257cc4
0xb08fd68 | 0xb08fe0c -> 0x69d518
0xb08fe10 | 0x1ffff
0xb08fe14 | 0xb08fd5c -> 0xc
0xb08fe18 | 0x5887c5 -> 0x9090c3c9
0xb08fe1c | 0xb08fe64 -> 0xb08fee4
0xb08fe20 | 0x7d61f1f8 -> 0x83ec8b55
0xb08fe24 | 0x7d61f5f0 -> 0xffffffff
0xb08fe28 | 0x311ac90 -> 0x311cfb8
0xb08fe2c | 0x311d0c0 -> 0xcf8
0xb08fe30 | 0
0xb08fe34 | 0xb08fe54 -> 0xb08fe64 \\\\\\ stack frame //////
0xb08fe38 | 0x5ac5d6 -> 0xc9c0b60f <-- ret
0xb08fe3c | 0x3324250 -> 0x6c8e60
0xb08fe40 | 0
0xb08fe44 | 0x3324248 -> 0x468ca2
0xb08fe48 | 0xb08fe53 -> 0x8fe640b
0xb08fe4c | 0
0xb08fe50 | 0xb08fec0 -> 0x5e8d320
0xb08fe54 | 0xb08fe64 -> 0xb08fee4 \\\\\\ stack frame //////
0xb08fe58 | 0x5d02cd -> 0x5590c3c9 <-- ret
0xb08fe5c | 0x3324248 -> 0x468ca2
0xb08fe60 | 0x3324248 -> 0x468ca2
0xb08fe64 | 0xb08fee4 -> 0xb08fef4 \\\\\\ stack frame //////
0xb08fe68 | 0x5fe031 -> 0x89a4458d <-- ret
0xb08fe6c | 0x72c0244 -> 0x3324248
0xb08fe70 | 0xffffffff
0xb08fe74 | 0x77bbcefb -> 0xccccccc3
0xb08fe78 | 0x5887c5 -> 0x9090c3c9
0xb08fe7c | 0x5e8d320 -> 0x5bef2e8
0xb08fe80 | 0x24
0xb08fe84 | 0xb08fe94 -> 0xb08feb4
0xb08fe88 | 0x8dfbac -> 0x8df3dc
0xb08fec0 | 0x5e8d320 -> 0x5bef2e8
0xb08fec4 | 0xae8d431e
0xb08fec8 | 0x118
0xb08fecc | 0x47dac3e8
0xb08fed0 | 0xffc400de
0xb08fed4 | 0xb080000
0xb08fed8 | 0x311ac90 -> 0x311cfb8
0xb08fedc | 0x311d0c0 -> 0xcf8
0xb08fee0 | 0
0xb08fee4 | 0xb08fef4 -> 0xb08ff84 \\\\\\ stack frame //////
0xb08fee8 | 0x5a2429 -> 0x5590c3c9 <-- ret
0xb08feec | 0x72c0240 -> 0x69d798
0xb08fef0 | 0x311ac90 -> 0x311cfb8
0xb08fef4 | 0xb08ff84 -> 0xb08ffb8 \\\\\\ stack frame //////
0xb08fef8 | 0x521f2e -> 0x89d4458b <-- ret
0xb08fef8 getReason(int)(0x521476)
0xb08fefc | 0x72c0240 -> 0x69d798
0xb08ff00 | 0x69d54c -> 0x2eb3b8
0xb08ff04 | 0
0xb08ff08 | 0
0xb08ff0c | 0xde0000 -> 0xc8
0xb08ff10 | 0
0xb08ff14 | 0
0xb08ff18 | 0x98
0xb08ff48 getReason(int)(0x521476)
0xb08ff60 | 0xb08ffa8 -> 0xb08ffdc
0xb08ff64 | 0x44cda6 -> 0x57e58955
0xb08ff64 Game::~Game()(0x44cd76)
0xb08ff68 | 0
0xb08ff6c | 0xb08ff50 -> 0
0xb08ff70 | 0
0xb08ff74 | 0xb08ffa8 -> 0xb08ffdc
0xb08ff78 | 0x311ac90 -> 0x311cfb8
0xb08ff7c | 0x311d0c0 -> 0xcf8
0xb08ff80 | 0
0xb08ff84 | 0xb08ffb8 -> 0xb08ffec \\\\\\ stack frame //////
0xb08ff88 | 0x77bcb3ca -> 0xff4fe859 <-- ret
0xb08ff8c | 0
0xb08ff90 | 0
0xb08ff94 | 0
0xb08ff98 | 0x311ac90 -> 0x311cfb8
0xb08ff9c | 0
0xb08ffa0 | 0xb08ff90 -> 0
0xb08ffa4 | 0
0xb08ffa8 | 0xb08ffdc -> 0xffffffff
0xb08ffac | 0x77bc6c74 -> 0x83ec8b55
0xb08ffb0 | 0x77ba4138 -> 0xffffffff
0xb08ffb4 | 0
0xb08ffb8 | 0xb08ffec -> 0 \\\\\\ stack frame //////
0xb08ffbc | 0x7d4dfe21 -> 0x128ee850 <-- ret
0xb08ffc0 | 0x311ac90 -> 0x311cfb8
0xb08ffc4 | 0
0xb08ffc8 | 0
0xb08ffcc | 0x311ac90 -> 0x311cfb8
0xb08ffd0 | 0
0xb08ffd4 | 0xb08ffc4 -> 0
0xb08ffd8 | 0
0xb08ffdc | 0xffffffff
0xb08ffe0 | 0x7d4d89c4 -> 0x83ec8b55
0xb08ffe4 | 0x7d4dfe28 -> 0xffffffff
0xb08ffe8 | 0
0xb08ffec | 0 \\\\\\ stack frame //////
0xb08fff0 | 0 <-- ret
0xb08fff4 | 0x77bcb35a -> 0x38680c6a
0xb08fff8 | 0x311ac90 -> 0x311cfb8
0xb08fffc | 0
*****************************************************
I was able to reproduce that myself:Code:***************************************************** Error report - Fri Mar 14 19:28:56 2008 Compiler info - gcc 3.4.2 (mingw-special) Compilation Date - Mar 14 2008 19:00:03 Memory load: 66 Total phys: 4194303 K available phys: 2786984 K Start time: 14-3-2008 18:24:13 Kernel time: 0:0:0.328 User time: 0:0:2.78 Threads: 5 Exception: 0xc0000005 at eip = 0x40c292(IOBan::loadBans(Ban&) - 0x40c1c0) eax = 0x8 ebx = 0xb08fbac -> 0x46bcec ecx = 0x77bbcefb -> 0xccccccc3 edx = 0xb08f5e4 -> 0x6c8df0 esi = 0x311d0c0 -> 0xcf8 edi = 0 ebp = 0xb08f614 -> 0xb08fc64 esp = 0xb08f58c -> 0xb08f5e8 efl = 0x10202 ---Stack Trace--- From: 0xb08f58c to: 0xb090000 0xb08f58c | 0xb08f5e8 -> 0 0xb08f590 | 0xb08f5e4 -> 0x6c8df0 0xb08f594 | 0x1 0xb08f598 | 0x5d4a00 -> 0x59a6e800 0xb08f59c | 0x69d7f0 -> 0x5cfc04 0xb08f5a0 | 0x46bcec -> 0x83e58955 0xb08f5a0 AccessList::isInList(Player const*)(0x46bb5a) 0xb08f5a4 | 0xb08f5c4 -> 0xb08f5e4 0xb08f5a8 | 0x5cfc3d -> 0x5590c3c9 0xb08f5ac | 0xb08fc30 -> 0 0xb08f5b0 | 0xb08f7c8 -> 0xb08fcb8 0xb08f5b4 | 0x1 0xb08f5b8 | 0x607c00 -> 0x2ae824 0xb08f5bc | 0xb08f5d0 -> 0xb08f5fc 0xb08f5c0 | 0xb08f5cc -> 0x69425c 0xb08f5c4 | 0xb08f5e4 -> 0x6c8df0 0xb08f5c8 | 0x5880e0 -> 0x8de58955 0xb08f5cc | 0x69425c -> 0x201ffff 0xb08f5d0 | 0xb08f5fc -> 0xb08fc2c 0xb08f5d4 | 0x40c2dd -> 0x8b186d8d 0xb08f5d4 IOBan::loadBans(Ban&)(0x40c1c0) 0xb08f5d8 | 0xb08f58c -> 0xb08f5e8 0xb08f5f0 | 0xb08fc30 -> 0 0xb08f5f4 | 0xb08f604 -> 0xb08f614 0xb08f5f8 | 0x5d6029 -> 0x5590c3c9 0xb08f5fc | 0xb08fc2c -> 0 0xb08f600 | 0xb08f620 -> 0x791647 0xb08f604 | 0xb08f614 -> 0xb08fc64 0xb08f608 | 0xb08fbac -> 0x46bcec 0xb08f60c | 0x311d0c0 -> 0xcf8 0xb08f610 | 0 0xb08f614 | 0xb08fc64 -> 0xb08fd44 \\\\\\ stack frame ////// 0xb08f618 | 0x46ab82 -> 0x8988458d <-- ret 0xb08f618 AccessList::parseList(std::string const&)(0x46a5e6) 0xb08f61c | 0x6c8de0 -> 0x6c8de0 0xb08f620 | 0x791647 0xb08f624 | 0 0xb08f628 | 0x6c8e60 -> 0x30eb890 0xb08f62c | 0x10000682 -> 0 0xb08f630 | 0 0xb08f634 | 0 0xb08f638 | 0x3257cc4 -> 0x6b6b6146 0xb08f7ec AccessList::parseList(std::string const&)(0x46a5e6) 0xb08fbac AccessList::isInList(Player const*)(0x46bb5a) 0xb08fc40 | 0x1000000 0xb08fc44 | 0x3493140 -> 0x6c4b98 0xb08fc48 | 0x5cfa0c -> 0x9090c3c9 0xb08fc4c | 0xb08fd60 -> 0x2 0xb08fc50 | 0xb08fd60 -> 0x2 0xb08fc54 | 0x1 0xb08fc58 | 0x311ac90 -> 0x311cfb8 0xb08fc5c | 0x311d0c0 -> 0xcf8 0xb08fc60 | 0 0xb08fc64 | 0xb08fd44 -> 0xb08fe34 \\\\\\ stack frame ////// 0xb08fc68 | 0x5fd011 -> 0x89c0b60f <-- ret 0xb08fc6c | 0x6c8e60 -> 0x30eb890 0xb08fc70 | 0x10000683 -> 0 0xb08fc74 | 0xb08fcec -> 0x3315fa4 0xb08fc78 | 0xc 0xb08fc7c | 0x2 0xb08fc80 | 0xb08fcfc -> 0x3257cc4 0xb08fc84 | 0xb08fd0c -> 0x69d518 0xb08fc88 | 0 0xb08fca0 House::setAccessList(unsigned int, std::string const&)(0x468b68) 0xb08fd20 | 0x33242a8 -> 0x1 0xb08fd24 | 0x311ac90 -> 0x311cfb8 0xb08fd28 | 0xbc6c74 -> 0x568b0d73 0xb08fd2c | 0x77ba20e8 -> 0xffffffff 0xb08fd30 | 0xffffffff 0xb08fd34 | 0xb08fd44 -> 0xb08fe34 0xb08fd38 | 0x311ac90 -> 0x311cfb8 0xb08fd3c | 0x311d0c0 -> 0xcf8 0xb08fd40 | 0 0xb08fd44 | 0xb08fe34 -> 0xb08fe54 \\\\\\ stack frame ////// 0xb08fd48 | 0x5aafb3 -> 0x89c0b60f <-- ret 0xb08fd4c | 0x3324248 -> 0x468ca2 0xb08fd50 | 0x6c8e60 -> 0x30eb890 0xb08fd54 | 0x10000683 -> 0 0xb08fd58 | 0xb08fdec -> 0x32d8bc4 0xb08fd5c | 0xc 0xb08fd60 | 0x2 0xb08fd64 | 0xb08fdfc -> 0x3257cc4 0xb08fd68 | 0xb08fe0c -> 0x69d518 0xb08fe10 | 0x1ffff 0xb08fe14 | 0xb08fd5c -> 0xc 0xb08fe18 | 0x5887c5 -> 0x9090c3c9 0xb08fe1c | 0xb08fe64 -> 0xb08fee4 0xb08fe20 | 0x7d61f1f8 -> 0x83ec8b55 0xb08fe24 | 0x7d61f5f0 -> 0xffffffff 0xb08fe28 | 0x311ac90 -> 0x311cfb8 0xb08fe2c | 0x311d0c0 -> 0xcf8 0xb08fe30 | 0 0xb08fe34 | 0xb08fe54 -> 0xb08fe64 \\\\\\ stack frame ////// 0xb08fe38 | 0x5ac5d6 -> 0xc9c0b60f <-- ret 0xb08fe3c | 0x3324250 -> 0x6c8e60 0xb08fe40 | 0 0xb08fe44 | 0x3324248 -> 0x468ca2 0xb08fe48 | 0xb08fe53 -> 0x8fe640b 0xb08fe4c | 0 0xb08fe50 | 0xb08fec0 -> 0x5e8d320 0xb08fe54 | 0xb08fe64 -> 0xb08fee4 \\\\\\ stack frame ////// 0xb08fe58 | 0x5d02cd -> 0x5590c3c9 <-- ret 0xb08fe5c | 0x3324248 -> 0x468ca2 0xb08fe60 | 0x3324248 -> 0x468ca2 0xb08fe64 | 0xb08fee4 -> 0xb08fef4 \\\\\\ stack frame ////// 0xb08fe68 | 0x5fe031 -> 0x89a4458d <-- ret 0xb08fe6c | 0x72c0244 -> 0x3324248 0xb08fe70 | 0xffffffff 0xb08fe74 | 0x77bbcefb -> 0xccccccc3 0xb08fe78 | 0x5887c5 -> 0x9090c3c9 0xb08fe7c | 0x5e8d320 -> 0x5bef2e8 0xb08fe80 | 0x24 0xb08fe84 | 0xb08fe94 -> 0xb08feb4 0xb08fe88 | 0x8dfbac -> 0x8df3dc 0xb08fec0 | 0x5e8d320 -> 0x5bef2e8 0xb08fec4 | 0xae8d431e 0xb08fec8 | 0x118 0xb08fecc | 0x47dac3e8 0xb08fed0 | 0xffc400de 0xb08fed4 | 0xb080000 0xb08fed8 | 0x311ac90 -> 0x311cfb8 0xb08fedc | 0x311d0c0 -> 0xcf8 0xb08fee0 | 0 0xb08fee4 | 0xb08fef4 -> 0xb08ff84 \\\\\\ stack frame ////// 0xb08fee8 | 0x5a2429 -> 0x5590c3c9 <-- ret 0xb08feec | 0x72c0240 -> 0x69d798 0xb08fef0 | 0x311ac90 -> 0x311cfb8 0xb08fef4 | 0xb08ff84 -> 0xb08ffb8 \\\\\\ stack frame ////// 0xb08fef8 | 0x521f2e -> 0x89d4458b <-- ret 0xb08fef8 getReason(int)(0x521476) 0xb08fefc | 0x72c0240 -> 0x69d798 0xb08ff00 | 0x69d54c -> 0x2eb3b8 0xb08ff04 | 0 0xb08ff08 | 0 0xb08ff0c | 0xde0000 -> 0xc8 0xb08ff10 | 0 0xb08ff14 | 0 0xb08ff18 | 0x98 0xb08ff48 getReason(int)(0x521476) 0xb08ff60 | 0xb08ffa8 -> 0xb08ffdc 0xb08ff64 | 0x44cda6 -> 0x57e58955 0xb08ff64 Game::~Game()(0x44cd76) 0xb08ff68 | 0 0xb08ff6c | 0xb08ff50 -> 0 0xb08ff70 | 0 0xb08ff74 | 0xb08ffa8 -> 0xb08ffdc 0xb08ff78 | 0x311ac90 -> 0x311cfb8 0xb08ff7c | 0x311d0c0 -> 0xcf8 0xb08ff80 | 0 0xb08ff84 | 0xb08ffb8 -> 0xb08ffec \\\\\\ stack frame ////// 0xb08ff88 | 0x77bcb3ca -> 0xff4fe859 <-- ret 0xb08ff8c | 0 0xb08ff90 | 0 0xb08ff94 | 0 0xb08ff98 | 0x311ac90 -> 0x311cfb8 0xb08ff9c | 0 0xb08ffa0 | 0xb08ff90 -> 0 0xb08ffa4 | 0 0xb08ffa8 | 0xb08ffdc -> 0xffffffff 0xb08ffac | 0x77bc6c74 -> 0x83ec8b55 0xb08ffb0 | 0x77ba4138 -> 0xffffffff 0xb08ffb4 | 0 0xb08ffb8 | 0xb08ffec -> 0 \\\\\\ stack frame ////// 0xb08ffbc | 0x7d4dfe21 -> 0x128ee850 <-- ret 0xb08ffc0 | 0x311ac90 -> 0x311cfb8 0xb08ffc4 | 0 0xb08ffc8 | 0 0xb08ffcc | 0x311ac90 -> 0x311cfb8 0xb08ffd0 | 0 0xb08ffd4 | 0xb08ffc4 -> 0 0xb08ffd8 | 0 0xb08ffdc | 0xffffffff 0xb08ffe0 | 0x7d4d89c4 -> 0x83ec8b55 0xb08ffe4 | 0x7d4dfe28 -> 0xffffffff 0xb08ffe8 | 0 0xb08ffec | 0 \\\\\\ stack frame ////// 0xb08fff0 | 0 <-- ret 0xb08fff4 | 0x77bcb35a -> 0x38680c6a 0xb08fff8 | 0x311ac90 -> 0x311cfb8 0xb08fffc | 0 *****************************************************
What's that new kiper folder in the sources?
http://forgottenserver.svn.sourceforge.net/viewvc/forgottenserver/forgottenserver/branches/