[Bug]: broken build of 1.4.0 using rust 1.75
Bug report
Using rust 1.75 in RHEL 8.10 and 9.4 results in build failure
error[E0658]: use of unstable library feature 'result_option_inspect'
--> libdatadog/sidecar/src/service/sidecar_server.rs:918:18
|
918 | .inspect(|f| f.send_owned(actions));
| ^^^^^^^
|
= note: see issue #91345 <https://github.com/rust-lang/rust/issues/91345> for more information
= help: add `#![feature(result_option_inspect)]` to the crate attributes to enable
PHP version
irrelevant
Tracer or profiler version
1.4.0
Installed extensions
irrelevant
Output of phpinfo()
No response
Upgrading from
No response
Notice: build OK with rust 1.81 in Fedora or 1.79 in CentOS Stream 9
For memory https://rpms.remirepo.net/rpmphp/zoom.php?rpm=rust
Could be related to PR #2876
PR 2876 hasn't merged, so that's not why v1.4.0 has an issue. libdatadog bumped to 1.76 because of an issue with crates it depends on for a new feature.
If I'm understanding the specific build failure, we can probably fix this and release 1.4.1. The sidecar feature doesn't need 1.76 as far as I can tell, we can rewrite the problematic code for a 1.75 compatible build. It's a different crate that needed to bump the version to 1.76.
@remicollet , are you comfortable with us pointing to that URL of RPM builds in our documentation on what versions are acceptable to bump to? Something like:
When bumping the Rust version, make sure that the version is less than or equal to latest Alpine Linux version, and also the latest RHEL 8.x and 9.x releases (not stream).
@remicollet , are you comfortable with us pointing to that URL of RPM builds in our documentation on what versions are acceptable to bump to? Something like:
No problem, this is publicly open
we can rewrite the problematic code for a 1.75 compatible build.
And of course, I can quickly test a patch proposal
We actually require 1.76, because there was a codepath on an older rust version, which led to a crash due to a compiler bug :-(
So, 1.75 may be made to work, but it will crash with some functionality.