-
Notifications
You must be signed in to change notification settings - Fork 1.5k
2.9.3 breaks ABI compatibility with 2.9.2 with no corresponding SONAME change #502
Comments
Paging @indutny and also @jasnell, @mcollina and @sam-github. It seems like a pretty obvious oversight (I caught it immediately while looking at the diff so I'm pretty disappointed no one else did...) so please figure out how to fix this. |
Sigh :(. |
FWIW, I've marked relevant PR as an ABI change. Looks like the details went missing somewhere in the process. Should we cut Sorry! |
As @indutny mentions, this was clearly an abi breaking change. Unfortunate that that was missed in the release process. A revert plus new 2.10.0 should work I think. |
Fix ABI breakage introduced in commit 7d5c99d ("Support multi-coding Transfer-Encoding") by undoing the change in `sizeof(http_parser)`. Restore the size of the `flags` field and shrink the `index` field from 7 to 5 bits. It track strings up to `strlen("Transfer-Encoding")` bytes in size so 2^5 == 32 is wide enough. Fixes: nodejs#502
Just to be clear, 2.10.0 would contain the ABI change again? With a SONAME bump? What happens when a security vulnerability is found that affects 2.9.4? I think the change from 7d5c99d can be done in a backwards compatible way. PTAL y'all at #503. |
Fixed in 714cbb2 and released as v2.9.4. |
Hello,
After spending quite some time debugging quassel-webserver breaking on my latest system update, I traced the issue back to the upgrade of http-parser from 2.9.2 to 2.9.3 without a corresponding rebuild of node itself. Node wasn't rebuilt because the SONAME of http-parser didn't change.
However, it is clear that the changes introduced in 7d5c99d horribly broke the ABI of libhttp_parser.so. This is due to the changes made to
enum http_errno
andstruct http_parser
(the changes made toenum header_states
are also breaking but I'm assuming this is not ABI). The abi-laboratory report gives a nice summary of this.The problem I encountered was any request to the app would immediately return a
Bad Request
, but I figure this can manifest in any number of ways - for example, the Fedora people saw that it made libgit2 segfault.Please consider cutting a new release with an updated SONAME or otherwise making the changes ABI compatible.
Thanks,
Max
The text was updated successfully, but these errors were encountered: