You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by je...@apache.org on 2015/11/14 13:39:41 UTC

thrift git commit: THRIFT-3422 Fixed Go's TServerSocket not closing socket on Interrupt. Client: Go Patch: Mark Sonnabaum

Repository: thrift
Updated Branches:
  refs/heads/master 622ef03f1 -> a6b120301


THRIFT-3422 Fixed Go's TServerSocket not closing socket on Interrupt.
Client: Go
Patch: Mark Sonnabaum <ma...@sonnabaum.com>

This closes #692


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/a6b12030
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/a6b12030
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/a6b12030

Branch: refs/heads/master
Commit: a6b120301a05ef6bfb77d5bd7df1784b78339a09
Parents: 622ef03
Author: Mark Sonnabaum <ma...@sonnabaum.com>
Authored: Fri Nov 13 10:48:25 2015 -0600
Committer: Jens Geyer <je...@apache.org>
Committed: Sat Nov 14 13:37:46 2015 +0100

----------------------------------------------------------------------
 lib/go/thrift/server_socket.go      |  1 +
 lib/go/thrift/server_socket_test.go | 50 ++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/a6b12030/lib/go/thrift/server_socket.go
----------------------------------------------------------------------
diff --git a/lib/go/thrift/server_socket.go b/lib/go/thrift/server_socket.go
index 2581056..d6e9495 100644
--- a/lib/go/thrift/server_socket.go
+++ b/lib/go/thrift/server_socket.go
@@ -115,6 +115,7 @@ func (p *TServerSocket) Close() error {
 func (p *TServerSocket) Interrupt() error {
 	p.mu.Lock()
 	p.interrupted = true
+	p.Close()
 	p.mu.Unlock()
 
 	return nil

http://git-wip-us.apache.org/repos/asf/thrift/blob/a6b12030/lib/go/thrift/server_socket_test.go
----------------------------------------------------------------------
diff --git a/lib/go/thrift/server_socket_test.go b/lib/go/thrift/server_socket_test.go
new file mode 100644
index 0000000..f08e8e9
--- /dev/null
+++ b/lib/go/thrift/server_socket_test.go
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package thrift
+
+import (
+	"fmt"
+	"testing"
+)
+
+func TestSocketIsntListeningAfterInterrupt(t *testing.T) {
+	host := "127.0.0.1"
+	port := 9090
+	addr := fmt.Sprintf("%s:%d", host, port)
+
+	socket := CreateServerSocket(t, addr)
+	socket.Listen()
+	socket.Interrupt()
+
+	newSocket := CreateServerSocket(t, addr)
+	err := newSocket.Listen()
+	defer newSocket.Interrupt()
+	if err != nil {
+		t.Fatalf("Failed to rebinds: %s", err)
+	}
+}
+
+func CreateServerSocket(t *testing.T, addr string) *TServerSocket {
+	socket, err := NewTServerSocket(addr)
+	if err != nil {
+		t.Fatalf("Failed to create server socket: %s", err)
+	}
+	return socket
+}