Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 1360243

Summary: [networking_public_55]Timeout server doesn't work for passthough route
Product: OKD Reporter: Yan Du <yadu>
Component: RoutingAssignee: jtanenba
Status: CLOSED CURRENTRELEASE QA Contact: zhaozhanqi <zzhao>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.xCC: aos-bugs, bbennett, jtanenba, xtian
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-19 13:50:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Yan Du 2016-07-26 10:24:59 UTC
Description of problem:
Timeout server doesn't work for passthough route

Version-Release number of selected component (if applicable):
openshift v1.3.0-alpha.2+0369166
kubernetes v1.3.0+57fb9ac
etcd 2.3.0+git
openshift/origin-haproxy-router:latest       959439930ca4

How reproducible:

Steps to Reproduce:
1. Create pod/service 
# cat httpbin-pod.json 
  "kind": "Pod",

  "metadata": {
        "name": "httpbin-pod",
        "labels": {
                "name": "httpbin-pod"
  "spec": {
      "containers": [{
        "name": "httpbin-pod",
        "image": "yadu/httpbin",
        "ports": [
            "containerPort": 8080
            "containerPort": 8443
# cat service_secure.json 
    "kind": "Service",
    "apiVersion": "v1",
    "metadata": {
        "name": "service-secure"
    "spec": {
        "ports": [
            "name": "https",
            "protocol": "TCP",
            "port": 27443,
            "targetPort": 8443
        "selector": {
                "name": "httpbin-pod"

2. Create passthough route
#oc create route passthrough myroute --service=service-secure

3. Config the timeout for the route to 2s
oc annotate route myroute --overwrite

4. oc rsh router-pod and check the haproxy.config

5. Test the timeout time by accessing a page which timeout is 5s

Actually results:

step4: timeout server show correctly as we set
backend be_tcp_p1_myroute
  balance source

  timeout server  2s

  hash-type consistent
  timeout check 5000ms

  server check inter 5000ms weight 100

step5: the timeout server we set doesn't work
# curl -k
  "args": {}, 
  "data": "", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept": "*/*", 
    "Host": "", 
    "User-Agent": "curl/7.29.0"
  "origin": "", 
  "url": ""

Expected results:
step5: Should return 504 as below:
<html><body><h1>504 Gateway Time-out</h1>
The server didn't respond in time.

Additional info
Timeout work for unsecure/edge/reencrypt route normally, only not work for passthough route

Comment 2 Yan Du 2016-08-15 05:42:29 UTC
Test on latest origin env. Issue have been fixed.

openshift v1.3.0-alpha.3+69c7837
kubernetes v1.3.0+507d3a7
etcd 2.3.0+git
openshift/origin-haproxy-router  5f44d676581d

backend be_tcp_d1_myroute   
  balance source              
  timeout tunnel  2s

# curl -k
curl: (52) Empty reply from server