dd-trace-php icon indicating copy to clipboard operation
dd-trace-php copied to clipboard

[Bug]: broken build of 1.4.0 using rust 1.75

Open remicollet opened this issue 1 year ago • 7 comments

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

remicollet avatar Oct 09 '24 08:10 remicollet

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

remicollet avatar Oct 09 '24 08:10 remicollet

Could be related to PR #2876

remicollet avatar Oct 09 '24 08:10 remicollet

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.

morrisonlevi avatar Oct 09 '24 09:10 morrisonlevi

@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).

morrisonlevi avatar Oct 09 '24 10:10 morrisonlevi

@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

remicollet avatar Oct 09 '24 10:10 remicollet

we can rewrite the problematic code for a 1.75 compatible build.

And of course, I can quickly test a patch proposal

remicollet avatar Oct 09 '24 10:10 remicollet

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.

bwoebi avatar Oct 09 '24 12:10 bwoebi