- Status Closed
- Percent Complete
- Task Type Bug Report
- Category Engine → Tools → Updater/PSLaunch
-
Assigned To
Mike Gist - Operating System
- Severity Critical
- Priority
- Reported Version
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#2780 - pslaunch crash if server news cant be downloaded
If you have much lag and the server news cant be downloaded for pslaunch it crashes with the following bt
Server error: Error while downloading file: http://www.xordan.com/servernews
(416)
Assertion failed: canDrawLength != 0
Location: src/common/paws/pawstextbox.cpp:666
Message: iFont→GetLength returned 0. Infinite loop detected.
Call stack:
/home/mdavis/server/planeshift/pslaunch [0x48f640]
/home/mdavis/server/planeshift/pslaunch [0x41f677]
/home/mdavis/server/planeshift/pslaunch [0x420ea9]
/home/mdavis/server/cs/libcrystalspace-1.9.so [0x7f8ab792d6c8]
/lib/libpthread.so.0 [0x7f8ab74903ea]
/lib/libc.so.6(clone+0x6d) [0x7f8ab6c6bcbd]
Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x43fc4950 (LWP 18768)]
DebugBreak () at ./include/cssysdef.h:875
875 }
(gdb) bt
#0 DebugBreak () at ./include/cssysdef.h:875
#1 0x00007f8ab7909786 in CS::Debug::AssertMessage (
expr=0x4fd8e0 "canDrawLength != 0", filename=0x4fd8c0 "src/common/paws/pawstextbox.cpp", line=666, msg=0x4fd888 "iFont->GetLength returned 0. Infinite loop detected.") at /home/mdavis/server/cs/libs/csutil/csassert.cpp:80
#2 0x000000000048d37f in pawsMessageTextBox::SplitMessage (this=0x1e70a70,
newText=0x43fc3b48 "", colour=16777215, size=0) at src/common/paws/pawstextbox.cpp:666
#3 0x000000000048f640 in pawsMessageTextBox::AddMessage (this=0x1e70a70,
data=0x43fc4058 "Server Status\n\nAll servers are up!", msgColour=-1) at src/common/paws/pawstextbox.cpp:568
#4 0x000000000041f677 in pawsLauncherWindow::UpdateNews (this=0x1e6f1f0)
at src/pslaunch/pawslauncherwindow.cpp:82
#5 0x0000000000420ea9 in pawsLauncherWindow::NewsUpdater::Run (this=0x1d86dc0)
at src/pslaunch/pawslauncherwindow.h:67
#6 0x00007f8ab792d6c8 in proxyFunc (param=0x7fffc0004760)
—Type <return> to continue, or q <return> to quit—
at /home/mdavis/server/cs/libs/csutil/threading/pthread_thread.cpp:65
#7 0x00007f8ab74903ea in start_thread () from /lib/libpthread.so.0
#8 0x00007f8ab6c6bcbd in clone () from /lib/libc.so.6
#9 0x0000000000000000 in ?? ()
(gdb) bt full
#0 DebugBreak () at ./include/cssysdef.h:875
No locals.
#1 0x00007f8ab7909786 in CS::Debug::AssertMessage (
expr=0x4fd8e0 "canDrawLength != 0", filename=0x4fd8c0 "src/common/paws/pawstextbox.cpp", line=666, msg=0x4fd888 "iFont->GetLength returned 0. Infinite loop detected.") at /home/mdavis/server/cs/libs/csutil/csassert.cpp:80 stack = (csCallStack *) 0x1ed7580 dumpMemoryEnv = 0x0 ignoreEnv = 0x0 assertCnt = 0
#2 0x000000000048d37f in pawsMessageTextBox::SplitMessage (this=0x1e70a70,
newText=0x43fc3b48 "", colour=16777215, size=0) at src/common/paws/pawstextbox.cpp:666 canDrawLength = 0 maxWidth = 15 maxHeight = 15
—Type <return> to continue, or q <return> to quit—
head = 0x1d86da0 "" dummy = 0x1d86da0 "" offSet = 40
#3 0x000000000048f640 in pawsMessageTextBox::AddMessage (this=0x1e70a70,
data=0x43fc4058 "Server Status\n\nAll servers are up!", msgColour=-1) at src/common/paws/pawstextbox.cpp:568 onBottom = true oldTopLine = 0 msg = (pawsMessageTextBox::MessageLine *) 0x1ee2ae0 colour = 16777215 messageText = {<csStringFast<36>> = {<csStringBase> = { _vptr.csStringBase = 0x4f54b0, Data = 0x0, Size = 0, MaxSize = 0, GrowBy = 64}, minibuff = "\000erver Status\000\000\000Xc??\212\177\000\000\220<?C\000\000\000\000\000`??", miniused = 1}, <No data fields>} size = 0 pos = 18446744073709551615
—Type <return> to continue, or q <return> to quit—
message = {<csStringFast<36>> = {<csStringBase> = { _vptr.csStringBase = 0x4f54b0, Data = 0x0, Size = 13, MaxSize = 0, GrowBy = 64}, minibuff = "Server Status\000\000All servers are up!\000", miniused = 35}, <No data fields>} cutMessages = {<CS::Memory::CustomAllocated> = {<No data fields>}, count = 3, capacity = {<csArrayCapacityFixedGrow<16>> = {<csArrayCapacityLinear<csArrayThresholdFixed<16> >> = {<csArrayThresholdFixed<16>> = {<No data fields>}, <No data fields>}, <No data fields>}, c = 16}, root = {<CS::Memory::AllocatorMalloc> = {<No data fields>}, p = 0x7f8ab7f845ec}} pos = 13
#4 0x000000000041f677 in pawsLauncherWindow::UpdateNews (this=0x1e6f1f0)
at src/pslaunch/pawslauncherwindow.cpp:82 serverNews = (class pawsMessageTextBox *) 0x1e70a70 newsFile = <incomplete type> buffer = {<csStringFast<36>> = {<csStringBase> = {
—Type <return> to continue, or q <return> to quit—
_vptr.csStringBase = 0x4f54b0, Data = 0x0, Size = 34, MaxSize = 0, GrowBy = 64}, minibuff = "Server Status\n\nAll servers are up!\000", miniused = 36}, <No data fields>}
#5 0x0000000000420ea9 in pawsLauncherWindow::NewsUpdater::Run (this=0x1d86dc0)
at src/pslaunch/pawslauncherwindow.h:67
No locals.
#6 0x00007f8ab792d6c8 in proxyFunc (param=0x7fffc0004760)
at /home/mdavis/server/cs/libs/csutil/threading/pthread_thread.cpp:65 tp = ( CS::Threading::Implementation::(anonymous namespace)::ThreadStartParams *) 0x7fffc0004760 isRunningPtr = (int32 *) 0x1ee2ed0 runnable = (class CS::Threading::Runnable *) 0x1d86dc0 startupBarrier = (CS::Threading::Barrier *) 0x1ee2ed8
#7 0x00007f8ab74903ea in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#8 0x00007f8ab6c6bcbd in clone () from /lib/libc.so.6
—Type <return> to continue, or q <return> to quit— No symbol table info available.
#9 0x0000000000000000 in ?? ()
No symbol table info available.
(gdb)
Confirming.
Try changing the first line of pawsMessageTextBox::SplitMessage to
if (newText && strlen(newText) > 0 && newText[0] != '\0')
xordan in what file?
pawstextbox.cpp:641
that seems to fix it, but it still crashes if you comment out the Launcher.News.URL line in pslaunch.cfg
Should be fixed in r3267.