This is an old revision of the document!


How to submit a bug report

To submit a useful bug report you need to provide as much information as you can. Including

  • Your Server OS (Linux/FreeBSD/Solaris/MacOSX)
  • CPU/Processor family (32bit/64bit)
  • If you think LSWS does not work properly with a certain feature, you should provide as detailed information as possible on the feature and how you use it, so we can reproduce the problem in our lab.
  • If lshttpd crashed, LSWS Enterprise users should switch to the debug build of lshttpd, then submit the debug report generated and a core file if possible.

For 4.x version, there are two versions of the lshttpd binary shipped in the LSWS Enterprise package. One is the release build. The other is the debug build. The debug build is not normally used when you run LSWS, but, when debugging, the GDB stack backtrace and core file generated by the debug build are the most useful information you can provide for fixing the bug.

For latest version such as 5.0.x or 5.1.x, the binary installed is debug info enabled by default hence no separate debug build version required. It has no impact for your server performance.

For 4.x version, if there is no debug build of lshttpd binary in your current installation, you can download the related version and arch of debug build from our website. For example:

/usr/local/lsws/admin/misc/lsup.sh -d -f -v <your_lsws_version>

Once you have debug version installed, reproduce your problem and submit a bug report.

For 5.0.x, 5.1.x, you do not need to switch to debug build anymore since the binary installed is debug info enabled by default. It has no impact for your server performance.

For PHP

By default, core dumping is disabled in LSAPI PHP external applications. To enable it, you need to add an environment variable to your LSPHP external application configuration (WebAdmin console > Configuration > External App > your external application > Environment):

LSAPI_ALLOW_CORE_DUMP=1

Server-wide

If you only need a particular program to be troubleshooted, you can use soft limits.

ulimit -S -c

