# Anatomy of an HAProxy \<-\> Java TLS bug

DevFeed: [Anatomy of an HAProxy \<-\> Java TLS bug](<https://devfeed.tech/articles/anatomy-of-an-haproxy-java-tls-bug-15500.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/anatomy-of-an-haproxy-java-tls-bug>)

Author: Steven Davidovitz

Published: 2017-03-27T19:23:27Z

Content type: article

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [bug](<https://devfeed.tech/topics/bug.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [Java](<https://devfeed.tech/topics/java.md>), [Load Balancing](<https://devfeed.tech/topics/load-balancing.md>), [client](<https://devfeed.tech/topics/client.md>), [servers](<https://devfeed.tech/topics/servers.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [event driven](<https://devfeed.tech/topics/event-driven.md>), [debug](<https://devfeed.tech/topics/debug.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [bug](<https://devfeed.tech/tags/bug.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [event-driven](<https://devfeed.tech/tags/event-driven.md>), [haproxy](<https://devfeed.tech/tags/haproxy.md>), [health-checks](<https://devfeed.tech/tags/health-checks.md>), [java](<https://devfeed.tech/tags/java.md>), [load-balancing](<https://devfeed.tech/tags/load-balancing.md>), [openssl](<https://devfeed.tech/tags/openssl.md>), [servers](<https://devfeed.tech/tags/servers.md>), [ssl](<https://devfeed.tech/tags/ssl.md>), [tls](<https://devfeed.tech/tags/tls.md>)

## AI overview

This article investigates a CPU saturation problem caused by HAProxy SSL health checks against Java services. It explains that Java invalidated TLS sessions after unclean connection closures, preventing session resumption and forcing expensive full key exchanges.

## Source excerpt

Adding SSL health checks to HAProxy uncovered an interesting interaction with Java servers.