dakrone / dakrone/clj-http

Re-usable connection manager closes connection with keystore.

Open
#571 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Clojure
Stars
1.8k
Forks
410
PR merge metrics
No merged PRs in 30d

Description

;; Having a connection manage like this 
(def cm (conn-mgr/make-reusable-conn-manager {:timeout           100
                                              :threads           10 
                                              :default-per-route 10
                                              :keystore          "keystore.jks"
                                              :keystore-pass     "pass"}))

(defn make-req []
  (for [_ (range 100)]
    (http/post url {:connection-manager cm})))

;; and a test function to make 100 requests, I observed that after each HTTP call connection is being
;; closed by the connection manager. 

On digging the logs I found that initially, it says connection can be kept alive indefinitely after each call but when a new request is made or on Connection request: older connection is closed http-outgoing-54: Close connection

Further, even if they are not closed they are not used instead new connections are established.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with make-reusable-conn-manager and the request path using the :connection-manager option, then reproduce the 100-request example with the keystore settings and inspect the connection-manager logs. Done means reusable connections remain available and are reused for later requests instead of being closed or replaced each time.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.