Edit /etc/security/limits.conf and add the following line entry at the bottom of the file (before # End of file)

* soft core unlimited

Check ulimit core file size value. It should be unlimited.

ulimit -c
-> unlimited

Core dumping is generally disabled by default on Linux. The following guide will lead you through the steps necessary to enable it: How to enable core dump for Linux

Email Alert

If you enable email alert on your server and gdb enabled, you should receive some alert email like the following. You can forward the email to bug@litespeedtech.com.

##---------- Forwarded message ----------##
From: root <root@example.com>
To: root@localhost
Cc:
Bcc:
Date: Wed, 01 Nov 2017 01:00:27 -0500
Subject: Web server example.com on example.com
automatically restarted
At [01/Nov/2017:01:00:25 -0500], web server with pid=12964 received
unexpected signal=11, a core file has been created. A new instance of web
server will be started automatically!
Please forward the following debug information to bug@litespeedtech.com.
Environment:
Server: LiteSpeed/5.2.2 Enterprise Build 2
OS: Linux
Release: 3.10.0-693.5.2.el7.x86_64
Version: #1 SMP Fri Oct 20 20:32:50 UTC 2017
Machine: x86_64
If the call stack information does not show up here, please compress and
forward the core file located in /tmp/lshttpd/.
[New LWP 12964]
[New LWP 12971]
[New LWP 12972]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `litespeed'.
Program terminated with signal 11, Segmentation fault.
#0 0x0000000000607440 in lsShm_hElem_s::getLruLinkPtr (this=0x0) at
/home/gwang/release/litespeed/src/shm/lsshmhash.h:102
#0 0x0000000000607440 in lsShm_hElem_s::getLruLinkPtr (this=0x0) at
/home/gwang/release/litespeed/src/shm/lsshmhash.h:102
No locals.
#1 0x00000000006a6553 in lsShm_hElem_s::setLruLinkNext (this=0x0, off=...)
at /home/gwang/release/litespeed/src/shm/lsshmhash.h:110
No locals.
#2 0x00000000006a681c in LsShmHash::set_linkNext (this=0x144a880,
offThis=..., offNext=...) at
/home/gwang/release/litespeed/src/shm/lsshmhash.h:686
No locals.
#3 0x00000000006a5953 in LsShmHash::linkSetTop (this=0x144a880,
pElem=0x7f7d53dc4b80, offElem=...) at
/home/gwang/release/litespeed/src/shm/lsshmhash.cpp:1581
pLru = 0x7f7d53d00a1c
prev = {m_iOffset = 610112}
__PRETTY_FUNCTION__ = "void LsShmHash::linkSetTop(LsShmHElem*,
LsShmHash::iteroffset)"
pLink = 0x7f7d53dc4b9c
next = {m_iOffset = 12479344}
#4 0x00000000006a34c1 in LsShmHash::doGet (this=0x144a880, iterOff=...,
key=4039776365, pParms=0x7ffd84259560, pFlag=0x7ffd84259614) at
/home/gwang/release/litespeed/src/shm/lsshmhash.cpp:809
iter = 0x7f7d53dc4b80
#5 0x00000000006a4a9a in LsShmHash::getPtr (pThis=0x144a880,
pParms=0x7ffd84259560, pFlag=0x7ffd84259614) at
/home/gwang/release/litespeed/src/shm/lsshmhash.cpp:1206
key = 4039776365
iterOff = {m_iOffset = 805760}
#6 0x000000000069f9fb in LsShmHash::getIterator (this=0x144a880,
pParms=0x7ffd84259560, pFlag=0x7ffd84259614) at
/home/gwang/release/litespeed/src/shm/lsshmhash.h:401
iterOff = {m_iOffset = 44971056}
#7 0x000000000069f8fd in LsShmHash::get (this=0x144a880, pKey=0x2ae3430,
keyLen=8, valLen=0x7ffd84259618, pFlag=0x7ffd84259614) at
/home/gwang/release/litespeed/src/shm/lsshmhash.h:323
iterOff = {m_iOffset = 2217055712}
parms = {key = {ptr = 0x2ae3430 "\357\t\304\330\326\373e8", len =
8}, val = {ptr = 0x0, len = 12}}
iter = 0x2ae3430
#8 0x000000000069f2bb in ShmCacheManager::addTracking2 (this=0x15024a0,
pEntry=0x2ae3410, pTracker=0x144a880) at
/home/gwang/release/litespeed/src/cache/shmcachemanager.cpp:1141
pData = 0x943b51
valLen = 12
flag = 0
offVal = 0
#9 0x000000000069f248 in ShmCacheManager::addTracking (this=0x15024a0,
pEntry=0x2ae3410) at
/home/gwang/release/litespeed/src/cache/shmcachemanager.cpp:1128
pTracker = 0x144a880
#10 0x000000000055baef in HttpSession::preparePageCache (this=0x30f9ea0) at
/home/gwang/release/litespeed/src/http/httpsession.cpp:6463
pEntry = 0xfffffffffffffffe
pIP = 0x0
ipLen = 0
age = 604800
priv_cache = 0
pResp = 0x30fa358
pCtx = 0x149afd0
#11 0x0000000000555d79 in HttpSession::setupDynRespBody (this=0x30f9ea0,
prepareCache=1) at
/home/gwang/release/litespeed/src/http/httpsession.cpp:4439
No locals.
#12 0x0000000000556641 in HttpSession::appendDynBody (this=0x30f9ea0,
pBuf=0xd7b420 <HttpGlobals::g_achBuf> "<!DOCTYPE html>\n<html
lang=\"en-US\" prefix=\"og: http://ogp.me/ns# fb:
http://ogp.me/ns/fb#\">\n<head
>\n<meta charset=\"UTF-8\" />\n<title>My Bookmark -
MyReadingManga</title><meta name=\"viewport\" content=\"w"..., len=16384)
at /home/gwang/release/litespeed/src/http/httpsession.cpp:4631
buffered = 32765
ret = 0
#13 0x000000000056eec8 in HttpExtConnector::processRespBodyData
(this=0x14a4800, pBuf=0xd7b420 <HttpGlobals::g_achBuf> "<!DOCTYPE
html>\n<html lang=\"en-US\" prefix=\"og: http://ogp.me/ns# fb:
http://ogp.me/ns/fb#\">\n<head >\n<meta charset=\"UTF-8\" />\n<title>My
Bookmark - MyReadingManga</title><meta name=\"viewport\" content=\"w"...,
len=16384) at
/home/gwang/release/litespeed/src/http/httpextconnector.cpp:371
ret = 16384
#14 0x000000000066d7f7 in LsapiConn::readRespBody (this=0x314a9e0) at
/home/gwang/release/litespeed/src/extensions/lsapi/lsapiconn.cpp:943
len = 0
packetLen = 16384
pBuf = 0xd7b420 <HttpGlobals::g_achBuf> "<!DOCTYPE html>\n<html
lang=\"en-US\" prefix=\"og: http://ogp.me/ns# fb:
http://ogp.me/ns/fb#\">\n<head
>\n<meta charset=\"UTF-8\" />\n<title>My Bookmark -
MyReadingManga</title><meta name=\"viewport\" content=\"w"...
toRead = 16384
pHEC = 0x14a4800
ret = 16384
bufLen = 16384
respState = @0x14a4874: 526339
total = 16384
#15 0x000000000066cb13 in LsapiConn::processResp (this=0x314a9e0) at
/home/gwang/release/litespeed/src/extensions/lsapi/lsapiconn.cpp:683
ret = 8
count = 2
#16 0x000000000066c2c3 in LsapiConn::doRead (this=0x314a9e0) at
/home/gwang/release/litespeed/src/extensions/lsapi/lsapiconn.cpp:361
ret = 0
#17 0x000000000067e727 in ExtConn::onRead (this=0x314a9e0) at
/home/gwang/release/litespeed/src/extensions/extconn.cpp:344
ret = 0
#18 0x000000000068720f in EdStream::handleEvents (this=0x314a9e0, event=1)
at /home/gwang/release/litespeed/src/edio/ediostream.cpp:70
ret = 0
#19 0x000000000068b6e2 in epoll::processEvents (this=0x135fa80, events=1)
at /home/gwang/release/litespeed/src/edio/epoll.cpp:371
fd = 76
pReactor = 0x314a9e0
p = 0x1370130
__PRETTY_FUNCTION__ = "virtual int epoll::processEvents(int)"
#20 0x000000000068b5c5 in epoll::waitAndProcessEvents (this=0x135fa80,
iTimeoutMilliSec=100) at
/home/gwang/release/litespeed/src/edio/epoll.cpp:344
ret = 1
#21 0x000000000054192d in EventDispatcher::run (this=0x1345c78) at
/home/gwang/release/litespeed/src/http/eventdispatcher.cpp:244
ret = 1
evt_waiting = 0
sigEvent = 0
errors = 0
pQuicEngine = 0x13a3a50
#22 0x00000000004ef55b in HttpServerImpl::start (this=0x1345c50) at
/home/gwang/release/litespeed/src/main/httpserver.cpp:529
No locals.
#23 0x00000000004f2bfa in HttpServer::start (this=0xd752d0
<TSingleton<HttpServer>::getInstance()::s_instance>) at
/home/gwang/release/litespeed/src/main/httpserver.cpp:2031
No locals.
#24 0x00000000004e83d1 in LshttpdMain::main (this=0x1345870, argc=1,
argv=0x7ffd84259ca8) at
/home/gwang/release/litespeed/src/main/lshttpdmain.cpp:1950
ret = 0
#25 0x00000000004e36e6 in main (argc=1, argv=0x7ffd84259ca8) at
/home/gwang/release/litespeed/src/main.cpp:140
ret = 0
rax 0x0 0
rbx 0x1345870 20207728
rcx 0x7f7d53d00a1c 140176253782556
rdx 0x10 16
rsi 0xc4b80 805760
rdi 0x0 0
rbp 0x7ffd84259bc0 0x7ffd84259bc0
rsp 0x7ffd84259b90 0x7ffd84259b90
r8 0x7ffd84259614 140726820509204
r9 0x7f7d59fca340 140176357368640
r10 0x4 4
r11 0x7f7d5a0032d0 140176357602000
r12 0x4e3578 5125496
r13 0x7ffd84259ca0 140726820510880
r14 0x0 0
r15 0x0 0
rip 0x4e36e6 0x4e36e6 <main(int, char**)+102>
eflags 0x10206 [ PF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0

Bug reports can be sent to our bug report email.

We recommend that Enterprise customers use our ticket system (accessible from the client area) for their bug reports.

  • Admin
  • Last modified: 2017/11/01 14:52
  • by Jackson Zhang