Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

assertion on file upload #3296

Closed
oprudkyi opened this issue Jul 28, 2014 · 1 comment
Closed

assertion on file upload #3296

oprudkyi opened this issue Jul 28, 2014 · 1 comment

Comments

@oprudkyi
Copy link
Contributor

apache 2.2/fastcgi mod

Request Method:POST
Content-Length:1611965

seems after commenting out 'assert' things start to work properly, also seems m_keepConn isn't used anyway

./hphp/hhvm/hhvm --version
HipHop VM 3.3.0-dev (dbg)
Compiler: heads/master-0-g0e110b0f53d7b8903af61530cf6c5844c7a8f17d
Repo schema: bfeccaa74423bb93ef5b97cb64768a7fcd0bd1d0
/root/hhvm/hhvm/hphp/runtime/server/fastcgi/fastcgi-session.cpp:255: virtual size_t HPHP::FastCGISession::onIngress(const folly::IOBuf*): assertion `m_keepConn' failed.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x40a00940 (LWP 7350)]
0x0000003949830285 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x0000003949830285 in raise () from /lib64/libc.so.6
#1  0x0000003949831d30 in abort () from /lib64/libc.so.6
#2  0x000000000371d0f9 in HPHP::assert_fail (e=0x3f3c6e0 "m_keepConn", file=0x3f3c650 "/root/hhvm/hhvm/hphp/runtime/server/fastcgi/fastcgi-session.cpp", line=255, 
    func=0x3f3d700 <HPHP::FastCGISession::onIngress(folly::IOBuf const*)::__PRETTY_FUNCTION__> "virtual size_t HPHP::FastCGISession::onIngress(const folly::IOBuf*)") at /root/hhvm/hhvm/hphp/util/assertions.cpp:33
#3  0x0000000002500df9 in HPHP::FastCGISession::onIngress (this=0x2aaaba00a180, chain=0x2aaacf7b4648) at /root/hhvm/hhvm/hphp/runtime/server/fastcgi/fastcgi-session.cpp:255
#4  0x000000000250abcc in HPHP::FastCGIConnection::readDataAvailable (this=0x2aaaba00a080, len=4072) at /root/hhvm/hhvm/hphp/runtime/server/fastcgi/fastcgi-server.cpp:115
#5  0x0000000003cf29ec in apache::thrift::async::TAsyncSocket::handleRead (this=0x2aaab84f3840) at /root/hhvm/hhvm/third-party/thrift/lib/cpp/async/TAsyncSocket.cpp:1267
#6  0x0000000003cf23f8 in apache::thrift::async::TAsyncSocket::ioReady (this=0x2aaab84f3840, events=2) at /root/hhvm/hhvm/third-party/thrift/lib/cpp/async/TAsyncSocket.cpp:1168
#7  0x0000000003cf64bf in apache::thrift::async::TAsyncSocket::IoHandler::handlerReady (this=0x2aaab84f3930, events=2) at /root/hhvm/hhvm/third-party/thrift/lib/cpp/async/TAsyncSocket.h:509
#8  0x00000000039cdbb5 in apache::thrift::async::TEventHandler::libeventCallback (fd=29, events=2, arg=0x2aaab84f3930) at /root/hhvm/hhvm/third-party/thrift/lib/cpp/async/TEventHandler.cpp:152
#9  0x00002aaaada5c0c3 in event_process_active (base=<optimized out>) at event.c:397
#10 event_base_loop (base=0x2aaab2441400, flags=1) at event.c:549
#11 0x00000000039c5b84 in apache::thrift::async::TEventBase::loop (this=0x2aaab27ee1d0) at /root/hhvm/hhvm/third-party/thrift/lib/cpp/async/TEventBase.cpp:212
#12 0x00000000039c6440 in apache::thrift::async::TEventBase::loopForever (this=0x2aaab27ee1d0) at /root/hhvm/hhvm/third-party/thrift/lib/cpp/async/TEventBase.cpp:276
#13 0x00000000039dfe77 in facebook::proxygen::WorkerThread::runLoop (this=0x2aaab27ee1b8) at /root/hhvm/hhvm/third-party/proxygen/lib/workers/WorkerThread.cpp:126
#14 0x00000000039df5b0 in facebook::proxygen::WorkerThread::<lambda()>::operator()(void) const (__closure=0x2aaaba957128) at /root/hhvm/hhvm/third-party/proxygen/lib/workers/WorkerThread.cpp:33
#15 0x00000000039e17d6 in std::_Bind_simple<facebook::proxygen::WorkerThread::start()::<lambda()>()>::_M_invoke<>(std::_Index_tuple<>) (this=0x2aaaba957128)
    at /root/hhvm/build/gcc49/lib/gcc/x86_64-unknown-linux-gnu/4.9.0/../../../../include/c++/4.9.0/functional:1700
#16 0x00000000039e171b in std::_Bind_simple<facebook::proxygen::WorkerThread::start()::<lambda()>()>::operator()(void) (this=0x2aaaba957128)
    at /root/hhvm/build/gcc49/lib/gcc/x86_64-unknown-linux-gnu/4.9.0/../../../../include/c++/4.9.0/functional:1688
#17 0x00000000039e1698 in std::thread::_Impl<std::_Bind_simple<facebook::proxygen::WorkerThread::start()::<lambda()>()> >::_M_run(void) (this=0x2aaaba957110)
    at /root/hhvm/build/gcc49/lib/gcc/x86_64-unknown-linux-gnu/4.9.0/../../../../include/c++/4.9.0/thread:115
#18 0x00002aaaaf88a350 in std::(anonymous namespace)::execute_native_thread_routine (__p=<optimized out>) at ../../../.././libstdc++-v3/src/c++11/thread.cc:84
#19 0x000000394a40677d in start_thread () from /lib64/libpthread.so.0
#20 0x00000039498d3c1d in clone () from /lib64/libc.so.6
#21 0x0000000000000000 in ?? ()
@paulbiss
Copy link
Contributor

When the sender sets m_keepConn to false via flags it expects the channel to die at the end of the request, looks like we're occasionally hitting the assert in the middle of a request for large requests.

rrh pushed a commit to newrelic-forks/hhvm that referenced this issue Sep 24, 2014
Summary: A faulty assumption (that onIngress would only be called at the start of
a connection) was causing assertion failures for very large requests. Since
we don't currently support KEEP_CONN anyway just kill the flag.

Closes facebook#3296

Reviewed By: @JoelMarcey

Differential Revision: D1559698
paulbiss added a commit that referenced this issue Oct 20, 2014
Summary: A faulty assumption (that onIngress would only be called at the start of
a connection) was causing assertion failures for very large requests. Since
we don't currently support KEEP_CONN anyway just kill the flag.

Closes #3296

Reviewed By: @JoelMarcey

Differential Revision: D1559698
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants