Skip to content

Commit ce361a9

Browse files
committed
Try un-flaking unix socket proxy tests
Signed-off-by: Bob Weinand <[email protected]>
1 parent 8154bb8 commit ce361a9

File tree

11 files changed

+150
-118
lines changed

11 files changed

+150
-118
lines changed

Diff for: .circleci/continue_config.yml

+4
Original file line numberDiff line numberDiff line change
@@ -5319,6 +5319,10 @@ workflows:
53195319
- test_c_disabled
53205320
- test_internal_api_randomized
53215321
- test_opcache
5322+
exclude:
5323+
# apparently for no discernible reason, on PHP 8.1 valgrind thinks some extensions are loaded, but they aren't. We anyway test sasn, so good enough, I guess.
5324+
- php_major_minor: '8.1'
5325+
make_target: test_c2php
53225326

53235327
- test:
53245328
requires: [ 'Prepare Code' ]

Diff for: Cargo.lock

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ install_appsec:
155155
install_all: install install_ini
156156

157157
run_tests: $(TEST_FILES) $(TEST_STUB_FILES) $(BUILD_DIR)/run-tests.php
158-
$(ALL_TEST_ENV_OVERRIDE) $(TESTS)
158+
$(ALL_TEST_ENV_OVERRIDE) $(RUN_TESTS_CMD) $(TESTS)
159159

160160
test_c: $(SO_FILE) $(TEST_FILES) $(TEST_STUB_FILES) $(BUILD_DIR)/run-tests.php
161161
$(if $(ASAN), USE_ZEND_ALLOC=0 USE_TRACKED_ALLOC=1 LSAN_OPTIONS=fast_unwind_on_malloc=0$${LSAN_OPTIONS:+$(,)$${LSAN_OPTIONS}}) $(ALL_TEST_ENV_OVERRIDE) $(RUN_TESTS_CMD) -d extension=$(SO_FILE) $(BUILD_DIR)/$(subst $(BUILD_DIR_NAME)/,,$(TESTS))

Diff for: components-rs/common.h

+23-88
Original file line numberDiff line numberDiff line change
@@ -870,7 +870,6 @@ typedef enum ddog_crasht_BuildIdType {
870870
DDOG_CRASHT_BUILD_ID_TYPE_GNU,
871871
DDOG_CRASHT_BUILD_ID_TYPE_GO,
872872
DDOG_CRASHT_BUILD_ID_TYPE_PDB,
873-
DDOG_CRASHT_BUILD_ID_TYPE_PE,
874873
DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
875874
} ddog_crasht_BuildIdType;
876875

