Crash when attempting to log-in.

Bug reports and feature requests. New features can only be added to the current development version. Bug-fixes may be back-ported.

Current release: 099 / Current development: 100
Post Reply
Yukiko
Distro Developer
Posts: 2687
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Crash when attempting to log-in.

Post by Yukiko » Sat Mar 02, 2019 3:07 am

I am using the latest posted release from the downloads page built on 2019-02-02. This is very unusual because I have been using this version for some time. The crash has happened multiple times tonight. I have checked pol.cfg and all looks normal. I even deleted all world data, started with a clean pol and accounts .txt files. I tried two different client versions, both of which were working with this Core version before. I cannot recall ever getting a crash at login ever.

Here is the console output just prior and after the crash:

Code: Select all

Account Admin logged in from 127.0.0.1
Account Admin logged in from 127.0.0.1
Account Admin logged in from 127.0.0.1
Unhandled Exception! Minidump started...

##########################################################
Current StackBackTrace
(function-name not available) - 0x7ff7952093e7
  (filename not available)
(function-name not available) - 0x7ff7951eeb66
  (filename not available)
UnhandledExceptionFilter - 0x7ffaf8c753ac
  (filename not available)
memset - 0x7ffafbf97100
  (filename not available)
_C_specific_handler - 0x7ffafbf7f306
  (filename not available)
_chkstk - 0x7ffafbf935af
  (filename not available)
RtlWalkFrameChain - 0x7ffafbef4aaf
  (filename not available)
KiUserExceptionDispatcher - 0x7ffafbf9231e
  (filename not available)
(function-name not available) - 0x7ff794f9e827
  (filename not available)
(function-name not available) - 0x7ff794f9d916
  (filename not available)
(function-name not available) - 0x7ff7950c52a0
  (filename not available)
(function-name not available) - 0x7ff7950c5645
  (filename not available)
(function-name not available) - 0x7ff794f6994e
  (filename not available)
(function-name not available) - 0x7ff7951d5b6d
  (filename not available)
(function-name not available) - 0x7ff794f69a09
  (filename not available)
(function-name not available) - 0x7ff795211874
  (filename not available)
BaseThreadInitThunk - 0x7ffafba17e94
  (filename not available)
RtlUserThreadStart - 0x7ffafbf57ad1
  (filename not available)
##########################################################
##########################################################
Unhandled Exception! Writing Minidump file.
Post this file with explanation and last lines from log files on http://forums.polserver.com/tracker.php for the development team.
Saved dump file to '20190302045017-0.dmp'

Last Script: scripts/ai/cow.ecl PC: 263
##########################################################
Here is the last lines from pol.log:

Code: Select all

[03/02 04:50:20] Game is active.
[03/02 04:50:30] [scripts/NPCKeeper.ecl]: Unable to create KiteShieldB1 on back pack. Error= Objtype not defined: KiteShieldB1
[03/02 04:50:59] Client#1 connected from 127.0.0.1 (1 connections) on interface 127.0.0.1
[03/02 04:50:59] Account Admin logged in from 127.0.0.1
[03/02 04:51:10] Account Admin logged in from 127.0.0.1
[03/02 04:51:26] Account Admin logged in from 127.0.0.1
[03/02 04:51:29] 
##########################################################
Current StackBackTrace
(function-name not available) - 0x7ff7952093e7
  (filename not available)
(function-name not available) - 0x7ff7951eeb66
  (filename not available)
UnhandledExceptionFilter - 0x7ffaf8c753ac
  (filename not available)
memset - 0x7ffafbf97100
  (filename not available)
_C_specific_handler - 0x7ffafbf7f306
  (filename not available)
_chkstk - 0x7ffafbf935af
  (filename not available)
RtlWalkFrameChain - 0x7ffafbef4aaf
  (filename not available)
KiUserExceptionDispatcher - 0x7ffafbf9231e
  (filename not available)
(function-name not available) - 0x7ff794f9e827
  (filename not available)
(function-name not available) - 0x7ff794f9d916
  (filename not available)
(function-name not available) - 0x7ff7950c52a0
  (filename not available)
(function-name not available) - 0x7ff7950c5645
  (filename not available)
(function-name not available) - 0x7ff794f6994e
  (filename not available)
