Skip to content

Corrige latência do keep-alive no FPC e prepara a versão 3.3.4 - #563

Merged
regyssilveira merged 1 commit into
HashLoad:masterfrom
regyssilveira:fix/fpc-keepalive-latency
Sep 4, 2026
Merged

Corrige latência do keep-alive no FPC e prepara a versão 3.3.4#563
regyssilveira merged 1 commit into
HashLoad:masterfrom
regyssilveira:fix/fpc-keepalive-latency

Conversation

@regyssilveira

Copy link
Copy Markdown
Contributor

Objetivo

Resolve a latência de aproximadamente 44 ms entre requisições HTTP/1.1 keep-alive no provider padrão do FPC 3.3.1 e prepara a versão 3.3.4.

Closes #562

Correção

  • instala um TSocketHandler não TLS que aplica TCP_NODELAY no socket aceito em FPC 3.3.1+ no Unix;
  • preserva factories customizadas de socket e não interfere no handler SSL/TLS;
  • mantém o comportamento anterior no FPC 3.2.2, Windows e providers não relacionados;
  • adiciona regressão TCP real com 30 requisições na mesma conexão;
  • fixa a revisão do FPC trunk usada na CI para tornar o teste reproduzível;
  • atualiza HORSE_VERSION e boss.json para 3.3.4.

Melhorias encontradas durante a validação

  • corrige o fallback de ContentStream nos adapters self-hosted sem reintroduzir RawAdapters em Apache/CGI/ISAPI;
  • faz o HttpSys preservar %2F no caminho bruto, evitando falso 404 em parâmetros com barra codificada;
  • torna a limpeza dos testes segura quando nenhum servidor está ativo;
  • valida Apache/FPC como módulo, sem tentar ligá-lo como executável standalone;
  • atualiza actions/checkout para v4.

Validação executada

  • FPC 3.3.1: mediana keep-alive de 0,088 ms e p95 de 0,143 ms (antes: ~44 ms);
  • FPC 3.2.2/Linux: integração completa e regressão WebSocket/Epoll verdes;
  • matriz de compilação: 74/74 combinações verdes;
  • DUnitX: 24/24 suítes verdes em Delphi 10, 11, 12 e 13, com Default, Radix, HttpSys e IOCP;
  • actionlint, sintaxe Python e git diff --check verdes.

@regyssilveira
regyssilveira merged commit 1221a27 into HashLoad:master Sep 4, 2026
@regyssilveira
regyssilveira deleted the fix/fpc-keepalive-latency branch September 4, 2026 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

investigate(fpc): possível latência de ~40 ms no keep-alive do fphttpserver

1 participant