EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   EQEmuLoginServer.exe crashes when client connects. (https://www.eqemulator.org/forums/showthread.php?t=31992)

KodeKatt 09-02-2010 12:20 AM

EQEmuLoginServer.exe crashes when client connects.
 
Scenario:
1: Start server.bat
Code:

@echo off
start EQEmuLoginServer.exe
start world.exe
echo waiting for the world to finish before starting zone...
sleep 10
start eqlaunch zone

2: Wait till servers are all running.
3: Launch "D:\EverQuest\eqgame.exe patchme"
4: Log in, using account specified in MySQL
Code:

INSERT INTO `account` (`id`, `name`, `charname`, `sharedplat`,
`password`, `status`, `lsaccount_id`, `gmspeed`, `revoked`, `karma`,
`minilogin_ip`, `hideme`, `rulesflag`, `suspendeduntil`) VALUES
(1, 'Iskat', '', 0, 'my_password', 250, NULL, 0, 0, 0, '127.0.0.1',
0, 0, '0000-00-00 00:00:00');

5: Discard error/crash message of EQEmuLoginServer.exe
6: Exit EverQuest from empty/blank server select screen.
7: Scratch head cluelessly as to what is being done wrong.



System details:
OS: Windows Server 2003 x64 R2 Enterprise
Processor: i7 @ 3.2GHz
RAM: 6GB DDR3
SWAP: 24GB on a dedicated SSD


Error message:
Quote:

Microsoft Visual C++ Debug Library
Debug Error!

Program: I:\EQEmu\EQEmuLoginServer.exe

HEAP CORRUPTION DETECTED: after Noprmal block (#566) at 0x0073A1D8
CRT detected that the application wrote to memory after end of heap buffer.

(Press Retry to debug the application)

[Abort] [Retry] [Ignore]

eqemulogin.ini
Code:

Port=5999
DumpPacketsIn=true
DumpPacketsOut=true
Trace=false
DatabaseServerName=127.0.0.1
DatabaseCatalogName=peq
DatabaseUserName=root
DatabaseUserPassword=xxx
OPCodePathAndFileName=login_opcodes.conf

eqemu_config.xml
Code:

<?xml version="1.0">
<server>
        <world>
                <shortname>Vasadise</shortname>
                <longname>The Memory of Vasadise</longname>

                <!-- Only specify these two if you really think you need to.  (read: You don't) -->
                <!-- <address>everquest.homelinux.net</address> -->
                <!-- <localaddress>192.168.1.103</localaddress> -->

                <!-- Loginserver information.  Defaults shown -->
                <loginserver>
                        <host>everquest.homelinux.net</host>
                        <port>5999</port>
                        <account>Vasadise</account>
                        <password>xxx</password>
                </loginserver>

                <!-- Server status.  Default is unlocked -->
                <!--<locked/>-->
                <unlocked/>

                <!-- Sets the ip/port for the tcp connections.  Both zones and console (if enabled).  Defaults are shown -->
                <tcp ip="localhost" port="9000" telnet="disable"/>

                <!-- Sets the shared key used by zone/launcher to connect to world -->
                <key>NRKP3</key>
               
                <!-- Enable and set the port for the HTTP service.  Defaults are shown -->
                <http port="9080" enabled="false" mimefile="mime.types" />
        </world>

        <!-- Chatserver (channels) information.  Defaults shown -->
        <chatserver>
                <host>localhost</host>
                <port>3018</port>
        </chatserver>

        <!-- Mailserver (in-game mail) information.  Defaults shown -->
        <mailserver>
                <host>everquest.homelinux.net</host>
                <port>3018</port>
        </mailserver>

        <zones>
                <defaultstatus>20</defaultstatus>

                <!-- Sets port range for world to use to auto configure zones -->
                <ports low="7000" high="7100"/>
        </zones>

        <!-- Database configuration, replaces db.ini.  Defaults shown -->
        <database>
                <host>127.0.0.1</host>
                <port>3306</port>
                <username>root</username>
                <password>xxx</password>
                <db>peq</db>
        </database>

        <!-- Launcher Configuration -->
        <launcher>
                <!-- <logprefix>logs/zone-</logprefix> -->
                <!-- <logsuffix>.log</logsuffix> -->
                <!-- <exe>zone.exe or ./zone</exe> -->
                <!-- <timers restart="10000" reterminate="10000"> -->
        </launcher>

        <!-- File locations.  Defaults shown -->
        <files>
                <!-- <spells>spells_us.txt</spells> -->
                <!-- <opcodes>opcodes.conf</opcodes> -->
                <!-- <logsettings>log.ini</logsettings> -->
                <!-- <eqtime>eqtime.cfg</eqtime> -->
        </files>
        <!-- Directory locations.  Defaults shown -->
        <directories>
                <!-- <maps>Maps</maps> -->
                <!-- <quests>quests</quests> -->
                <!-- <plugins>plugins</plugins> -->
        </directories>
</server>


Directory listing for EQEmu Server bin files. (I:\EQEmu)
Code:

bash$ cd I:/EQEmu
bash$ ls -l
total 19083
-rwxrwxrwx  1 user    group    1851904 Aug 31 17:04 Chatserver.exe
-rw-rw-rw-  1 user    group      187904 Aug 31 17:04 EMuShareMem.dll
-rw-rw-rw-  1 user    group      287232 Aug 31 06:32 EQEmuAuthCrypto.dll
-rwxrwxrwx  1 user    group    1453056 Jul 14  2009 EQEmuLoginServer.exe
drwxrwxrwx  1 user    group          0 Aug 31 16:55 Maps
-rwxrwxrwx  1 user    group    2793472 Aug 31 17:05 World.exe
-rwxrwxrwx  1 user    group    5452800 Aug 31 17:08 Zone.exe
-rw-rw-rw-  1 user    group      306714 Jul  9 10:05 changelog.txt
-rw-rw-rw-  1 user    group          0 Aug 31 06:42 commands.pl
-rw-rw-rw-  1 user    group        120 Jun 15  2009 compatible_content.txt
-rw-rw-rw-  1 user    group        2333 Sep  1 04:10 eqemu_config.xml
-rw-rw-rw-  1 user    group        211 Sep  1 02:24 eqemulogin.ini
-rw-rw-rw-  1 user    group        688 Aug 31 23:27 eqemulogin2.ini
-rwxrwxrwx  1 user    group      138240 Aug 31 12:54 eqlaunch.exe
-rw-rw-rw-  1 user    group          36 Sep  1 04:22 eqtime.cfg
-rw-rw-rw-  1 user    group          0 Aug 31 06:42 log.ini
-rw-rw-rw-  1 user    group        298 Aug 31 06:42 login_opcodes.conf
-rw-rw-rw-  1 user    group        298 Aug 31 06:42 login_opcodes_sod.conf
drwxrwxrwx  1 user    group          0 Aug 31 23:49 logs
-rw-rw-rw-  1 user    group        300 Aug 31 06:42 mail_opcodes.conf
-rw-rw-rw-  1 user    group        1077 Aug 31 06:42 mime.types
-rw-rw-rw-  1 user    group      16690 Aug 31 06:42 opcodes.conf
-rw-rw-rw-  1 user    group      17669 Aug 31 06:42 patch_6.2.conf
-rw-rw-rw-  1 user    group      16596 Aug 31 06:42 patch_Anniversary.conf
-rw-rw-rw-  1 user    group      17664 Aug 31 06:42 patch_Live.conf
-rw-rw-rw-  1 user    group      17486 Aug 31 06:42 patch_SoD.conf
-rw-rw-rw-  1 user    group      21919 Aug 31 06:42 patch_SoF.conf
-rw-rw-rw-  1 user    group      18406 Aug 31 06:42 patch_Titanium.conf
-rw-rw-rw-  1 user    group          0 Aug 31 06:42 plugin.pl
drwxrwxrwx  1 user    group          0 Aug 31 17:02 plugins
drwxrwxrwx  1 user    group          0 Aug 31 17:02 quests
-rw-rw-rw-  1 user    group    2149759 Oct 17  2005 spells_en.txt
-rw-rw-rw-  1 user    group    4772239 Oct 28  2005 spells_us.txt
-rwxrwxrwx  1 user    group        169 Sep  1 04:07 start_server.bat
drwxrwxrwx  1 user    group          0 Aug 31 16:55 templates
-rw-rw-rw-  1 user    group          0 Aug 31 06:42 worldui.pl
bash$

MySQL Server Settings
Code:

# The following options will be passed to all MySQL clients
[client]
# password      = your_password
port            = 3306
socket          = "I:/mysql/mysql.sock"

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port= 3306
socket= "I:/mysql/mysql.sock"
basedir="I:/mysql"
tmpdir="I:/tmp"
datadir="I:/mysql/data"
skip-locking
key_buffer = 512M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
#Time Outs
interactive_timeout = 100
wait_timeout = 100
connect_timeout = 10
# Maximum connections allowed
max_connections = 500
max_user_connections = 50
max_connect_errors = 10

# commented in by lampp security
#skip-networking

# Disable Federated by default
skip-federated

# Replication Master Server (default)
# binary logging is required for replication
# log-bin deactivated by default since XAMPP 1.4.11
#log-bin=mysql-bin

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id        = 1

# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000

# Comment the following if you are using InnoDB tables
#skip-innodb
innodb_data_home_dir = "I:/mysql/"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "I:/mysql/"
innodb_log_arch_dir = "I:/mysql/"
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 100M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

I don't think there's any more detailed information I can really provide. This is my second time using EQEmuLoginServer, the second time having this exact issue, and the second time asking for help for it, I don't want to go back to minilogin for a second time either, because building a php-sql script to update user's IP's to be allowed to log in is a pain in the ass for that user.

KodeKatt 09-03-2010 03:42 AM

I can't get a new compile of the login server to work.. as in I can't compile it without fail.
Even if I wait for an extended amount of time for everything to fully load, the server will still crash (95% of the time without the error above, but just totally die) as soon as a client sends login info.

I can't even test if there's anything else wrong in the server, as far as I can tell everything else is fine, just the login server is useless.

KodeKatt 09-04-2010 09:44 AM

I've reproduced this problem on 4 more systems now:
Windows XP x64*
Windows XP Media Center Edition (x86)*
Windows Server 2003 Enterprise (x86)
Windows 7 x64

* = Running as Virtual Machines

KodeKatt 09-07-2010 08:02 AM

Problem still unresolved.. clueless to why, not looking forward to making people use an IP update php script to use minilogin.

Rykeau 09-09-2010 07:01 PM

Make sure the line "DatabaseUserPassword=" in your eqemulogin.ini file is the actual password and not just "xxx" if that isn't the actual password ;-) This also applies to your eqemu_config.xml file - if the password isn't actually "xxx" change it where appropriate.

Under the <loginserver> heading in your eqemu_config.xml file change the following:

<account>Vasadise</account>
to
<account></account>

and

<password>xxx</password>
to
<password></password>

KodeKatt 09-10-2010 06:44 PM

I kinda got it working for a moment, but right when it started working something wiped out most the data on my computer.. so.. yeah, back to not working again since 90% of the files are missing.


All times are GMT -4. The time now is 09:19 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.