OpenTTD

Tasklist

FS#3189 - PathZilla crashed OTTD

Attached to Project: OpenTTD
Opened by frosch (frosch) - Wednesday, 09 September 2009, 21:40 GMT
Last edited by Remko Bijker (Rubidium) - Saturday, 12 September 2009, 20:31 GMT
Type Bug
Category Script → NoAI
Status Closed
Assigned To No-one
Operating System All
Severity High
Priority Normal
Reported Version trunk
Due in Version 0.7.3
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

PathZilla 5 (not really compatible with trunk anyway) is able to crash OTTD. Introduced in r17223.
Just start enough instances of it, and one will crash somewhen. Or try attached TTO game with enough PathZillas set up.

Backtrace with r17491:

#8 0xb6a6b6ce in __assert_fail () from /lib/libc.so.6
No symbol table info available.
#9 0x081862c1 in sqvector<SQObjectPtr>::operator[] (this=0xa79b0e8, pos=4294967295)
at /home/frosch/daten/ottd/trunk1/src/3rdparty/squirrel/squirrel/squtils.h:91
__PRETTY_FUNCTION__ = "T& sqvector<T>::operator[](SQUnsignedInteger) const [with T = SQObjectPtr]"
#10 0x0819f226 in SQFunctionProto::GetLocal (this=0xa9c1ee0, vm=0xa79b0d0, stackbase=4294967293, nseq=0, nop=81)
at /home/frosch/daten/ottd/trunk1/src/3rdparty/squirrel/squirrel/sqobject.cpp:208
i = 8
nvars = 11
res = (const SQChar *) 0x0
#11 0x08182abe in sq_getlocal (v=0xa79b0d0, level=4, idx=8) at /home/frosch/daten/ottd/trunk1/src/3rdparty/squirrel/squirrel/sqapi.cpp:906
ci = (SQVM::CallInfo &) @0xaaad238: {_ip = 0xa9c21d0, _literals = 0xa9c2228, _closure = {<tagSQObject> = {_type = OT_CLOSURE, _unVal = {
pTable = 0xa9beec8, pArray = 0xa9beec8, pClosure = 0xa9beec8, pGenerator = 0xa9beec8, pNativeClosure = 0xa9beec8, pString = 0xa9beec8,
pUserData = 0xa9beec8, nInteger = 177991368, fFloat = 1.50157766e-32, pUserPointer = 0xa9beec8, pFunctionProto = 0xa9beec8,
pRefCounted = 0xa9beec8, pDelegable = 0xa9beec8, pThread = 0xa9beec8, pClass = 0xa9beec8, pInstance = 0xa9beec8, pWeakRef = 0xa9beec8,
raw = 177991368}}, <No data fields>}, _generator = 0x0, _etraps = 0, _prevstkbase = 8, _prevtop = 23, _target = 7, _ncalls = 1, _root = 0,
_vargs = {size = 0, base = 0}}
c = (class SQClosure *) 0xa9beec8
func = (SQFunctionProto *) 0xa9c1ee0
cstksize = 7
lvl = 2
stackbase = -3
#12 0x08180a3c in sqstd_printcallstack (v=0xa79b0d0) at /home/frosch/daten/ottd/trunk1/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp:33
si = {funcname = 0xa60f37c "Start", source = 0xa60bce4 "/home/frosch/.openttd/content_download/ai/PathZilla.5.tar/pathzilla.5/main.nut",
line = 181}
i = 1
s = (const SQChar *) 0xa99a59c "road"
seq = 8
b = 1
f = 0
level = 4
name = (const SQChar *) 0xa98f9b4 "roadType"
pf = (SQPRINTFUNCTION) 0x8390778 <Squirrel::ErrorPrintFunc(SQVM*, char const*, ...)>
__PRETTY_FUNCTION__ = "void sqstd_printcallstack(SQVM*)"
#13 0x08390932 in Squirrel::RunError (vm=0xa79b0d0,
error=0xabaa29c "You are not allowed to execute any DoCommand (even indirect) in your constructor, Save(), Load(), and any valuator.")
at /home/frosch/daten/ottd/trunk1/src/script/squirrel.cpp:80
pf = (SQPRINTFUNCTION) 0x83906c0 <Squirrel::PrintFunc(SQVM*, char const*, ...)>
buf = "Your script made an error: You are not allowed to execute any DoCommand (even indirect) in your constructor, Save(), Load(), and any valuator.\n\000ÔP\003¸ddú¿\210²\032\b\000\000\000\000ôo¤¶¨bú¿¹IU\b`bú¿$\025¤¶@bú¿¨bú¿¼ÃY\b\000\000\000\000°fú¿"...
engine = (Squirrel *) 0xa791188
func = (void (*)(bool, const SQChar *)) 0x81bf0fe <PrintFunc>
#14 0x0839099c in Squirrel::_RunError (vm=0xa79b0d0) at /home/frosch/daten/ottd/trunk1/src/script/squirrel.cpp:91
sErr = (
const SQChar *) 0xabaa29c "You are not allowed to execute any DoCommand (even indirect) in your constructor, Save(), Load(), and any valuator."
#15 0x081a92dd in SQVM::CallNative (this=0xa79b0d0, nclosure=0xa79d4c0, nargs=2, stackbase=70, retval=@0xbffa66b8, suspend=@0xbffa6673)
at /home/frosch/daten/ottd/trunk1/src/3rdparty/squirrel/squirrel/sqvm.cpp:1172
can_suspend = 1
nparamscheck = 0
tcs = 0
oldtop = 72
oldstackbase = 35
lci = {_ip = 0x0, _literals = 0x0, _closure = {<tagSQObject> = {_type = OT_NATIVECLOSURE, _unVal = {pTable = 0xa79d4c0, pArray = 0xa79d4c0,
pClosure = 0xa79d4c0, pGenerator = 0xa79d4c0, pNativeClosure = 0xa79d4c0, pString = 0xa79d4c0, pUserData = 0xa79d4c0, nInteger = 175756480,
fFloat = 1.20289277e-32, pUserPointer = 0xa79d4c0, pFunctionProto = 0xa79d4c0, pRefCounted = 0xa79d4c0, pDelegable = 0xa79d4c0,
pThread = 0xa79d4c0, pClass = 0xa79d4c0, pInstance = 0xa79d4c0, pWeakRef = 0xa79d4c0, raw = 175756480}}, <No data fields>}, _generator = 0x0,
_etraps = 0, _prevstkbase = 35, _prevtop = 37, _target = 0, _ncalls = 1, _root = 0, _vargs = {size = 0, base = 0}}
outers = 0
ret = -1229422272
#16 0x081ae312 in SQVM::Call (this=0xa79b0d0, closure=@0xa79b118, nparams=2, stackbase=70, outres=@0xbffa66b8, raiseerror=0, can_suspend=0)
at /home/frosch/daten/ottd/trunk1/src/3rdparty/squirrel/squirrel/sqvm.cpp:1471
suspend = 10
prevstackbase = 35
__PRETTY_FUNCTION__ = "bool SQVM::Call(SQObjectPtr&, SQInteger, SQInteger, SQObjectPtr&, SQBool, SQBool)"
#17 0x081b1540 in SQVM::CallErrorHandler (this=0xa79b0d0, error=@0xbffa6788)
at /home/frosch/daten/ottd/trunk1/src/3rdparty/squirrel/squirrel/sqvm.cpp:1107
out = {<tagSQObject> = {_type = OT_NULL, _unVal = {pTable = 0x0, pArray = 0x0, pClosure = 0x0, pGenerator = 0x0, pNativeClosure = 0x0,
pString = 0x0, pUserData = 0x0, nInteger = 0, fFloat = 0, pUserPointer = 0x0, pFunctionProto = 0x0, pRefCounted = 0x0, pDelegable = 0x0,
pThread = 0x0, pClass = 0x0, pInstance = 0x0, pWeakRef = 0x0, raw = 0}}, <No data fields>}
#18 0x081addf8 in SQVM::Execute (this=0xa79b0d0, closure=@0x85b1060, target=70, nargs=-1, stackbase=-1, outres=@0xbffa68b8, raiseerror=1,
et=ET_RESUME_THROW_VM) at /home/frosch/daten/ottd/trunk1/src/3rdparty/squirrel/squirrel/sqvm.cpp:1046
currerror = {<tagSQObject> = {_type = OT_STRING, _unVal = {pTable = 0xabaa280, pArray = 0xabaa280, pClosure = 0xabaa280, pGenerator = 0xabaa280,
pNativeClosure = 0xabaa280, pString = 0xabaa280, pUserData = 0xabaa280, nInteger = 180003456, fFloat = 1.79722742e-32, pUserPointer = 0xabaa280,
pFunctionProto = 0xabaa280, pRefCounted = 0xabaa280, pDelegable = 0xabaa280, pThread = 0xabaa280, pClass = 0xabaa280, pInstance = 0xabaa280,
pWeakRef = 0xabaa280, raw = 180003456}}, <No data fields>}
n = 0
last_top = 70
ad = {_n = 0xa79b160}
traps = 0
ct_target = 1
ct_stackbase = -1074108376
ct_tailcall = 182
__PRETTY_FUNCTION__ = "bool SQVM::Execute(SQObjectPtr&, SQInteger, SQInteger, SQInteger, SQObjectPtr&, SQBool, SQVM::ExecutionType)"
#19 0x08181827 in sq_resumeerror (v=0xa79b0d0) at /home/frosch/daten/ottd/trunk1/src/3rdparty/squirrel/squirrel/sqapi.cpp:1020
ret = {<tagSQObject> = {_type = OT_NULL, _unVal = {pTable = 0x0, pArray = 0x0, pClosure = 0x0, pGenerator = 0x0, pNativeClosure = 0x0,
pString = 0x0, pUserData = 0x0, nInteger = 0, fFloat = 0, pUserPointer = 0x0, pFunctionProto = 0x0, pRefCounted = 0x0, pDelegable = 0x0,
pThread = 0x0, pClass = 0x0, pInstance = 0x0, pWeakRef = 0x0, raw = 0}}, <No data fields>}
#20 0x0839032c in Squirrel::ResumeError (this=0xa791188) at /home/frosch/daten/ottd/trunk1/src/script/squirrel.cpp:200
__PRETTY_FUNCTION__ = "void Squirrel::ResumeError()"
#21 0x081beeb2 in AIInstance::GameLoop (this=0xa4fb8d8) at /home/frosch/daten/ottd/trunk1/src/ai/ai_instance.cpp:388
e = {msg = 0x847f438 "You are not allowed to execute any DoCommand (even indirect) in your constructor, Save(), Load(), and any valuator."}
#22 0x081b5033 in AI::GameLoop () at /home/frosch/daten/ottd/trunk1/src/ai/ai_core.cpp:76
company_index = 2
c = (const Company *) 0xa49d150
__PRETTY_FUNCTION__ = "static void AI::GameLoop()"
#23 0x08326369 in StateGameLoop () at /home/frosch/daten/ottd/trunk1/src/openttd.cpp:1170
old_company = OWNER_BEGIN
This task depends upon

Closed by  Remko Bijker (Rubidium)
Saturday, 12 September 2009, 20:31 GMT
Reason for closing:  Fixed
Additional comments about closing:  In r17515

Loading...