THRIFT-3877: cpp http server buffering bug oneway
Client: C++
This closes #1418
C++ HTTP server, hit with oneway RPC, then roundtrip RPC, no longer
hangs, as demonstrated by OneWayHTTPTest.
Unit-test: Hit a C++ HTTP server with a oneway rpc, and the next RPC
will hang. This test-case elicits the failure (converts to
timeout-expiry).
diff --git a/lib/cpp/test/Makefile.am b/lib/cpp/test/Makefile.am
index c298e26..587e2be 100755
--- a/lib/cpp/test/Makefile.am
+++ b/lib/cpp/test/Makefile.am
@@ -28,6 +28,9 @@
gen-cpp/ChildService.h \
gen-cpp/EmptyService.h \
gen-cpp/ParentService.h \
+ gen-cpp/OneWayTest_types.h \
+ gen-cpp/OneWayService.h \
+ gen-cpp/OneWayTest_constants.h \
gen-cpp/proc_types.h
noinst_LTLIBRARIES = libtestgencpp.la libprocessortest.la
@@ -48,6 +51,12 @@
gen-cpp/ThriftTest_constants.h \
gen-cpp/TypedefTest_types.cpp \
gen-cpp/TypedefTest_types.h \
+ gen-cpp/OneWayService.cpp \
+ gen-cpp/OneWayTest_constants.cpp \
+ gen-cpp/OneWayTest_types.h \
+ gen-cpp/OneWayService.h \
+ gen-cpp/OneWayTest_constants.h \
+ gen-cpp/OneWayTest_types.cpp \
ThriftTest_extras.cpp \
DebugProtoTest_extras.cpp
@@ -113,6 +122,7 @@
UnitTests_SOURCES = \
UnitTestMain.cpp \
+ OneWayHTTPTest.cpp \
TMemoryBufferTest.cpp \
TBufferBaseTest.cpp \
Base64Test.cpp \
@@ -130,7 +140,9 @@
UnitTests_LDADD = \
libtestgencpp.la \
- $(BOOST_TEST_LDADD)
+ $(BOOST_TEST_LDADD) \
+ $(BOOST_SYSTEM_LDADD) \
+ $(BOOST_THREAD_LDADD)
TInterruptTest_SOURCES = \
TSocketInterruptTest.cpp \
@@ -385,6 +397,9 @@
gen-cpp/SecondService.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_types.h: $(top_srcdir)/test/ThriftTest.thrift
$(THRIFT) --gen cpp $<
+gen-cpp/OneWayService.cpp gen-cpp/OneWayTest_constants.cpp gen-cpp/OneWayTest_types.h gen-cpp/OneWayService.h gen-cpp/OneWayTest_constants.h gen-cpp/OneWayTest_types.cpp: OneWayTest.thrift
+ $(THRIFT) --gen cpp $<
+
gen-cpp/ChildService.cpp gen-cpp/ChildService.h gen-cpp/ParentService.cpp gen-cpp/ParentService.h gen-cpp/proc_types.cpp gen-cpp/proc_types.h: processor/proc.thrift
$(THRIFT) --gen cpp:templates,cob_style $<
@@ -401,4 +416,5 @@
qt \
CMakeLists.txt \
DebugProtoTest_extras.cpp \
- ThriftTest_extras.cpp
+ ThriftTest_extras.cpp \
+ OneWayTest.thrift