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/
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)
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.
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,
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
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 ***