diff --git a/.circleci/continue_config.yml b/.circleci/continue_config.yml index c69f3ce482..5896a89e79 100644 --- a/.circleci/continue_config.yml +++ b/.circleci/continue_config.yml @@ -911,6 +911,7 @@ jobs: if [[ "<>" == "3.4.0" ]]; then ln -s $(php-config --extension-dir)/xdebug-3.4.0.so $(php-config --extension-dir)/xdebug-3.4.0alpha2-dev.so fi + sed -i 's/\bdl(/(bool)(/' /usr/local/src/php/run-tests.php php /usr/local/src/php/run-tests.php -g FAIL,XFAIL,BORK,WARN,LEAK,XLEAK,SKIP -p $(which php) --show-all -d zend_extension=xdebug-<< parameters.xdebug_version_one >>.so tests/xdebug/$(targetdir << parameters.xdebug_version_one >>) if [[ ! "<>" == "none" ]]; then php /usr/local/src/php/run-tests.php -g FAIL,XFAIL,BORK,WARN,LEAK,XLEAK,SKIP -p $(which php) --show-all -d zend_extension=xdebug-<< parameters.xdebug_version_two >>.so tests/xdebug/$(targetdir << parameters.xdebug_version_two >>) @@ -978,7 +979,7 @@ jobs: - run: command: | mkdir -p /tmp/artifacts/core_dumps - find /tmp -name "core*" -type f | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps + find /tmp -name "core*" -type f | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps && chmod -R o+rx /tmp/artifacts/core_dumps ! [ "$(ls -A /tmp/artifacts/core_dumps)" ] || cp tmp/build_extension/modules/ddtrace.so /tmp/artifacts/ cp -a tmp/build_extension/tests/$(if [[ << parameters.make_target >> == *opcache* ]]; then echo opcache; else echo ext; fi) /tmp/artifacts/tests when: on_fail @@ -1028,7 +1029,7 @@ jobs: - run: command: | mkdir -p /tmp/artifacts/core_dumps - find /tmp -name "core*" -type f | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps + find /tmp -name "core*" -type f | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps && chmod -R o+rx /tmp/artifacts/core_dumps ! [ "$(ls -A /tmp/artifacts/core_dumps)" ] || cp tmp/build_extension/modules/ddtrace.so /tmp/artifacts/ cp -a tmp/build_extension/tests/ext /tmp/artifacts/tests find /tmp/artifacts/tests -name '*.phpt' -delete @@ -1080,7 +1081,7 @@ jobs: - run: command: | mkdir -p /tmp/artifacts/core_dumps - find /tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps + find /tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps && chmod -R o+rx /tmp/artifacts/core_dumps ! [ "$(ls -A /tmp/artifacts/core_dumps)" ] || cp tmp/build_extension/modules/ddtrace.so /tmp/artifacts/ cp -a tmp/build_extension/tests/ext /tmp/artifacts/tests find /tmp/artifacts/tests -name '*.phpt' -delete @@ -1179,7 +1180,7 @@ jobs: - run: command: | mkdir -p /tmp/artifacts/core_dumps - find /tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps + find /tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps && chmod -R o+rx /tmp/artifacts/core_dumps cp -a tmp/build_extension/tests/ext /tmp/artifacts/tests find /tmp/artifacts/tests -name '*.phpt' -delete when: on_fail @@ -1303,7 +1304,7 @@ jobs: - run: command: | mkdir -p /tmp/artifacts/core_dumps - find /tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps + find /tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps && chmod -R o+rx /tmp/artifacts/core_dumps ! [ "$(ls -A /tmp/artifacts/core_dumps)" ] || cp tmp/build_extension/modules/ddtrace.so /tmp/artifacts/ cp -a tmp/build_extension/tests/ext /tmp/artifacts/tests when: on_fail @@ -1766,7 +1767,7 @@ jobs: mkdir -p /tmp/artifacts find ~/datadog/tests -type f \( -name 'phpunit_error.log' -o -name 'nginx_*.log' -o -name 'apache_*.log' -o -name 'php_fpm_*.log' -o -name 'dd_php_error.log' -o -name 'sidecar.log' \) -exec cp --parents '{}' /tmp/artifacts \; mkdir -p /tmp/artifacts/core_dumps - find /tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps + find /tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps && chmod -R o+rx /tmp/artifacts/core_dumps ! [ "$(ls -A /tmp/artifacts/core_dumps)" ] || cp tmp/build_extension/modules/ddtrace.so /tmp/artifacts/ when: on_fail - run: @@ -1977,7 +1978,7 @@ jobs: command: | cd /usr/local/src/php mkdir -p /tmp/artifacts/core_dumps - find ./ -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps + find ./ -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps && chmod -R o+rx /tmp/artifacts/core_dumps mkdir -p /tmp/artifacts/diffs find -type f -name '*.diff' -exec cp --parents '{}' /tmp/artifacts/diffs \; when: on_fail @@ -2060,7 +2061,7 @@ jobs: mkdir -p /tmp/artifacts find ~/datadog/tests -type f \( -name 'phpunit_error.log' -o -name 'nginx_*.log' -o -name 'apache_*.log' -o -name 'php_fpm_*.log' -o -name 'dd_php_error.log' \) -exec cp --parents '{}' /tmp/artifacts \; mkdir -p /tmp/artifacts/core_dumps - find /tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps + find /tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps && chmod -R o+rx /tmp/artifacts/core_dumps ! [ "$(ls -A /tmp/artifacts/core_dumps)" ] || cp tmp/build_extension/modules/ddtrace.so /tmp/artifacts/ when: on_fail - store_artifacts: @@ -2135,7 +2136,7 @@ jobs: - run: command: | mkdir -p /tmp/artifacts/core_dumps - find tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps + find tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps && chmod -R o+rx /tmp/artifacts/core_dumps ! [ "$(ls -A /tmp/artifacts/core_dumps)" ] || cp tmp/build_extension/modules/ddtrace.so /tmp/artifacts/ cp -a tmp/build_extension/tests/ext /tmp/artifacts/tests find /tmp/artifacts/tests -name '*.phpt' -delete @@ -2189,7 +2190,7 @@ jobs: - run: command: | mkdir -p /tmp/artifacts/core_dumps - find tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps + find tmp -name "core.*" | xargs -I % -n 1 cp % /tmp/artifacts/core_dumps && chmod -R o+rx /tmp/artifacts/core_dumps ! [ "$(ls -A /tmp/artifacts/core_dumps)" ] || cp tmp/build_extension/modules/ddtrace.so /tmp/artifacts/ cp -a tmp/build_extension/tests/ext /tmp/artifacts/tests find /tmp/artifacts/tests -name '*.phpt' -delete @@ -5004,7 +5005,6 @@ workflows: - PHP_MAJOR=8 PHP_MINOR=1 - PHP_MAJOR=8 PHP_MINOR=2 - PHP_MAJOR=8 PHP_MINOR=3 - - PHP_MAJOR=8 PHP_MINOR=4 - verify_debian: requires: [ "package extension" ] matrix: diff --git a/Cargo.lock b/Cargo.lock index 20329ba566..cbefa5aad6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1314,6 +1314,7 @@ dependencies = [ "anyhow", "backtrace", "blazesym", + "cc", "chrono", "ddcommon 0.0.1", "ddtelemetry", @@ -1321,6 +1322,8 @@ dependencies = [ "hyper 0.14.32", "libc 0.2.169", "nix 0.27.1", + "num-derive", + "num-traits", "os_info", "page_size", "portable-atomic", @@ -3460,6 +3463,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "num-integer" version = "0.1.46" diff --git a/Makefile b/Makefile index 2886fc6b82..d98f01e4dc 100644 --- a/Makefile +++ b/Makefile @@ -109,6 +109,7 @@ $(BUILD_DIR)/configure: $(M4_FILES) $(BUILD_DIR)/ddtrace.sym $(BUILD_DIR)/VERSIO $(BUILD_DIR)/run-tests.php: $(if $(ASSUME_COMPILED),, $(BUILD_DIR)/configure) $(if $(ASSUME_COMPILED), cp $(shell dirname $(shell realpath $(shell which phpize)))/../lib/php/build/run-tests.php $(BUILD_DIR)/run-tests.php) + sed -i 's/\bdl(/(bool)(/' $(BUILD_DIR)/run-tests.php # this dl() stuff in run-tests.php is for --EXTENSIONS-- sections, which we don't use; just strip it away (see https://github.com/php/php-src/issues/15367) $(BUILD_DIR)/Makefile: $(BUILD_DIR)/configure $(Q) (cd $(BUILD_DIR); ./configure --$(if $(RUST_DEBUG_BUILD),enable,disable)-ddtrace-rust-debug $(if $(ASAN), --enable-ddtrace-sanitize) $(EXTRA_CONFIGURE_OPTIONS)) diff --git a/components-rs/common.h b/components-rs/common.h index 2614f4c304..502ebd96ae 100644 --- a/components-rs/common.h +++ b/components-rs/common.h @@ -915,6 +915,7 @@ typedef enum ddog_crasht_OpTypes { /** * See https://man7.org/linux/man-pages/man2/sigaction.2.html + * MUST REMAIN IN SYNC WITH THE ENUM IN emit_sigcodes.c */ typedef enum ddog_crasht_SiCodes { DDOG_CRASHT_SI_CODES_BUS_ADRALN, @@ -922,6 +923,14 @@ typedef enum ddog_crasht_SiCodes { DDOG_CRASHT_SI_CODES_BUS_MCEERR_AO, DDOG_CRASHT_SI_CODES_BUS_MCEERR_AR, DDOG_CRASHT_SI_CODES_BUS_OBJERR, + DDOG_CRASHT_SI_CODES_ILL_BADSTK, + DDOG_CRASHT_SI_CODES_ILL_COPROC, + DDOG_CRASHT_SI_CODES_ILL_ILLADR, + DDOG_CRASHT_SI_CODES_ILL_ILLOPC, + DDOG_CRASHT_SI_CODES_ILL_ILLOPN, + DDOG_CRASHT_SI_CODES_ILL_ILLTRP, + DDOG_CRASHT_SI_CODES_ILL_PRVOPC, + DDOG_CRASHT_SI_CODES_ILL_PRVREG, DDOG_CRASHT_SI_CODES_SEGV_ACCERR, DDOG_CRASHT_SI_CODES_SEGV_BNDERR, DDOG_CRASHT_SI_CODES_SEGV_MAPERR, diff --git a/libdatadog b/libdatadog index 7a481f89ed..5bd8ebc926 160000 --- a/libdatadog +++ b/libdatadog @@ -1 +1 @@ -Subproject commit 7a481f89ed9a2d0ba473f4e946a3e68d6c8d3a97 +Subproject commit 5bd8ebc926146aa223f0f83fbef3508bac2de09f diff --git a/loader/bin/test.sh b/loader/bin/test.sh index b3013ca897..0f529ad89b 100755 --- a/loader/bin/test.sh +++ b/loader/bin/test.sh @@ -29,7 +29,8 @@ printf "Test load loader\n\n" DD_TRACE_DEBUG=1 php -n -d zend_extension=${PWD}/modules/dd_library_loader.so -v printf "\nRunning PHPT tests\n" -php -n run-tests.php -q -p $(which php) -n -d zend_extension=${PWD}/modules/dd_library_loader.so --show-diff +# point extension_dir into nirvana to avoid issues with dl() +php -n run-tests.php -q -p $(which php) -n -d extension_dir=/dev/shm/ -d zend_extension=${PWD}/modules/dd_library_loader.so --show-diff printf "\nRunning functional tests\n\n" failure=0 diff --git a/tests/ext/background-sender/agent_headers_container_id.phpt b/tests/ext/background-sender/agent_headers_container_id.phpt index cb8b6e732f..c00e04ab7b 100644 --- a/tests/ext/background-sender/agent_headers_container_id.phpt +++ b/tests/ext/background-sender/agent_headers_container_id.phpt @@ -40,7 +40,7 @@ echo 'Done.' . PHP_EOL; --EXPECTF-- [ddtrace] [info] Flushing trace of size 1 to send-queue for http://request-replayer:80 -datadog-container-id: 9d5b23edb1ba181e8910389a99906598d69ac9a0ead109ee55730cc416d95f7f +datadog-container-id:%s9d5b23edb1ba181e8910389a99906598d69ac9a0ead109ee55730cc416d95f7f datadog-meta-lang: php Done. diff --git a/tests/ext/background-sender/agent_headers_container_id_empty.phpt b/tests/ext/background-sender/agent_headers_container_id_empty.phpt index afbd716b0a..52b7686d91 100644 --- a/tests/ext/background-sender/agent_headers_container_id_empty.phpt +++ b/tests/ext/background-sender/agent_headers_container_id_empty.phpt @@ -11,6 +11,7 @@ DD_TRACE_AGENT_FLUSH_AFTER_N_REQUESTS=1 DD_TRACE_AGENT_FLUSH_INTERVAL=333 DD_TRACE_GENERATE_ROOT_SPAN=0 DD_INSTRUMENTATION_TELEMETRY_ENABLED=0 +DD_TRACE_SIDECAR_TRACE_SENDER=0 --INI-- ddtrace.cgroup_file={PWD}/stubs/cgroup.empty datadog.trace.agent_test_session_token=background-sender/agent_headers_container_id_empty diff --git a/tests/ext/background-sender/agent_headers_container_id_fargate.phpt b/tests/ext/background-sender/agent_headers_container_id_fargate.phpt index 796629e986..23551339f7 100644 --- a/tests/ext/background-sender/agent_headers_container_id_fargate.phpt +++ b/tests/ext/background-sender/agent_headers_container_id_fargate.phpt @@ -39,7 +39,7 @@ echo 'Done.' . PHP_EOL; --EXPECTF-- [ddtrace] [info] Flushing trace of size 1 to send-queue for http://request-replayer:80 -datadog-container-id: 34dc0b5e626f2c5c4c5170e34b10e765-1234567890 +datadog-container-id:%s34dc0b5e626f2c5c4c5170e34b10e765-1234567890 datadog-meta-lang: php Done.