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 - [networking_public_55]Timeout server doesn't work for passthough route
Summary: [networking_public_55]Timeout server doesn't work for passthough route
Alias: None
Product: OKD
Classification: Red Hat
Component: Routing
Version: 3.x
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
: ---
Assignee: jtanenba
QA Contact: zhaozhanqi
Depends On:
TreeView+ depends on / blocked
Reported: 2016-07-26 10:24 UTC by Yan Du
Modified: 2016-09-19 13:50 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2016-09-19 13:50:46 UTC
Target Upstream Version:

Attachments (Terms of Use)

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

Note You need to log in before you can comment on or make changes to this bug.