Bug #2811
closedSegfault in http::server::WtReply::send
0%
Description
(regression, upgrading from 3.3.1 to 3.3.2-rc2)
A resource is being served (audio file transcoded using a custom resource)
If I press F5 in my browser during the transfer, I get from time to time :
...
192.168.1.16 - - [2014-Mar-13 12:51:31.549560] "GET /resources/jPlayer/skin/jplayer.blue.monday.css HTTP/1.1" 304 0
Wrote 131072 bytes,
Continuation set!
[2014-Mar-13 12:51:31.558729] 25269 [/ rEPzRN4nPueiY0IJ] [error] "wthttp: WtReply::send() called while still busy sending..."
AvConvTranscoder::~AvConvTranscoder called!
Killing child!
Killing child DONE
[2014-Mar-13 12:51:31.558789] 25269 - [error] "Http::ResponseContinuation: WriteError"
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffeb1e1700 (LWP 25276)]
http::server::WtReply::send(boost::function<void (Wt::WebWriteEvent)> const&, bool) (this=this@entry=0x0, callBack=..., responseComplete=true)
at /storage/emeric/MesProgs/wt/wt-3.3.2-rc2/src/http/WtReply.C:429
429 if (sending_ != 0) {
(gdb) bt
#0 http::server::WtReply::send(boost::function<void (Wt::WebWriteEvent)> const&, bool) (this=this@entry=0x0, callBack=..., responseComplete=true)
at /storage/emeric/MesProgs/wt/wt-3.3.2-rc2/src/http/WtReply.C:429
#1 0x00007ffff7b7d6c6 in http::server::HTTPRequest::flush(Wt::WebRequest::ResponseState, boost::function<void (Wt::WebWriteEvent)> const&) (this=,
state=Wt::WebRequest::ResponseDone, callback=...) at /storage/emeric/MesProgs/wt/wt-3.3.2-rc2/src/http/HTTPRequest.C:44
#2 0x00007ffff7161c42 in Wt::Http::ResponseContinuation::stop (this=this@entry=0x7fffd8089920) at /storage/emeric/MesProgs/wt/wt-3.3.2-rc2/src/Wt/Http/ResponseContinuation.C:66
#3 0x00007ffff7161deb in Wt::Http::ResponseContinuation::doContinue (this=0x7fffd8089920, event=)
at /storage/emeric/MesProgs/wt/wt-3.3.2-rc2/src/Wt/Http/ResponseContinuation.C:29
#4 0x00007ffff7bb1b72 in operator() (a0=Wt::WriteError, this=0x7fffeb1e0580) at /usr/include/boost/function/function_template.hpp:767
#5 http::server::WtReply::writeDone (this=0x7fffd4078000, success=) at /storage/emeric/MesProgs/wt/wt-3.3.2-rc2/src/http/WtReply.C:420
#6 0x00007ffff7b73b09 in http::server::Connection::handleWriteResponse (this=0x7fffdc0334e0, reply=..., e=..., bytes_transferred=)
at /storage/emeric/MesProgs/wt/wt-3.3.2-rc2/src/http/Connection.C:430
#7 0x00007ffff7bac8c4 in call<boost::shared_ptrhttp::server::TcpConnection, boost::shared_ptrhttp::server::Reply, boost::system::error_code const, unsigned long> (
b3=, b2=..., b1=..., u=..., this=0x7fffeb1e0710) at /usr/include/boost/bind/mem_fn_template.hpp:384
#8 operator()<boost::shared_ptrhttp::server::TcpConnection > (a3=, a2=..., a1=..., u=..., this=0x7fffeb1e0710) at /usr/include/boost/bind/mem_fn_template.hpp:399
#9 operator()<boost::_mfi::mf3<void, http::server::Connection, boost::shared_ptrhttp::server::Reply, const boost::system::error_code&, long unsigned int>, boost::_bi::list2<const boost::system::error_code&, long unsigned int const&> > (a=, f=..., this=0x7fffeb1e0720) at /usr/include/boost/bind/bind.hpp:457
#10 operator()<boost::system::error_code, long unsigned int> (a2=@0x7fffeb1e0750: 65536, a1=..., this=0x7fffeb1e0710) at /usr/include/boost/bind/bind_template.hpp:102
The destructor of my a resource has been previously called (and it contains beingDeleted() in it)
Some of the members of the resource are quite long to be cleaned (an underlying forked process has be killed)
Updated by Koen Deforche over 10 years ago
- Status changed from New to Feedback
- Assignee set to Koen Deforche
Hey,
Could you see if the following patch resolves this issue?
diff ---git a/src/Wt/Http/ResponseContinuation.C b/src/Wt/Http/ResponseContinuation.C
index fc7f2dd..b91bf93 100644
---- a/src/Wt/Http/ResponseContinuation.C
- b/src/Wt/Http/ResponseContinuation.C
@@ --78,7 +78,6 @@ void ResponseContinuation::flagReadyToContinue(WebWriteEvent event)
if (event WriteError) { // FIXME provide API to process event WriteError
LOG_ERROR("WriteError"); - stop();
return;
}
Regards,
koen
Updated by Emeric Poupon over 10 years ago
Unfortunately, the problem is still here!
Updated by Koen Deforche over 10 years ago
- Status changed from Feedback to Resolved
- Target version changed from 3.3.2 to 3.3.3
Solution provided by #2814
Updated by Koen Deforche over 10 years ago
- Status changed from Resolved to Closed