(function-name not available) - 0x7ff7951d5b6d
  (filename not available)
(function-name not available) - 0x7ff794f69a09
  (filename not available)
(function-name not available) - 0x7ff795211874
  (filename not available)
BaseThreadInitThunk - 0x7ffafba17e94
  (filename not available)
RtlUserThreadStart - 0x7ffafbf57ad1
  (filename not available)
##########################################################
[03/02 04:51:29] ##########################################################
Unhandled Exception! Writing Minidump file. 
Post this file with explanation and last lines from log files on http://forums.polserver.com/tracker.php for the development team.
Saved dump file to '20190302045017-0.dmp'

Last Script: scripts/ai/cow.ecl PC: 263
##########################################################
Attachments
20190302045017-0.dmp
(4.49 MiB) Downloaded 16 times

Yukiko
Distro Developer
Posts: 2687
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Crash when attempting to log-in.

Post by Yukiko » Mon Mar 04, 2019 2:39 pm

This "bug" had me wondering if I either had some mischievous software on my system or possibly a bad RAM stick. Poor Turley had thought something in the Modern Distro, to which I had added some new packages, might have uncovered a previously unknown bug in the Core. After two days of trying to track this down, with the help of ThisIsMe, we found the culprit. It turns out that I had introduced this "bug" by, somehow, changing one little setting in pol.cfg. How this setting was changed I have no idea. I don't remember changing it. The POL Configurator ignores it and I rarely, if ever, manually edit the config files any longer since the Configurator was released.

Anyone who has started POL recently with this setting properly set will not have seen this warning message:

Code: Select all

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WARNING: Threading is disabled (Multithread==0 in pol.cfg).
         This setting is deprecated and will be removed from
         the next version of POL. It may not even work now!
         Only use this option if you really know what you are
         doing. And you probably don't.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
The setting is Multithread and is located near the bottom of the pol.cfg file under the comment heading:

Code: Select all

#############################################################################
## Obsolete options - do not modify these
#########################################################################
It is because it is obsolete that the Configurator ignores this setting. The proper value that this setting should have is 1. Somehow, and I still do not know how, it had been changed to 0 in my local copy of the Modern Distro. Even though it is obsolete POL still reads it and uses the setting to determine whether it will execute in single thread or multithread. Nando assures me that it will indeed be made obsolete as soon as he finishes the clean-up he is doing to POL's networking code and merges the network branch of the Core repo with the master branch.

I saw the warning and misunderstood what it meant. I thought it meant that the Threading setting was disabled, as in "POL no longer uses it." In fact, I gave Nando a bit of a hard time because, at the time, I felt the message was misleading. After rereading it a couple of times I can see that it is not misleading but maybe it should have told the user, me in this case, to set the setting to 1. I guess it has been set to 1 since 2012. The comment for the setting might be the reason I set it to 0. This is what is states:

Code: Select all

#
# Multithread: use multiple threads to lower CPU usage
# If you are using Linux 2.4.*, set this to 1.
#
As I am a Windows user I might have misread that to mean "Linux users should set this to 1." Since I don't use Linux, I might have set it to zero.

The moral of the story is, well, in this case, there are three.
1. Read warnings carefully because they are warnings for a reason. Some may not be written in the way you interpret them.
2. Be careful when editing the POL configuration files. Don't assume you understand the information in the comments explaining the setting, that is if there are comments.
3. If you suddenly encounter a bug, or in my case a crash, try to remember any settings you may have changed right before the bug or crash started appearing.

You may save yourself, and others, hours or days, in my case it was 2 days, of time, pursuing wild geese only to find out it wasn't a goose but a turkey you were pursuing. You can figure out who the turkey was in this story. :P

In my case, I absolutely cannot remember changing this setting. It may be possible that the Configurator does not ignore the Multithread setting. I will be investigating the code to make sure it does.

One last thing, my apologies to Turley who suggested we just forget this ever happened. I agreed to do just that but after some consideration, I decided to break that "promise". I thought this story would benefit others and possibly give them some amusement in the process. After all, the only person upon which this story reflects badly is me. One positive thing I did learn, besides the three morals, is how to open and use the DMP file POL creates to track down the place where code might be misbehaving.

Post Reply