Ticket 21801 - Replace http-parser dependency with llhttp
Summary: Replace http-parser dependency with llhttp
Status: RESOLVED DUPLICATE of ticket 20785
Alias: None
Product: Slurm
Classification: Unclassified
Component: slurmrestd (show other tickets)
Version: 25.05.x
Hardware: Linux Linux
: 6 - No support contract
Assignee: Megan Dahl
QA Contact:
URL:
Depends on:
Blocks:
 
Reported: 2025-01-12 07:29 MST by Jakub Klinkovský
Modified: 2026-05-26 11:01 MDT (History)
10 users (show)

See Also:
Site: -Other-
Slinky Site: ---
Alineos Sites: ---
Atos/Eviden Sites: ---
Confidential Site: ---
Coreweave sites: ---
Cray Sites: ---
DS9 clusters: ---
Google sites: ---
HPCnow Sites: ---
HPE Sites: ---
IBM Sites: ---
NOAA SIte: ---
NoveTech Sites: ---
Nvidia HWinf-CS Sites: ---
OCF Sites: ---
Recursion Pharma Sites: ---
SFW Sites: ---
SNIC sites: ---
Tzag Elita Sites: ---
Linux Distro: RHEL
Machine Name:
CLE Version:
Version Fixed:
Target Release: ---
DevPrio: ---
Emory-Cloud Sites: ---


Attachments

Note You need to log in before you can comment on or make changes to this ticket.
Description Jakub Klinkovský 2025-01-12 07:29:47 MST
http-parser has been unmaintained for several years [1] and nodejs now uses llhttp [2]. Fedora and Arch Linux are working on removing their http-parser packages [3,4].

[1] https://github.com/nodejs/http-parser/issues/522
[2] https://github.com/nodejs/llhttp
[3] https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/466TNSUQW454A2WSDONN2EYKHFM2S3IK/
[4] https://archlinux.org/todo/move-to-llhttp-from-http-parser/
Comment 1 Timon Vogt 2025-10-29 07:07:39 MDT
Hi,
just wanted to bring this issue back to attention.

We've recently started our first tests with Rockylinux 10 / EL10, which has removed http-parser from the repos, so Slurm's configure complains and doesn't build the slurmrestd.

As llhttp is only introduced to the repos of EL10 (and EPEL for EL9) and most of our clusters are still Rockylinux 8 / 9 based, a direct replacement of http-parser with llhttp would create the opposite issue. But maybe there is a way to make the codebase accept llhttp and http-parser, depending on what's available?

So far, one still gets around the issue by manually installing the http-parser / http-parser-devel RPMs from EL9 into EL10, but I would call this more of a band-aid than a fix.

As always, thank you and keep up the great work.
Best regards,
Timon Vogt (GWDG)
Comment 2 Jason Booth 2026-03-31 14:49:34 MDT
The current plan is to create another http parser plugin that utilizes the
llhttp library. Work is being done to add this new plugin in the release of
Slurm 26.05.
Comment 3 david.guilbert 2026-05-07 04:04:00 MDT
Hello,

Thank you for the information regarding the planned replacement of the current HTTP parser with a new plugin based on the llhttp library, expected in Slurm 26.05.

We are currently facing a blocking issue in our environment because Slurm 25.11 on RHEL 10 cannot be built with slurmrestd due to the absence of the legacy http-parser package, which has been replaced by llhttp in the distribution.

As a result, we are unable to deploy slurmrestd, which is required for our monitoring and integration with Slurm-Web.

Could you please provide:

The current status of the llhttp-based HTTP parser plugin development
Whether any backport or interim solution is planned for Slurm 25.11.x
An estimated timeline for availability in a production-ready release

This feature is critical for our monitoring stack, and the current situation is blocking our deployment.

Thank you in advance for your support.

Best regards,
Comment 4 Megan Dahl 2026-05-07 11:03:07 MDT
Hello,

> The current status of the llhttp-based HTTP parser plugin development
The llhttp-based HTTP parser plugin is currently planned to be included in Slurm 26.05.0’s release.

> Whether any backport or interim solution is planned for Slurm 25.11.x
There is currently no plan to backport the llhttp parser plugin to 25.11.

> An estimated timeline for availability in a production-ready release
The current plan is to have 26.05.0 released by the end of May. This could be subject to change.

Regards,
--Megan
Comment 5 Megan Dahl 2026-05-26 11:01:09 MDT
Hello,

Starting in 26.05.0, Slurm can now be compiled with the llhttp library version more than or equal to v9.0.0 to make the new http_parser/llhttp_parser plugin which can be used in conjunction with the new url_parser/internal plugin. These plugins can be used instead of the http_parser/libhttp_parser and url_parser/libhttp_parser plugins which rely on http-parser library. The slurmrestd daemon will now work with either http_parer plugin. The new plugins were added by the following commits:

```
86cc51889b slurm.spec - Accept llhttp-devel or http-parser-devel for slurmrestd  
6e51b1bb3e http_parser/libhttp_parser - Prevent memory leak when connection ends early  
26ffd06363 http_parser/libhttp_parser - Reset per-message state at message complete  
47ec0fc8f9 http_parser/libhttp_parser - Allow libhttp to use url_parser/internal  
925f1590f5 interfaces/url_parser - Load the first url_parser plugin available  
6339354e29 interfaces/http_parser - Load the first http_parser plugin available  
5db1d5fdff Docs - Document UrlParserType=url_parser/internal  
6d996970b8 url_parser/internal - Add implementation  
ea50bfc901 url_parser/internal - Expose parse_url() in http_parser_url_port.h  
05f2934ef3 url_parser/internal - Remove #if URL_PARSER_STRICT sections  
51e4642e01 url_parser/internal - Remove references to http_parser in symbol names  
5bc2db65dc url_parser/internal - Convert all enum names to upper case  
101b8cc0a5 url_parser/internal - Remove unused state enums  
adf7c53635 url_parser/internal - style fixes for nodejs/http_parser code  
db6081ee09 url_parser/internal - Copy nodejs's http_parser_parse_url()  
72a9b7107f Stub url_parser/internal plugin files  
c4a313243e Docs - Document HttpParserType=http_parser/llhttp_parser  
7a8693ddf0 http_parser/llhttp_parser - Add implementation  
b4f0442e71 Add ESLURM_HTTP_MISSING_CR slurm error code  
732b74d783 Move _on_parse_error to http_parser_common.c  
baff7e0461 Move _log_parse() and _log_parse_buffer() into common http_parser code  
64674bb493 Add stub files for http_parser plugin common code  
b37776eccf Add rpath when configuring libhttp_parser and llhttp_parser plugins  
c76f78faf1 Add new --with-llhttp-parser configuration option  
b41e3d6af3 Add stub llhttp_parser plugin  
4f8113c2c3 configure - Rename --with-http_parser to --with-libhttp_parser  
00c1ee602b Standardize error message for ESLURM_HTTP_MISSING_LF
```

Since this feature has been added, I will go ahead and mark this ticket as resolved.

Regards,
--Megan

*** This ticket has been marked as a duplicate of ticket 20785 ***