Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Responses not being received by httperf #83

@kj3moraes

Description

@kj3moraes
  • while using httperf to benchmark a server I wrote, it will just stall and not terminate when a response comes in.
  • when my server responds with the appropriate response, httperf does not terminate and show the stats.
  • I face this problem for single stats tests like httperf --server localhost --port 4080 and multi stats test like httperf --server localhost --port 4080 --num-conns 100 --rate 10.

Setup:

  • arm64 Mac
  • http server running on localhost:4080
  • httperf command used is below(sudo since it is installed globally)
$ sudo httperf --server localhost --port 4080
httperf --client=0/1 --server=localhost --port=4080 --uri=/ --send-buffer=4096 --recv-buffer=16384 --ssl-protocol=auto --num-conns=1 --num-calls=1

The tcpdump is as below

19:25:25.285731 IP localhost.49792 > localhost.4080: Flags [S], seq 4109149818, win 16384, options [mss 16344,nop,wscale 3,nop,nop,TS val 544588128 ecr 0,sackOK,eol], length 0
19:25:25.285893 IP localhost.4080 > localhost.49792: Flags [S.], seq 509044763, ack 4109149819, win 65535, options [mss 16344,nop,wscale 6,nop,nop,TS val 1163499699 ecr 544588128,sackOK,eol], length 0
19:25:25.285941 IP localhost.49792 > localhost.4080: Flags [.], ack 1, win 40830, options [nop,nop,TS val 544588128 ecr 1163499699], length 0
19:25:25.285956 IP localhost.49792 > localhost.4080: Flags [P.], seq 1:63, ack 1, win 40830, options [nop,nop,TS val 544588128 ecr 1163499699], length 62
19:25:25.285972 IP localhost.4080 > localhost.49792: Flags [.], ack 1, win 6379, options [nop,nop,TS val 1163499699 ecr 544588128], length 0
19:25:25.285991 IP localhost.4080 > localhost.49792: Flags [.], ack 63, win 6378, options [nop,nop,TS val 1163499699 ecr 544588128], length 0
19:25:25.287219 IP localhost.4080 > localhost.49792: Flags [P.], seq 1:105, ack 63, win 6378, options [nop,nop,TS val 1163499700 ecr 544588128], length 104
19:25:25.287266 IP localhost.49792 > localhost.4080: Flags [.], ack 105, win 40817, options [nop,nop,TS val 544588129 ecr 1163499700], length 0

My server's debugging output (the packet sent) is as follows

Accepted HTTP connection from 127.0.0.1:49792
Consumer 1 is starting the task
HTTP Request:
Method: GET
Path: /
Version: HTTP/1.1
====
HTTP/1.1 200 OK
Server: keanes-magic-server
Date: Wed, 04 Dec 2024 11:25:25 GMT
Connection: close


==
Successfully sent to the client
Consumer 1 has finished the task

This is the hexdump of the packet sent

00000000  48 54 54 50 2f 31 2e 31  20 32 30 30 20 4f 4b 0d  |HTTP/1.1 200 OK.|
00000010  0a 53 65 72 76 65 72 3a  20 6b 65 61 6e 65 73 2d  |.Server: keanes-|
00000020  6d 61 67 69 63 2d 73 65  72 76 65 72 0d 0a 44 61  |magic-server..Da|
00000030  74 65 3a 20 57 65 64 2c  20 30 34 20 44 65 63 20  |te: Wed, 04 Dec |
00000040  32 30 32 34 20 31 31 3a  32 35 3a 32 35 20 47 4d  |2024 11:25:25 GM|
00000050  54 0d 0a 43 6f 6e 6e 65  63 74 69 6f 6e 3a 20 63  |T..Connection: c|
00000060  6c 6f 73 65 0d 0a 0d 0a                           |lose....|

Does anyone know why this is happening exactly ? Afaik my server is responding correctly and in the right format.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions