How to Submit a Bug Report

How Can We Help?
< Back
You are here:
Print

How to Submit a Bug Report

NOTE: Always upgrade to the latest version of OpenLiteSpeed before submitting a bug report. The issue you are experiencing may have been fixed already!

There are two types of reports you may log: a Server Crash Report and a Bug Report. Submit a Server Crash Report if the server crashes and core files were generated at /tmp/lshttpd/bak_core/. Submit a Bug Report if the server doesn’t crash, but OpenLiteSpeed doesn’t work as expected.

Before you submit any report to us, it is always a good practice to check which release version caused the issue:

cat /usr/local/lsws/VERSION

Then, check for the latest version for that tier/branch from here. If you are using an old version, please run lsup.sh to force upgrade, like so:

/usr/local/lsws/admin/misc/lsup.sh

This action alone may fix your problem.

Monitor your server to see if the issue persists. If it does, please run lsup.sh -t, as shown:

/usr/local/lsws/admin/misc/lsup.sh -t

This should provide useful details, including stack backtrace information, if there was a core file generated and GDB is installed on your server. Forward this information to LiteSpeed, and take the appropriate steps to log a report, as outlined below.

Submit a Server Crash Report

When OpenLiteSpeed Web Server has an undiscovered bug, it may crash and generate core files at /tmp/lshttpd/bak_core/core.*. You should normally receive an email alert when this happens. You are welcome to submit a Server Crash Report, either by forwarding the alert email or forwarding the core files to bug@litespeedtech.com.

Email Alert With Debug Info

You may receive an email alert similar to the following:


Web server example.com on example.com automatically restarted

##---------- Forwarded message ----------##
At [21/Nov/2019:14:29:56 +0100], web server with pid=11024 received unexpected signal=7, a core file is created. A new instance of web server will be started automatically!

Please forward the following debug information to bug@litespeedtech.com.
Environment:

Server: LiteSpeed/1.5.8 Open
module versions:
modpagespeed 2.2-1.11.33.4
cache 1.61
modinspector 1.1
uploadprogress LSIAPI_VERSION_STRING
mod_security 1.1

