ipkn / crow

Crow is very fast and easy to use C++ micro web framework (inspired by Python Flask)
BSD 3-Clause "New" or "Revised" License
7.47k stars 890 forks source link

Crash report #67

Open testors opened 9 years ago

testors commented 9 years ago

crow rarely crashes during my test.

(gdb) run
Starting program: /home/ubuntu/crow/examples/example
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff6dd2700 (LWP 2961)]
[New Thread 0x7ffff65d1700 (LWP 2962)]
[New Thread 0x7ffff5dd0700 (LWP 2963)]
[New Thread 0x7ffff55cf700 (LWP 2964)]
[New Thread 0x7ffff4dce700 (LWP 2965)]
[New Thread 0x7fffe7fff700 (LWP 2966)]
[New Thread 0x7fffe77fe700 (LWP 2967)]
[New Thread 0x7fffe6ffd700 (LWP 2968)]
[New Thread 0x7fffe67fc700 (LWP 2969)]
[New Thread 0x7fffe5ffb700 (LWP 2970)]
[New Thread 0x7fffe57fa700 (LWP 2971)]
[New Thread 0x7fffe4ff9700 (LWP 2972)]
[New Thread 0x7fffc3fff700 (LWP 2973)]
[New Thread 0x7fffc37fe700 (LWP 2974)]
[New Thread 0x7fffc2ffd700 (LWP 2975)]
[New Thread 0x7fffc27fc700 (LWP 2976)]
[New Thread 0x7fffc1ffb700 (LWP 2977)]
[New Thread 0x7fffc17fa700 (LWP 2978)]
[New Thread 0x7fffc0ff9700 (LWP 2979)]
[New Thread 0x7fffa3fff700 (LWP 2980)]
[New Thread 0x7fffa37fe700 (LWP 2981)]
[New Thread 0x7fffa2ffd700 (LWP 2982)]
[New Thread 0x7fffa27fc700 (LWP 2983)]
[New Thread 0x7fffa1ffb700 (LWP 2984)]
[New Thread 0x7fffa17fa700 (LWP 2985)]
[New Thread 0x7fffa0ff9700 (LWP 2986)]
[New Thread 0x7fff83fff700 (LWP 2987)]
[New Thread 0x7fff837fe700 (LWP 2988)]
[New Thread 0x7fff82ffd700 (LWP 2989)]
[New Thread 0x7fff827fc700 (LWP 2990)]
[New Thread 0x7fff81ffb700 (LWP 2991)]
[New Thread 0x7fff817fa700 (LWP 2992)]
[New Thread 0x7fff80ff9700 (LWP 2993)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff83fff700 (LWP 2987)]
0x000000000043fccc in crow::Connection<crow::Crow<ExampleMiddleware>, ExampleMiddleware>::start_deadline(int) ()
(gdb) where
#0  0x000000000043fccc in crow::Connection<crow::Crow<ExampleMiddleware>, ExampleMiddleware>::start_deadline(int) ()
#1  0x0000000000442835 in boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, crow::Connection<crow::Crow<ExampleMiddleware>, ExampleMiddleware>::do_read()::{lambda(boost::system::error_code const&, unsigned long)#1}>::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) ()
#2  0x00000000004357f4 in boost::asio::detail::task_io_service::run(boost::system::error_code&) ()
#3  0x0000000000440894 in crow::Server<crow::Crow<ExampleMiddleware>, ExampleMiddleware>::run()::{lambda()#1}::operator()() const ()
#4  0x000000000042a95a in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, void> >::_M_invoke(std::_Any_data const&) ()
#5  0x0000000000429b0e in std::__future_base::_State_base::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&) ()
#6  0x00007ffff79c5a90 in pthread_once () from /lib/x86_64-linux-gnu/libpthread.so.0
#7  0x0000000000446a31 in std::thread::_Impl<std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<crow::Server<crow::Crow<ExampleMiddleware>, ExampleMiddleware>::run()::{lambda()#1} ()>, void>::_Async_state_impl(crow::Server<crow::Crow<ExampleMiddleware>, ExampleMiddleware>::run()::{lambda()#1} (&&)())::{lambda()#1} ()> >::_M_run() ()
#8  0x00007ffff7765bf0 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x00007ffff79c0182 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007ffff6ecd47d in clone () from /lib/x86_64-linux-gnu/libc.so.6
(gdb)

here is my test.

# ./wrk -t8 -c1024 -d10s "http://10.254.134.159:18080/json"
Running 10s test @ http://10.254.134.159:18080/json
  8 threads and 1024 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     7.86ms   29.81ms 228.87ms   98.10%
    Req/Sec     9.95k     7.82k   28.03k    75.00%
  23734 requests in 10.02s, 3.46MB read
  Socket errors: connect 11, read 70, write 0, timeout 0
Requests/sec:   2368.97
Transfer/sec:    353.96KB
Pompeu commented 9 years ago

I have Same problem in tests, if u use apache beckmark ou siege for testing concurrence

ipkn commented 9 years ago

I think this might be fixed in 5b72a099736faca57ff2e2906bb1912ed29498d0.