diff --git a/.gitlab/libdatadog-latest.yml b/.gitlab/libdatadog-latest.yml index 5b8557b4f2..32c2be294a 100644 --- a/.gitlab/libdatadog-latest.yml +++ b/.gitlab/libdatadog-latest.yml @@ -200,13 +200,12 @@ stages: if [ "${is_compile}" = "true" ]; then safe=$(echo "${jname_lower}" | tr '/ ' '-_' | cut -c1-60) trace_file="tmp/artifacts/traces/${safe}_${job_id}.txt" - echo "" && echo "--- trace: ${job_name} (${trigger}) ---" - trace=$(curl -sf -H "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \ - "${GITLAB_API}/projects/${CI_PROJECT_ID}/jobs/${job_id}/trace" \ - || echo "[trace unavailable]") - { echo "=== ${job_name} (trigger: ${trigger}) ==="; echo "${trace}" | tail -c 15360; } \ - > "${trace_file}" - echo "${trace}" | tail -c 2000 + echo "" + { + echo "=== ${job_name} (trigger: ${trigger}) ===" + (curl -sf -H "PRIVATE-TOKEN: ${GITLAB_TOKEN}" "${GITLAB_API}/projects/${CI_PROJECT_ID}/jobs/${job_id}/trace" || echo "[trace unavailable]") | tail -c 15360 + } > "${trace_file}" + tail -c 2000 "${trace_file}" fi done < <(jq -c '.[]' tmp/artifacts/all_failures.json) @@ -275,7 +274,7 @@ stages: # Feedback runs append [no-ci-feedback] so the next push doesn't trigger # another analyze-and-create-pr, breaking the potential infinite loop. - FEEDBACK_MARKER="${LIBDATADOG_FEEDBACK_RUN:+' [no-ci-feedback]'}" + FEEDBACK_MARKER=$(if [ "${LIBDATADOG_FEEDBACK_RUN:-}" == "true" ]; then echo " [no-ci-feedback]"; fi) COMMIT_MSG="libdatadog update to ${LIBDATADOG_SHA:0:8}${FEEDBACK_MARKER} Automated update by CI pipeline ${CI_PIPELINE_URL} @@ -290,7 +289,7 @@ stages: "https://x-access-token:${GITHUB_TOKEN}@github.com/DataDog/dd-trace-php.git" \ "HEAD:${TARGET_BRANCH}" set -x - elif [ -z "${LIBDATADOG_FEEDBACK_RUN:-}" ]; then + elif [ "${LIBDATADOG_FEEDBACK_RUN:-}" == "true" ]; then # Original schedule run with no code changes: still push the submodule bump. git commit --allow-empty -m "${COMMIT_MSG}" \ --author="github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>" diff --git a/Cargo.lock b/Cargo.lock index 4a77d2243d..081cd633ba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1447,6 +1447,7 @@ dependencies = [ "libc 0.2.177", "libdd-common", "libdd-common-ffi", + "libdd-crashtracker", "libdd-crashtracker-ffi", "libdd-dogstatsd-client", "libdd-remote-config", @@ -3058,6 +3059,7 @@ dependencies = [ "base64 0.22.1", "futures", "futures-util", + "hashbrown 0.15.2", "http", "http-body-util", "hyper", @@ -3253,6 +3255,7 @@ dependencies = [ "rmp", "rmp-serde", "rmpv", + "rustc-hash 2.1.2", "serde", "serde_json", "tempfile", diff --git a/components-rs/bytes.rs b/components-rs/bytes.rs index bbcbc5d546..235cf095ff 100644 --- a/components-rs/bytes.rs +++ b/components-rs/bytes.rs @@ -246,12 +246,12 @@ pub extern "C" fn ddog_add_str_span_meta_CharSlice( #[no_mangle] pub extern "C" fn ddog_del_span_meta_zstr(ptr: &mut SpanBytes, key: &mut ZendString) { - ptr.meta.remove(&convert_zend_to_bytes_string(key)); + ptr.meta.remove_slow(&convert_zend_to_bytes_string(key)); } #[no_mangle] pub extern "C" fn ddog_del_span_meta_str(ptr: &mut SpanBytes, key: *const c_char) { - ptr.meta.remove(&convert_literal_to_bytes_string(key)); + ptr.meta.remove_slow(&convert_literal_to_bytes_string(key)); } #[no_mangle] @@ -290,7 +290,7 @@ pub extern "C" fn ddog_has_span_metrics_zstr(ptr: &mut SpanBytes, key: &mut Zend #[no_mangle] pub extern "C" fn ddog_del_span_metrics_zstr(ptr: &mut SpanBytes, key: &mut ZendString) { - ptr.metrics.remove(&convert_zend_to_bytes_string(key)); + ptr.metrics.remove_slow(&convert_zend_to_bytes_string(key)); } #[no_mangle] @@ -316,7 +316,7 @@ pub extern "C" fn ddog_get_span_metrics_str( #[no_mangle] pub extern "C" fn ddog_del_span_metrics_str(ptr: &mut SpanBytes, key: *const c_char) { - ptr.metrics.remove(&convert_literal_to_bytes_string(key)); + ptr.metrics.remove_slow(&convert_literal_to_bytes_string(key)); } #[no_mangle] diff --git a/ext/sidecar.c b/ext/sidecar.c index 74a1e58884..860db78e9d 100644 --- a/ext/sidecar.c +++ b/ext/sidecar.c @@ -124,7 +124,7 @@ static void dd_sidecar_post_connect(ddog_SidecarTransport **transport, bool is_f DATADOG_REMOTE_CONFIG_PRODUCTS.len, DATADOG_REMOTE_CONFIG_CAPABILITIES.ptr, DATADOG_REMOTE_CONFIG_CAPABILITIES.len, - get_global_DD_REMOTE_CONFIG_ENABLED(), + get_global_DD_TRACE_AGENTLESS() ? false : get_global_DD_REMOTE_CONFIG_ENABLED(), is_fork, process_tags, dd_zend_string_to_CharSlice(get_global_DD_HOSTNAME()), diff --git a/libdatadog b/libdatadog index 382a08732c..6760faaeed 160000 --- a/libdatadog +++ b/libdatadog @@ -1 +1 @@ -Subproject commit 382a08732c4f0061c55f890830b5206afc3e929f +Subproject commit 6760faaeeda1cfcf634410105f93cf7149265592 diff --git a/tests/ext/close_spans_until.phpt b/tests/ext/close_spans_until.phpt index 5c34a59008..f2247f99c5 100644 --- a/tests/ext/close_spans_until.phpt +++ b/tests/ext/close_spans_until.phpt @@ -48,7 +48,7 @@ int(2) [ddtrace] [span] [%d] Switching to different SpanStack: %d int(1) int(0) -[ddtrace] [span] [%d] Encoding span: Span { service: close_spans_until.php, name: close_spans_until.php, resource: close_spans_until.php, type: cli, trace_id: %d, span_id: %d, parent_id: 0, start: %d, duration: %d, error: 0, meta: %s, metrics: %s, meta_struct: {}, span_links: [], span_events: [] } +[ddtrace] [span] [%d] Encoding span: Span { service: close_spans_until.php, name: close_spans_until.php, resource: close_spans_until.php, type: cli, trace_id: %d, span_id: %d, parent_id: 0, start: %d, duration: %d, error: 0, meta: %s, metrics: %s, meta_struct: %s, span_links: [], span_events: [] } [ddtrace] [span] [%d] Encoding span: Span { service: close_spans_until.php, name: traced, resource: traced, type: cli, trace_id: %d, span_id: %d, parent_id: %d, start: %d, duration: %d, error: %d, meta: %s, metrics: %s, meta_struct: %s, span_links: %s, span_events: %s } [ddtrace] [span] [%d] Encoding span: Span { service: close_spans_until.php, name: , resource: , type: cli, trace_id: %d, span_id: %d, parent_id: %d, start: %d, duration: %d, error: %d, meta: %s, metrics: %s, meta_struct: %s, span_links: %s, span_events: %s } [ddtrace] [span] [%d] Encoding span: Span { service: close_spans_until.php, name: , resource: , type: cli, trace_id: %d, span_id: %d, parent_id: %d, start: %d, duration: %d, error: %d, meta: %s, metrics: %s, meta_struct: %s, span_links: %s, span_events: %s } diff --git a/tests/ext/crashtracker_segfault.phpt b/tests/ext/crashtracker_segfault.phpt index 0171930d6e..f8ad77aa9e 100644 --- a/tests/ext/crashtracker_segfault.phpt +++ b/tests/ext/crashtracker_segfault.phpt @@ -99,7 +99,8 @@ $rr->waitForRequest(function ($request) { "line": 1 } ] - } + }, + "frame_count": %d }, %A "incomplete": false,