Open Chengwch opened 2 years ago
It would be very useful to know if this is a bug that has already been fixed in a newer version of bytes or not. You may be able to use cargo patch to use the new bytes without upgrading the other crates. There are not very many breaking changes between the versions (you can see the list in our changelog), so I don't think it would be that difficult to adjust bytes or your other dependencies to work with bytes v1.
Thanks for your reply!
I read the change history of bytes from v0.5.4 to 1.1 and found no updates that might be relevant to this problem.
I tried to upgrade bytes, but bytes is so basic that many crates rely on it. During the upgrade of bytes, I encountered crate compilation problems due to dependencies such as http2, hyper, tokio, and tokio-util. This is mainly caused by the name switch of the bytes() function and the change of the UninitSlice structure. After the above compilation problem is solved, there are still compilations due to other dependencies. this problem occurs in earlier versions, so the upgrade scheme is completely unworkable for me.
My project uses a lot of crate, and this problem only occurs in a single production environment, which is difficult to debug. So I asked the community for help on possible directions.
@Darksonn What suggestions do you have for the problem of @Chengwch
I'm not able to determine what the issue is from what's written here. It would require someone to sit down and spend a bunch of time debugging the issue. I have already spent a long time looking at the implementation for other purposes, and unless there's a PR fixing the issue in a newer version, then I didn't spot the issue when doing so.
If you're able to create a small example that triggers the problem, then that would be useful, but I realize that this is not easy either.
When I use bytes to parse HTTP2 request headers, I sometimes get a coredump, but I don't know what the possible cause is. I'm not sure if the latest version will have this problem yet.
Bytes version: 0.5.4 h2 version: 0.2.4
The GDB trace is as follows: