Skip to content

Commit a5da519

Browse files
committed
Merge branch 'PHP-8.2'
* PHP-8.2: use_tls=0 on MSAN
2 parents bb97ae7 + ca7c7e9 commit a5da519

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

run-tests.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -578,14 +578,22 @@ function main(): void
578578
$environment['USE_TRACKED_ALLOC'] = 1;
579579
$environment['SKIP_ASAN'] = 1;
580580
$environment['SKIP_PERF_SENSITIVE'] = 1;
581+
$lsan_options = [];
581582
if ($switch === '--msan') {
582583
$environment['SKIP_MSAN'] = 1;
584+
// use_tls=0 is a workaround for MSAN crashing with "Tracer caught signal 11" (SIGSEGV),
585+
// which seems to be an issue with TLS support in newer glibc versions under virtualized
586+
// environments. Follow https://github.com/google/sanitizers/issues/1342 and
587+
// https://github.com/google/sanitizers/issues/1409 to track this issue.
588+
$lsan_options[] = 'use_tls=0';
583589
}
584-
585590
$lsanSuppressions = __DIR__ . '/.github/lsan-suppressions.txt';
586591
if (file_exists($lsanSuppressions)) {
587-
$environment['LSAN_OPTIONS'] = 'suppressions=' . $lsanSuppressions
588-
. ':print_suppressions=0';
592+
$lsan_options[] = 'suppressions=' . $lsanSuppressions;
593+
$lsan_options[] = 'print_suppressions=0';
594+
}
595+
if (!empty($lsan_options)) {
596+
$environment['LSAN_OPTIONS'] = join(':', $lsan_options);
589597
}
590598
break;
591599
case '--repeat':

0 commit comments

Comments
 (0)