OS: Linux
Release: 3.10.0-1062.4.1.el7.x86_64
Version: #1 SMP Fri Oct 18 17:15:30 UTC 2019
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 11024]
[Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `openlitesp'.
Program terminated with signal 7, Bus error.

0 0x00007fb7c94dcfe0 in __memmove_ssse3_back () from /lib64/libc.so.6
0 0x00007fb7c94dcfe0 in __memmove_ssse3_back () from /lib64/libc.so.6
1 0x00000000004c46a0 in ls_loopbuf_iAppend (pThis=0x2592260, pBuf=0x7fb7c9fa3800 <Address 0x7fb7c9fa3800 out of bounds>, size=1352, pool=0x0) at lsr/ls_loopbuf.c:479
2 0x00000000004c430a in ls_loopbuf_xappend (pThis=0x2592260, pBuf=0x7fb7c9fa3800 <Address 0x7fb7c9fa3800 out of bounds>, size=1352, pool=0x0) at lsr/ls_loopbuf.c:380
3 0x000000000055ce21 in ls_loopbuf_append (pThis=0x2592260, pBuf=0x7fb7c9fa3800 <Address 0x7fb7c9fa3800 out of bounds>, size=1352) at ../../include/lsr/ls_loopbuf.h:285
4 0x000000000055d85b in LoopBuf::append (this=0x2592260, pBuf=0x7fb7c9fa3800 <Address 0x7fb7c9fa3800 out of bounds>, size=1352) at ../../src/util/loopbuf.h:69
5 0x0000000000587ce0 in BufferedOS::cacheWrite (this=0x2592250, pBuf=0x7fb7c9fa3800 <Address 0x7fb7c9fa3800 out of bounds>, size=1352) at ../../src/edio/bufferedos.h:54
6 0x000000000058c56c in H2Connection::sendDataFrame (this=0x2592240, uiStreamId=3963, flag=0, pBuf=0x7fb7c9fa3800 <Address 0x7fb7c9fa3800 out of bounds>, len=1352) at h2connection.cpp:1254
7 0x000000000058fff9 in H2Stream::write (this=0x25bc650, buf=0x7fb7c9fa3800 <Address 0x7fb7c9fa3800 out of bounds>, len=1352) at h2stream.cpp:305
8 0x00000000005491d0 in HttpSession::writeRespBodyDirect (this=0x273f790, pBuf=0x7fb7c9fa3800 <Address 0x7fb7c9fa3800 out of bounds>, size=1352) at httpsession.cpp:3159
9 0x000000000054da1c in HttpSession::writeRespBodyBlockInternal (this=0x273f790, pData=0x273fe48, pBuf=0x7fb7c9fa3800 <Address 0x7fb7c9fa3800 out of bounds>, written=1352) at httpsession.cpp:4763
10 0x000000000054e29c in HttpSession::sendStaticFileEx (this=0x273f790, pData=0x273fe48) at httpsession.cpp:4927
11 0x000000000054e618 in HttpSession::sendStaticFile (this=0x273f790, pData=0x273fe48) at httpsession.cpp:4975
12 0x000000000054b782 in HttpSession::flushBody (this=0x273f790) at httpsession.cpp:3968
13 0x000000000054bc66 in HttpSession::flush (this=0x273f790) at httpsession.cpp:4089
14 0x0000000000547ba2 in HttpSession::doWrite (this=0x273f790) at httpsession.cpp:2729
15 0x0000000000547fb5 in HttpSession::onWriteEx (this=0x273f790) at httpsession.cpp:2816
16 0x000000000059011a in H2Stream::onWrite (this=0x25bc650) at h2stream.cpp:326
17 0x000000000058e66a in H2Connection::onWriteEx2 (this=0x2592240) at h2connection.cpp:1817
18 0x000000000058e885 in H2Connection::onWriteEx (this=0x2592240) at h2connection.cpp:1851
19 0x000000000052c5a1 in NtwkIOLink::doWrite (this=0x244e7e0) at ntwkiolink.h:162
20 0x000000000052a218 in NtwkIOLink::onWriteSSL_T (pThis=0x244e7e0) at ntwkiolink.cpp:1455
21 0x0000000000527025 in NtwkIOLink::handleEvents (this=0x244e7e0, evt=4) at ntwkiolink.cpp:405
22 0x00000000005dd659 in epoll::waitAndProcessEvents (this=0x16c2c30, iTimeoutMilliSec=100) at epoll.cpp:229
23 0x0000000000513e74 in EventDispatcher::run (this=0x169dab8) at eventdispatcher.cpp:232
24 0x00000000004dc47c in HttpServerImpl::start (this=0x169da90) at httpserver.cpp:506
25 0x00000000004e7cfa in HttpServer::start (this=0x169da70) at httpserver.cpp:4578
26 0x00000000004d8a3a in LshttpdMain::main (this=0x169d820, argc=1, argv=0x7ffed44421b8) at lshttpdmain.cpp:1073
27 0x00000000004a3639 in main (argc=1, argv=0x7ffed44421b8) at main.cpp:109

This means that OpenLiteSpeed Web Server crashed, and core files have been created at /tmp/lshttpd/bak_core.

ll /tmp/lshttpd/bak_core
drwxr-xr-x 2 root nobody 4096 May 3 2018 ./
drwxr-x--x 4 nobody nobody 20480 Dec 11 11:10 ../
-rw------- 1 nobody nobody 53587968 May 3 2018 core.2578440

Email Alert Without Debug Info

You may receive an email alert similar to the following, without backtrace information:

At [21/Nov/2019:14:29:56 +0100], web server with pid=11024 received unexpected signal=7, a core file is created. A new instance of web server will be started automatically!

Please forward the following debug information to bug@litespeedtech.com.
Environment:

Server: LiteSpeed/1.5.8 Open
module versions:
modpagespeed 2.2-1.11.33.4
cache 1.61
modinspector 1.1
uploadprogress LSIAPI_VERSION_STRING
mod_security 1.1

OS: Linux
Release: 3.10.0-1062.4.1.el7.x86_64
Version: #1 SMP Fri Oct 18 17:15:30 UTC 2019
Machine: x86_64

If the call stack information does not show up here, please compress and forward the core file located in /tmp/lshttpd.

If the call stack information does not show up here, please install GDB first, followed by an OLS debug build:

yum install gdb
/usr/local/lsws/admin/misc/lsup.sh -b -s -v <version>

Then, wait for the next crash. After that crash you will receive an email alert with the debug info and you can forward it to bug@litespeedtech.com.

Submit a Bug Report

If the server doesn’t crash, but it’s not working as expected, you can submit a Bug Report. Enable a high-level debug log on OLS to reproduce the issue, and send the detailed debug log to bug@litespeedtech.com. Be sure to include the detailed steps to reproduce the problem so that our developers may investigate.

How to Toggle Debug Logging and Capture Output

Let’s use an example for OLS in a CyberPanel environment, where the server log is found at /usr/local/lsws/logs/error.log. For other environments, such as DirectAdmin, the server log will usually be found at /var/log/httpd/error_log.

cd /usr/local/lsws/logs/

Back up or delete old error.log files:

mv error.log error.log.old

Toggle the LiteSpeed server debug log:

killall -USR2 litespeed

Reproduce the issue in your browser.

Toggle the debug log off by runing the following command again:

killall -USR2 litespeed

Move the debug log to error_log.debug. This is to keep the debug log as small as possible, and to avoid flooding the log on busy production sites, which may include all kinds of requests that are unrelated to the issue at hand.

mv error.log error.log.debug

The error.log.debug file may still be very big if it is a busy shared production server since there could be many domains servicing requests at the same time. It might be good to just focus on the IP of your location. (You can easily find your own IP by searching IP at google.com.)

grep your_IP error.log.debug > error.log.debug.ip

(Substitute your actual IP address for your_IP.)

You can then forward error.log.debug.ip along with detailed steps to reproduce issue to bug@litespeedtech.com for investigation.