@@ -888,7 +887,7 @@ typedef enum ddog_crasht_ErrorKind {
888887
typedef enum ddog_crasht_FileType {
889888
DDOG_CRASHT_FILE_TYPE_APK,
890889
DDOG_CRASHT_FILE_TYPE_ELF,
891-
DDOG_CRASHT_FILE_TYPE_PDB,
890+
DDOG_CRASHT_FILE_TYPE_PE,
892891
} ddog_crasht_FileType;
893892

894893
/**
@@ -1116,38 +1115,13 @@ typedef struct ddog_crasht_Handle_CrashInfoBuilder {
11161115
struct ddog_crasht_CrashInfoBuilder *inner;
11171116
} ddog_crasht_Handle_CrashInfoBuilder;
11181117

1119-
/**
1120-
* A generic result type for when an operation may fail,
1121-
* or may return <T> in case of success.
1122-
*/
1123-
typedef enum ddog_crasht_Result_HandleCrashInfoBuilder_Tag {
1124-
DDOG_CRASHT_RESULT_HANDLE_CRASH_INFO_BUILDER_OK_HANDLE_CRASH_INFO_BUILDER,
1125-
DDOG_CRASHT_RESULT_HANDLE_CRASH_INFO_BUILDER_ERR_HANDLE_CRASH_INFO_BUILDER,
1126-
} ddog_crasht_Result_HandleCrashInfoBuilder_Tag;
1118+
typedef enum ddog_crasht_CrashInfo_NewResult_Tag {
1119+
DDOG_CRASHT_CRASH_INFO_NEW_RESULT_OK,
1120+
DDOG_CRASHT_CRASH_INFO_NEW_RESULT_ERR,
1121+
} ddog_crasht_CrashInfo_NewResult_Tag;
11271122

1128-
typedef struct ddog_crasht_Result_HandleCrashInfoBuilder {
1129-
ddog_crasht_Result_HandleCrashInfoBuilder_Tag tag;
1130-
union {
1131-
struct {
1132-
struct ddog_crasht_Handle_CrashInfoBuilder ok;
1133-
};
1134-
struct {
1135-
struct ddog_Error err;
1136-
};
1137-
};
1138-
} ddog_crasht_Result_HandleCrashInfoBuilder;
1139-
1140-
/**
1141-
* A generic result type for when an operation may fail,
1142-
* or may return <T> in case of success.
1143-
*/
1144-
typedef enum ddog_crasht_Result_HandleCrashInfo_Tag {
1145-
DDOG_CRASHT_RESULT_HANDLE_CRASH_INFO_OK_HANDLE_CRASH_INFO,
1146-
DDOG_CRASHT_RESULT_HANDLE_CRASH_INFO_ERR_HANDLE_CRASH_INFO,
1147-
} ddog_crasht_Result_HandleCrashInfo_Tag;
1148-
1149-
typedef struct ddog_crasht_Result_HandleCrashInfo {
1150-
ddog_crasht_Result_HandleCrashInfo_Tag tag;
1123+
typedef struct ddog_crasht_CrashInfo_NewResult {
1124+
ddog_crasht_CrashInfo_NewResult_Tag tag;
11511125
union {
11521126
struct {
11531127
struct ddog_crasht_Handle_CrashInfo ok;
@@ -1156,7 +1130,7 @@ typedef struct ddog_crasht_Result_HandleCrashInfo {
11561130
struct ddog_Error err;
11571131
};
11581132
};
1159-
} ddog_crasht_Result_HandleCrashInfo;
1133+
} ddog_crasht_CrashInfo_NewResult;
11601134

11611135
typedef struct ddog_crasht_OsInfo {
11621136
ddog_CharSlice architecture;
@@ -1213,17 +1187,13 @@ typedef struct ddog_crasht_Handle_StackFrame {
12131187
struct ddog_crasht_StackFrame *inner;
12141188
} ddog_crasht_Handle_StackFrame;
12151189

1216-
/**
1217-
* A generic result type for when an operation may fail,
1218-
* or may return <T> in case of success.
1219-
*/
1220-
typedef enum ddog_crasht_Result_HandleStackFrame_Tag {
1221-
DDOG_CRASHT_RESULT_HANDLE_STACK_FRAME_OK_HANDLE_STACK_FRAME,
1222-
DDOG_CRASHT_RESULT_HANDLE_STACK_FRAME_ERR_HANDLE_STACK_FRAME,
1223-
} ddog_crasht_Result_HandleStackFrame_Tag;
1190+
typedef enum ddog_crasht_StackFrame_NewResult_Tag {
1191+
DDOG_CRASHT_STACK_FRAME_NEW_RESULT_OK,
1192+
DDOG_CRASHT_STACK_FRAME_NEW_RESULT_ERR,
1193+
} ddog_crasht_StackFrame_NewResult_Tag;
12241194

1225-
typedef struct ddog_crasht_Result_HandleStackFrame {
1226-
ddog_crasht_Result_HandleStackFrame_Tag tag;
1195+
typedef struct ddog_crasht_StackFrame_NewResult {
1196+
ddog_crasht_StackFrame_NewResult_Tag tag;
12271197
union {
12281198
struct {
12291199
struct ddog_crasht_Handle_StackFrame ok;
@@ -1232,59 +1202,24 @@ typedef struct ddog_crasht_Result_HandleStackFrame {
12321202
struct ddog_Error err;
12331203
};
12341204
};
1235-
} ddog_crasht_Result_HandleStackFrame;
1236-
1237-
/**
1238-
* A generic result type for when an operation may fail,
1239-
* or may return <T> in case of success.
1240-
*/
1241-
typedef enum ddog_crasht_Result_HandleStackTrace_Tag {
1242-
DDOG_CRASHT_RESULT_HANDLE_STACK_TRACE_OK_HANDLE_STACK_TRACE,
1243-
DDOG_CRASHT_RESULT_HANDLE_STACK_TRACE_ERR_HANDLE_STACK_TRACE,
1244-
} ddog_crasht_Result_HandleStackTrace_Tag;
1245-
1246-
typedef struct ddog_crasht_Result_HandleStackTrace {
1247-
ddog_crasht_Result_HandleStackTrace_Tag tag;
1248-
union {
1249-
struct {
1250-
struct ddog_crasht_Handle_StackTrace ok;
1251-
};
1252-
struct {
1253-
struct ddog_Error err;
1254-
};
1255-
};
1256-
} ddog_crasht_Result_HandleStackTrace;
1205+
} ddog_crasht_StackFrame_NewResult;
12571206

1258-
/**
1259-
* A wrapper for returning owned strings from FFI
1260-
*/
1261-
typedef struct ddog_crasht_StringWrapper {
1262-
/**
1263-
* This is a String stuffed into the vec.
1264-
*/
1265-
struct ddog_Vec_U8 message;
1266-
} ddog_crasht_StringWrapper;
1267-
1268-
/**
1269-
* A generic result type for when an operation may fail,
1270-
* or may return <T> in case of success.
1271-
*/
1272-
typedef enum ddog_crasht_Result_StringWrapper_Tag {
1273-
DDOG_CRASHT_RESULT_STRING_WRAPPER_OK_STRING_WRAPPER,
1274-
DDOG_CRASHT_RESULT_STRING_WRAPPER_ERR_STRING_WRAPPER,
1275-
} ddog_crasht_Result_StringWrapper_Tag;
1207+
typedef enum ddog_StringWrapperResult_Tag {
1208+
DDOG_STRING_WRAPPER_RESULT_OK,
1209+
DDOG_STRING_WRAPPER_RESULT_ERR,
1210+
} ddog_StringWrapperResult_Tag;
12761211

1277-
typedef struct ddog_crasht_Result_StringWrapper {
1278-
ddog_crasht_Result_StringWrapper_Tag tag;
1212+
typedef struct ddog_StringWrapperResult {
1213+
ddog_StringWrapperResult_Tag tag;
12791214
union {
12801215
struct {
1281-
struct ddog_crasht_StringWrapper ok;
1216+
struct ddog_StringWrapper ok;
12821217
};
12831218
struct {
12841219
struct ddog_Error err;
12851220
};
12861221
};
1287-
} ddog_crasht_Result_StringWrapper;
1222+
} ddog_StringWrapperResult;
12881223

12891224
#ifdef __cplusplus
12901225
extern "C" {

Diff for: components-rs/crashtracker.h

+86-11
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,40 @@
1212
#include <stdint.h>
1313
#include "common.h"
1414

15+
typedef enum ddog_crasht_CrashInfoBuilder_NewResult_Tag {
16+
DDOG_CRASHT_CRASH_INFO_BUILDER_NEW_RESULT_OK,
17+
DDOG_CRASHT_CRASH_INFO_BUILDER_NEW_RESULT_ERR,
18+
} ddog_crasht_CrashInfoBuilder_NewResult_Tag;
19+
20+
typedef struct ddog_crasht_CrashInfoBuilder_NewResult {
21+
ddog_crasht_CrashInfoBuilder_NewResult_Tag tag;
22+
union {
23+
struct {
24+
struct ddog_crasht_Handle_CrashInfoBuilder ok;
25+
};
26+
struct {
27+
struct ddog_Error err;
28+
};
29+
};
30+
} ddog_crasht_CrashInfoBuilder_NewResult;
31+
32+
typedef enum ddog_crasht_StackTrace_NewResult_Tag {
33+
DDOG_CRASHT_STACK_TRACE_NEW_RESULT_OK,
34+
DDOG_CRASHT_STACK_TRACE_NEW_RESULT_ERR,
35+
} ddog_crasht_StackTrace_NewResult_Tag;
36+
37+
typedef struct ddog_crasht_StackTrace_NewResult {
38+
ddog_crasht_StackTrace_NewResult_Tag tag;
39+
union {
40+
struct {
41+
struct ddog_crasht_Handle_StackTrace ok;
42+
};
43+
struct {
44+
struct ddog_Error err;
45+
};
46+
};
47+
} ddog_crasht_StackTrace_NewResult;
48+
1549
#ifdef __cplusplus
1650
extern "C" {
1751
#endif // __cplusplus
@@ -92,6 +126,47 @@ DDOG_CHECK_RETURN
92126
struct ddog_VoidResult ddog_crasht_init_without_receiver(struct ddog_crasht_Config config,
93127
struct ddog_crasht_Metadata metadata);
94128

129+
/**
130+
* Removes all existing additional tags
131+
* Expected to be used after a fork, to reset the additional tags on the child
132+
* ATOMICITY:
133+
* This is NOT ATOMIC.
134+
* Should only be used when no conflicting updates can occur,
135+
* e.g. after a fork but before profiling ops start on the child.
136+
* # Safety
137+
* No safety concerns.
138+
*/
139+
DDOG_CHECK_RETURN struct ddog_VoidResult ddog_crasht_clear_additional_tags(void);
140+
141+
/**
142+
* Atomically registers a string as an additional tag.
143+
* Useful for tracking what operations were occurring when a crash occurred.
144+
* The set does not check for duplicates.
145+
*
146+
* Returns:
147+
* Ok(handle) on success. The handle is needed to later remove the id;
148+
* Err() on failure. The most likely cause of failure is that the underlying set is full.
149+
*
150+
* # Safety
151+
* The string argument must be valid.
152+
*/
153+
DDOG_CHECK_RETURN
154+
struct ddog_crasht_Result_Usize ddog_crasht_insert_additional_tag(ddog_CharSlice s);
155+
156+
/**
157+
* Atomically removes a completed SpanId.
158+
* Useful for tracking what operations were occurring when a crash occurred.
159+
* 0 is reserved for "NoId"
160+
*
161+
* Returns:
162+
* `Ok` on success.
163+
* `Err` on failure.
164+
*
165+
* # Safety
166+
* No safety concerns.
167+
*/
168+
DDOG_CHECK_RETURN struct ddog_VoidResult ddog_crasht_remove_additional_tag(uintptr_t idx);
169+
95170
/**
96171
* Resets all counters to 0.
97172
* Expected to be used after a fork, to reset the counters on the child
@@ -291,7 +366,7 @@ struct ddog_VoidResult ddog_crasht_CrashInfo_upload_to_endpoint(struct ddog_cras
291366
* No safety issues.
292367
*/
293368
DDOG_CHECK_RETURN
294-
struct ddog_crasht_Result_HandleCrashInfoBuilder ddog_crasht_CrashInfoBuilder_new(void);
369+
struct ddog_crasht_CrashInfoBuilder_NewResult ddog_crasht_CrashInfoBuilder_new(void);
295370

296371
/**
297372
* # Safety
@@ -306,7 +381,7 @@ void ddog_crasht_CrashInfoBuilder_drop(struct ddog_crasht_Handle_CrashInfoBuilde
306381
* which has not previously been dropped.
307382
*/
308383
DDOG_CHECK_RETURN
309-
struct ddog_crasht_Result_HandleCrashInfo ddog_crasht_CrashInfoBuilder_build(struct ddog_crasht_Handle_CrashInfoBuilder *builder);
384+
struct ddog_crasht_CrashInfo_NewResult ddog_crasht_CrashInfoBuilder_build(struct ddog_crasht_Handle_CrashInfoBuilder *builder);
310385

311386
/**
312387
* # Safety
@@ -515,7 +590,7 @@ struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_with_uuid_random(struct ddog
515590
* # Safety
516591
* No safety issues.
517592
*/
518-
DDOG_CHECK_RETURN struct ddog_crasht_Result_HandleStackFrame ddog_crasht_StackFrame_new(void);
593+
DDOG_CHECK_RETURN struct ddog_crasht_StackFrame_NewResult ddog_crasht_StackFrame_new(void);
519594

520595
/**
521596
* # Safety
@@ -532,7 +607,7 @@ void ddog_crasht_StackFrame_drop(struct ddog_crasht_Handle_StackFrame *frame);
532607
*/
533608
DDOG_CHECK_RETURN
534609
struct ddog_VoidResult ddog_crasht_StackFrame_with_ip(struct ddog_crasht_Handle_StackFrame *frame,
535-
ddog_CharSlice ip);
610+
uintptr_t ip);
536611

537612
/**
538613
* # Safety
@@ -542,7 +617,7 @@ struct ddog_VoidResult ddog_crasht_StackFrame_with_ip(struct ddog_crasht_Handle_
542617
*/
543618
DDOG_CHECK_RETURN
544619
struct ddog_VoidResult ddog_crasht_StackFrame_with_module_base_address(struct ddog_crasht_Handle_StackFrame *frame,
545-
ddog_CharSlice module_base_address);
620+
uintptr_t module_base_address);
546621

547622
/**
548623
* # Safety
@@ -552,7 +627,7 @@ struct ddog_VoidResult ddog_crasht_StackFrame_with_module_base_address(struct dd
552627
*/
553628
DDOG_CHECK_RETURN
554629
struct ddog_VoidResult ddog_crasht_StackFrame_with_sp(struct ddog_crasht_Handle_StackFrame *frame,
555-
ddog_CharSlice sp);
630+
uintptr_t sp);
556631

557632
/**
558633
* # Safety
@@ -562,7 +637,7 @@ struct ddog_VoidResult ddog_crasht_StackFrame_with_sp(struct ddog_crasht_Handle_
562637
*/
563638
DDOG_CHECK_RETURN
564639
struct ddog_VoidResult ddog_crasht_StackFrame_with_symbol_address(struct ddog_crasht_Handle_StackFrame *frame,
565-
ddog_CharSlice symbol_address);
640+
uintptr_t symbol_address);
566641

567642
/**
568643
* # Safety
@@ -612,7 +687,7 @@ struct ddog_VoidResult ddog_crasht_StackFrame_with_path(struct ddog_crasht_Handl
612687
*/
613688
DDOG_CHECK_RETURN
614689
struct ddog_VoidResult ddog_crasht_StackFrame_with_relative_address(struct ddog_crasht_Handle_StackFrame *frame,
615-
ddog_CharSlice relative_address);
690+
uintptr_t relative_address);
616691

617692
/**
618693
* # Safety
@@ -657,7 +732,7 @@ struct ddog_VoidResult ddog_crasht_StackFrame_with_line(struct ddog_crasht_Handl
657732
* # Safety
658733
* No safety issues.
659734
*/
660-
DDOG_CHECK_RETURN struct ddog_crasht_Result_HandleStackTrace ddog_crasht_StackTrace_new(void);
735+
DDOG_CHECK_RETURN struct ddog_crasht_StackTrace_NewResult ddog_crasht_StackTrace_new(void);
661736

662737
/**
663738
* # Safety
@@ -696,8 +771,8 @@ struct ddog_VoidResult ddog_crasht_StackTrace_set_complete(struct ddog_crasht_Ha
696771
* The string is copied into the result, and does not need to outlive this call
697772
*/
698773
DDOG_CHECK_RETURN
699-
struct ddog_crasht_Result_StringWrapper ddog_crasht_demangle(ddog_CharSlice name,
700-
enum ddog_crasht_DemangleOptions options);
774+
struct ddog_StringWrapperResult ddog_crasht_demangle(ddog_CharSlice name,
775+
enum ddog_crasht_DemangleOptions options);
701776

702777
/**
703778
* Receives data from a crash collector via a pipe on `stdin`, formats it into

Diff for: dockerfiles/ci/xfail_tests/8.1.list

+1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ ext/json/tests/json_encode_exceptions.phpt
5151
ext/mbstring/tests/zend_multibyte-01.phpt
5252
ext/mbstring/tests/zend_multibyte-02.phpt
5353
ext/mbstring/tests/zend_multibyte-06.phpt
54+
ext/mysqli/tests/ghsa-h35g-vwh6-m678-stmt-row-double.phpt
5455
ext/openssl/tests/bug46127.phpt
5556
ext/openssl/tests/bug48182.phpt
5657
ext/openssl/tests/bug54992.phpt

0 commit comments

Comments
 (0)