Skip to content

Commit ca7c7e9

Browse files
committed
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1: use_tls=0 on MSAN
2 parents f575027 + 63525ee commit ca7c7e9

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
@@ -579,14 +579,22 @@ function main(): void
579579
$environment['USE_TRACKED_ALLOC'] = 1;
580580
$environment['SKIP_ASAN'] = 1;
581581
$environment['SKIP_PERF_SENSITIVE'] = 1;
582+
$lsan_options = [];
582583
if ($switch === '--msan') {
583584
$environment['SKIP_MSAN'] = 1;
585+
// use_tls=0 is a workaround for MSAN crashing with "Tracer caught signal 11" (SIGSEGV),
586+
// which seems to be an issue with TLS support in newer glibc versions under virtualized
587+
// environments. Follow https://github.com/google/sanitizers/issues/1342 and
588+
// https://github.com/google/sanitizers/issues/1409 to track this issue.
589+
$lsan_options[] = 'use_tls=0';
584590
}
585-
586591
$lsanSuppressions = __DIR__ . '/.github/lsan-suppressions.txt';
587592
if (file_exists($lsanSuppressions)) {
588-
$environment['LSAN_OPTIONS'] = 'suppressions=' . $lsanSuppressions
589-
. ':print_suppressions=0';
593+
$lsan_options[] = 'suppressions=' . $lsanSuppressions;
594+
$lsan_options[] = 'print_suppressions=0';
595+
}
596+
if (!empty($lsan_options)) {
597+
$environment['LSAN_OPTIONS'] = join(':', $lsan_options);
590598
}
591599
break;
592600
case '--repeat':

0 commit comments

Comments
 (0)