Closed jkeenan closed 4 years ago
A quick scan of the log file, show multiple warnings and many Direct leak
or Indirect leak
my first question is, can we compile 5.32.0
with such a configuration? Are the errors unique to our branch?
I'm going to try to reproduce it, but I'm not sure I got the correct environment for it.
Configure options seems to be:
-Dcc="ccache clang" -Accflags="-Werror=declaration-after-statement -g -fno-omit-frame-pointer -fsanitize=address -fno-common -fsanitize-blacklist=`pwd`/asan_ignore" -Aldflags="-fsanitize=address" (*1)
and
-Dcc="ccache clang" -Accflags="-Werror=declaration-after-statement -g -fno-omit-frame-pointer -fsanitize=address -fno-common -fsanitize-blacklist=`pwd`/asan_ignore" -Aldflags="-fsanitize=address" -Duseithreads (*1)
Configure options seems to be:
-Dcc="ccache clang" -Accflags="-Werror=declaration-after-statement -g -fno-omit-frame-pointer -fsanitize=address -fno-common -fsanitize-blacklist=`pwd`/asan_ignore" -Aldflags="-fsanitize=address" (*1)
and
-Dcc="ccache clang" -Accflags="-Werror=declaration-after-statement -g -fno-omit-frame-pointer -fsanitize=address -fno-common -fsanitize-blacklist=`pwd`/asan_ignore" -Aldflags="-fsanitize=address" -Duseithreads (*1)
This tester uses this configuration on Perl 5 blead and all branches and has done so for a long time.
I myself have never successfully compiled with asan.
After testing on a fresh Fedora 32 install with the same configuration option I can notice this error
git clean -dxf; ./Configure -des -Dcc="ccache clang" -Accflags="-Werror=declaration-after-statement -g -fno-omit-frame-pointer -fsanitize=address -fno-common -fsanitize-blacklist=`pwd`/asan_ignore" -Aldflags="-fsanitize=address"
t/re/pat .......................................................
=================================================================
==69530==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 51328 byte(s) in 16 object(s) allocated from:
#0 0x4d9ed8 (/home/atoomic/workspace/perl/perl+0x4d9ed8)
#1 0x72c32a (/home/atoomic/workspace/perl/perl+0x72c32a)
#2 0x6e12ae (/home/atoomic/workspace/perl/perl+0x6e12ae)
#3 0x6d4f12 (/home/atoomic/workspace/perl/perl+0x6d4f12)
#4 0x67e511 (/home/atoomic/workspace/perl/perl+0x67e511)
#5 0x6723d1 (/home/atoomic/workspace/perl/perl+0x6723d1)
#6 0x5256ce (/home/atoomic/workspace/perl/perl+0x5256ce)
#7 0x65a3fc (/home/atoomic/workspace/perl/perl+0x65a3fc)
#8 0x872f16 (/home/atoomic/workspace/perl/perl+0x872f16)
#9 0x871570 (/home/atoomic/workspace/perl/perl+0x871570)
#10 0x789a49 (/home/atoomic/workspace/perl/perl+0x789a49)
#11 0x589d9e (/home/atoomic/workspace/perl/perl+0x589d9e)
#12 0x5891a0 (/home/atoomic/workspace/perl/perl+0x5891a0)
#13 0x50eefc (/home/atoomic/workspace/perl/perl+0x50eefc)
#14 0x7f81a7964041 (/lib64/libc.so.6+0x27041)
Direct leak of 6416 byte(s) in 16 object(s) allocated from:
#0 0x4d9ed8 (/home/atoomic/workspace/perl/perl+0x4d9ed8)
#1 0x72c32a (/home/atoomic/workspace/perl/perl+0x72c32a)
#2 0x6e1278 (/home/atoomic/workspace/perl/perl+0x6e1278)
#3 0x6d4f12 (/home/atoomic/workspace/perl/perl+0x6d4f12)
#4 0x67e511 (/home/atoomic/workspace/perl/perl+0x67e511)
#5 0x6723d1 (/home/atoomic/workspace/perl/perl+0x6723d1)
#6 0x5256ce (/home/atoomic/workspace/perl/perl+0x5256ce)
#7 0x65a3fc (/home/atoomic/workspace/perl/perl+0x65a3fc)
#8 0x872f16 (/home/atoomic/workspace/perl/perl+0x872f16)
#9 0x871570 (/home/atoomic/workspace/perl/perl+0x871570)
#10 0x789a49 (/home/atoomic/workspace/perl/perl+0x789a49)
#11 0x589d9e (/home/atoomic/workspace/perl/perl+0x589d9e)
#12 0x5891a0 (/home/atoomic/workspace/perl/perl+0x5891a0)
#13 0x50eefc (/home/atoomic/workspace/perl/perl+0x50eefc)
#14 0x7f81a7964041 (/lib64/libc.so.6+0x27041)
Direct leak of 4720 byte(s) in 2 object(s) allocated from:
#0 0x4d9d17 (/home/atoomic/workspace/perl/perl+0x4d9d17)
#1 0x72c454 (/home/atoomic/workspace/perl/perl+0x72c454)
#2 0x6e0f5b (/home/atoomic/workspace/perl/perl+0x6e0f5b)
#3 0x6d4f12 (/home/atoomic/workspace/perl/perl+0x6d4f12)
#4 0x67e511 (/home/atoomic/workspace/perl/perl+0x67e511)
#5 0x6723d1 (/home/atoomic/workspace/perl/perl+0x6723d1)
#6 0x5256ce (/home/atoomic/workspace/perl/perl+0x5256ce)
#7 0x65a3fc (/home/atoomic/workspace/perl/perl+0x65a3fc)
#8 0x586442 (/home/atoomic/workspace/perl/perl+0x586442)
#9 0x50eeec (/home/atoomic/workspace/perl/perl+0x50eeec)
#10 0x7f81a7964041 (/lib64/libc.so.6+0x27041)
Direct leak of 590 byte(s) in 2 object(s) allocated from:
#0 0x4d9d17 (/home/atoomic/workspace/perl/perl+0x4d9d17)
#1 0x72c454 (/home/atoomic/workspace/perl/perl+0x72c454)
#2 0x6e0f47 (/home/atoomic/workspace/perl/perl+0x6e0f47)
#3 0x6d4f12 (/home/atoomic/workspace/perl/perl+0x6d4f12)
#4 0x67e511 (/home/atoomic/workspace/perl/perl+0x67e511)
#5 0x6723d1 (/home/atoomic/workspace/perl/perl+0x6723d1)
#6 0x5256ce (/home/atoomic/workspace/perl/perl+0x5256ce)
#7 0x65a3fc (/home/atoomic/workspace/perl/perl+0x65a3fc)
#8 0x586442 (/home/atoomic/workspace/perl/perl+0x586442)
#9 0x50eeec (/home/atoomic/workspace/perl/perl+0x50eeec)
#10 0x7f81a7964041 (/lib64/libc.so.6+0x27041)
SUMMARY: AddressSanitizer: 63054 byte(s) leaked in 36 allocation(s).
FAILED--non-zero wait status: 256
Failed 1 test out of 2466, 99.96% okay.
re/pat.t
I can see the exact same issue building v5.32.0
we can close this case, issues noticed here also exist on v5.32.0
this seems to be ok with blead@eb992c6f going to perform a bisect
> ( cd t; ./perl harness -v re/pat.t; cd - )
ok 1 - "abc\ndef\n" =~ /^abc/
ok 2 - "abc\ndef\n" !~ /^def/
ok 3 - "abc\ndef\n" =~ /^def/m
ok 4 - "abc\ndef\n" =~ /^xxx/
ok 5 - "abc\ndef\n" !~ /^abc/
ok 6 - "abc\ndef\n" =~ /def/
ok 7 - "abc\ndef\n" !~ /def/
ok 8 - "abc\ndef\n" !~ /.def/
ok 9 - "abc\ndef\n" =~ /.def/
ok 10 - "abc\ndef\n" =~ /\ndef/
ok 11 - "abc\ndef\n" !~ /\ndef/
ok 12 - $_ = '123'; /^([0-9][0-9]*)/
ok 13 - $_ = 'aaabbbccc'; /(a*b*)(c*)/
ok 14 - $_ = 'aaabbbccc'; /(a+b+c+)/
ok 15 - $_ = 'aaabbbccc'; /a+b?c+/
ok 16 - $_ = 'aaabccc'; /a+b?c+/
ok 17 - $_ = 'aaabccc'; /a*b?c*/
ok 18 - $_ = 'aaaccc'; /a*b?c*/
ok 19 - $_ = 'aaaccc'; /a*b+c*/
ok 20 - $_ = 'abcdef'; /bcd|xyz/
ok 21 - $_ = 'abcdef'; /xyz|bcd/
ok 22 - $_ = 'abcdef'; m|bc/*d|
ok 23 - $_ = 'abcdef'; /^$_$/
ok 24 - "ab\ncd\n" =~ /^cd/m
ok 25 - ?(.*)?
ok 26 - ?(.*)?
ok 27 - ?(.*)?
ok 28 - ?(.*)?
ok 29 - %XXX is empty
ok 30 - Test empty pattern
ok 31 - Test empty pattern
ok 32 - Test empty pattern
ok 33 - Test empty pattern
ok 34 - xy matches //
ok 35 - on x
ok 36 - xy matches //o (or not)
ok 37 - yz matches /y/
ok 38 - on y
ok 39 - yz matches /y/o (or not)
ok 40 - Check $`, $&, $'
ok 41 - Check $`, $&, $'
ok 42 - Check $`, $&, $'
ok 43 - Match braces
ok 44 - {N,M} quantifier
ok 45 - {N,M} quantifier
ok 46 - {N,M} quantifier
ok 47 - {N,M} quantifier
ok 48 - {N,M} quantifier
ok 49 - {N,M} quantifier
ok 50 - {N,M} quantifier
ok 51 - {N,M} quantifier
ok 52 - {N,M} quantifier
ok 53 - Test /g
ok 54 - Test /g
ok 55 - Test /g
ok 56 - Test /g
ok 57 - Test /o
ok 58 - | after $
ok 59 - $ inside ()
ok 60 - $ inside ()
ok 61 - Scalar /g
ok 62 - Scalar /g
ok 63 - Scalar /g
ok 64 - Scalar /gi
ok 65 - Scalar /gi
ok 66 - Scalar /gi
ok 67 - Scalar /g
ok 68 - Scalar /g
ok 69 - /g reset after assignment
ok 70 - /g, \G and pos
ok 71 - /g, \G and pos
ok 72 - (?{ })
ok 73 - (?{ })
ok 74 - Negative lookbehind
ok 75 - REG_INFTY tests
ok 76 - REG_INFTY tests
ok 77 - REG_INFTY tests
ok 78 - REG_INFTY tests
ok 79 - REG_INFTY tests
ok 80 - REG_INFTY tests
ok 81 - REG_INFTY tests
ok 82 - REG_INFTY tests
ok 83 - {1,} matches more times than REG_INFTY
ok 84 - Lookbehind limit
ok 85 - Long monster, length = 125
ok 86 - Long monster, length = 125
ok 87 - Long monster, length = 125
ok 88 - Long monster, length = 125
ok 89 - Long monster, length = 140
ok 90 - Long monster, length = 140
ok 91 - Long monster, length = 140
ok 92 - Long monster, length = 140
ok 93 - Long monster, length = 250
ok 94 - Long monster, length = 250
ok 95 - Long monster, length = 250
ok 96 - Long monster, length = 250
ok 97 - Long monster, length = 270
ok 98 - Long monster, length = 270
ok 99 - Long monster, length = 270
ok 100 - Long monster, length = 270
ok 101 - Long monster, length = 300000
ok 102 - Long monster, length = 300000
ok 103 - Long monster, length = 300000
ok 104 - Long monster, length = 300000
ok 105 - Long monster, length = 30
ok 106 - Long monster, length = 30
ok 107 - Long monster, length = 30
ok 108 - Long monster, length = 30
ok 109 - 20000 nodes, const-len 'ax13876y25677mcb'
ok 110 - 20000 nodes, var-len 'ax13876y25677mcb'
ok 111 - 20000 nodes, const-len 'ax13876y25677y21378y21378y21378kbc'
ok 112 - 20000 nodes, var-len 'ax13876y25677y21378y21378y21378kbc'
ok 113 - 20000 nodes, const-len 'ax13876y25677y21378y21378kbc'
ok 114 - 20000 nodes, var-len 'ax13876y25677y21378y21378kbc'
ok 115 - 20000 nodes, const-len 'ax13876y25677y21378y21378kcb'
ok 116 - 20000 nodes, var-len 'ax13876y25677y21378y21378kcb'
ok 117 - 20000 nodes, const-len 'ax13876y25677lbc'
ok 118 - 20000 nodes, var-len 'ax13876y25677lbc'
ok 119 - 20000 nodes, const-len 'ax13876y25677y21378zbc'
ok 120 - 20000 nodes, var-len 'ax13876y25677y21378zbc'
ok 121 - 20000 nodes, const-len 'ax13876y35677nbc'
ok 122 - 20000 nodes, var-len 'ax13876y35677nbc'
ok 123 - 20000 nodes, const-len 'ax13876y25677y21378obc'
ok 124 - 20000 nodes, var-len 'ax13876y25677y21378obc'
ok 125 - Complicated backtracking
ok 126 - Complicated backtracking
ok 127 - Recursion with (??{ })
ok 128 - Recursion with (??{ })
ok 129 - Recursion with (??{ })
ok 130 - "abc" =~ /^(??{"a"})b/
ok 131 - Stack may be bad
ok 132 - Eval-group not allowed at runtime
ok 133 - Eval-group not allowed at runtime 'Eval-group not allowed at runtime, use re 'eval' in regex m/(?{$blah = 45})/ at re/pat.t line 478.', '', '12'
ok 134 - Eval-group not allowed at runtime '', '1', '12'
ok 135 - Eval-group not allowed at runtime
ok 136 - Eval-group not allowed at runtime
ok 137 - Pos checks
ok 138 - Pos checks
ok 139 - Pos checks
ok 140 - Checking $^R
ok 141 - Checking $^R
ok 142 - Checking $^R
ok 143 - qr/\b\v$/i
ok 144 - qr/\b\v$/s
ok 145 - qr/\b\v$/m
ok 146 - qr/\b\v$/x
ok 147 - qr/\b\v$/xism
ok 148 - qr/\b\v$/
ok 149 - Verify no locale, no unicode_strings gives default modifier
ok 150 - Verify infix l modifier compiles
ok 151 - Verify infix u modifier compiles
ok 152 - Verify (?l) compiles
ok 153 - Verify (?u) compiles
ok 154 - Verify has l modifier when compiled under use locale
ok 155 - Verify has u modifier when compiled under unicode_strings
ok 156 - Verify retains d meaning when interpolated under locale
ok 157 - Verify retains l when interpolated under unicode_strings
ok 158 - Verify retains l when interpolated outside locale and unicode strings
ok 159 - Verify retains u when interpolated outside locale and unicode strings
ok 160 - Verify retains d meaning when interpolated under locale
ok 161 - Verify retains u when interpolated under locale
ok 162 - Look around
ok 163 - Look around
ok 164 - Look around
ok 165 - Look around
ok 166 - Empty clause
ok 167 - Empty clause
ok 168 - Empty clause
ok 169 - Empty clause
ok 170 - Empty clause
ok 171 - Empty clause
ok 172 - Prefixify
ok 173 - Prefixify
ok 174 - Prefixify
ok 175 - Prefixify
ok 176 - Capture a quote
ok 177 - (?{ $var } refers to package vars
ok 178 - (?{ $var } refers to package vars
ok 179
ok 180 - POSIX class [: :] must have valid name
ok 181
ok 182 - POSIX syntax [[= =]] is an error
ok 183
ok 184 - POSIX syntax [[. .]] is an error
ok 185 - Failed pattern returns empty list
ok 186 - Failed pattern returns empty list
ok 187 - Failed pattern returns empty list
ok 188 - Failed pattern returns empty list
ok 189 - @- and @+ and @{^CAPTURE} tests
ok 190 - @- and @+ and @{^CAPTURE} tests
ok 191 - @- and @+ and @{^CAPTURE} tests
ok 192 - @- and @+ and @{^CAPTURE} tests
ok 193 - @- and @+ and @{^CAPTURE} tests
ok 194 - @- and @+ and @{^CAPTURE} tests
ok 195 - @- and @+ and @{^CAPTURE} tests
ok 196 - @- and @+ and @{^CAPTURE} tests
ok 197 - @- and @+ and @{^CAPTURE} tests
ok 198 - @- and @+ and @{^CAPTURE} tests
ok 199 - @- and @+ and @{^CAPTURE} tests
ok 200 - @- and @+ and @{^CAPTURE} tests
ok 201 - @- and @+ and @{^CAPTURE} tests
ok 202 - @- and @+ and @{^CAPTURE} tests
ok 203 - @- and @+ and @{^CAPTURE} tests
ok 204 - @- and @+ and @{^CAPTURE} tests
ok 205 - @- and @+ and @{^CAPTURE} tests
ok 206 - @- and @+ and @{^CAPTURE} tests
ok 207 - @- and @+ and @{^CAPTURE} tests
ok 208 - @- and @+ and @{^CAPTURE} tests
ok 209 - @- and @+ and @{^CAPTURE} tests
ok 210 - @- and @+ and @{^CAPTURE} tests
ok 211 - @- and @+ and @{^CAPTURE} tests
ok 212 - @- and @+ and @{^CAPTURE} tests
ok 213 - @- and @+ and @{^CAPTURE} tests
ok 214 - @- and @+ and @{^CAPTURE} tests
ok 215 - @- and @+ and @{^CAPTURE} tests
ok 216 - @- and @+ and @{^CAPTURE} tests
ok 217 - @- and @+ and @{^CAPTURE} tests
ok 218 - @- and @+ and @{^CAPTURE} tests
ok 219 - @- and @+ and @{^CAPTURE} tests
ok 220 - @- and @+ and @{^CAPTURE} tests
ok 221 - @- and @+ and @{^CAPTURE} tests
ok 222 - @- and @+ and @{^CAPTURE} tests
ok 223 - @- and @+ and @{^CAPTURE} tests
ok 224 - @- and @+ and @{^CAPTURE} tests
ok 225 - @- and @+ and @{^CAPTURE} tests
ok 226 - @- and @+ and @{^CAPTURE} tests
ok 227 - @- and @+ and @{^CAPTURE} tests
ok 228 - @- and @+ and @{^CAPTURE} tests
ok 229 - @- and @+ and @{^CAPTURE} tests[c e]
ok 230 - @- and @+ and @{^CAPTURE} tests
ok 231 - @- and @+ and @{^CAPTURE} tests
ok 232 - @- and @+ and @{^CAPTURE} tests
ok 233 - @- and @+ and @{^CAPTURE} tests
ok 234 - @- and @+ and @{^CAPTURE} tests
ok 235 - @- and @+ and @{^CAPTURE} tests
ok 236 - @- and @+ and @{^CAPTURE} tests
ok 237 - @- and @+ and @{^CAPTURE} tests
ok 238 - @- and @+ and @{^CAPTURE} tests
ok 239 - @- and @+ and @{^CAPTURE} tests
ok 240 - @- and @+ and @{^CAPTURE} tests
ok 241 - @- and @+ and @{^CAPTURE} tests
ok 242 - @- and @+ and @{^CAPTURE} tests
ok 243 - @- and @+ and @{^CAPTURE} tests
ok 244 - @- and @+ and @{^CAPTURE} tests
ok 245 - @- and @+ and @{^CAPTURE} tests
ok 246 - @- and @+ and @{^CAPTURE} tests
ok 247 - values do not stick to @- elements
ok 248 - values do not stick to @+ elements
ok 249 - values do not stick to @{^CAPTURE} elements
ok 250
ok 251 - $^N, @- and @+ are read-only
ok 252
ok 253 - $^N, @- and @+ are read-only
ok 254
ok 255 - $^N, @- and @+ are read-only
ok 256
ok 257 - $^N, @- and @+ are read-only
ok 258
ok 259 - $^N, @- and @+ are read-only
ok 260
ok 261 - $^N, @- and @+ are read-only
ok 262 - \G testing
ok 263 - \G testing
ok 264 - \G testing
ok 265 - \G testing
ok 266 - \G testing
ok 267 - \G testing
ok 268 - \G testing
ok 269 - \G and intuit and anchoring
ok 270 - \G and intuit and anchoring
ok 271 - \G and intuit and anchoring
ok 272 - \G and intuit and anchoring
ok 273 - \G and intuit and anchoring
ok 274 - \G and intuit and anchoring
ok 275 - \G and intuit and anchoring
ok 276 - \G and intuit and anchoring
ok 277 - \G looping
ok 278 - pos inside (?{ })
ok 279 - pos inside (?{ })
ok 280 - pos inside (?{ })
ok 281 - pos inside (?{ })
ok 282 - pos inside (?{ })
ok 283 - pos inside (?{ })
ok 284 - pos inside (?{ })
ok 285 - pos inside (?{ })
ok 286 - pos inside (?{ })
ok 287 - pos inside (?{ })
ok 288 - pos inside (?{ })
ok 289 - pos inside (?{ })
ok 290 - pos inside (?{ })
ok 291 - pos inside (?{ })
ok 292 - pos inside (?{ })
ok 293 - pos inside (?{ })
ok 294 - pos inside (?{ })
ok 295 - pos inside (?{ })
ok 296 - pos inside (?{ })
ok 297 - pos inside (?{ })
ok 298 - pos inside (?{ })
ok 299 - pos inside (?{ })
ok 300 - pos inside (?{ })
ok 301 - pos inside (?{ })
ok 302 - \G anchor checks
ok 303 - \G anchor checks
ok 304 - \G anchor checks
ok 305 - \G anchor checks
ok 306 - \G anchor checks
ok 307 - \G anchor checks
ok 308 - \G anchor checks
ok 309 - \G anchor checks
ok 310 - \G anchor checks
ok 311 - \G anchor checks
ok 312 - \G anchor checks
ok 313 - \G anchor checks
ok 314 - \G anchor checks
ok 315 - basic \G floating checks: a+\G
ok 316 - basic \G floating checks: ab
ok 317 - basic \G floating checks: b+\G
ok 318 - basic \G floating checks: cc
ok 319 - basic \G floating checks: d+\G
ok 320 - basic \G floating checks: de
ok 321 - basic \G floating checks: \Gef
ok 322 - basic \G floating checks: (?a+\G)
ok 323 - basic \G floating checks: aa
ok 324 - basic \G floating checks: a(?=a+\G)
ok 325 - basic \G floating checks: ab
ok 326 - 0 match in alternation
ok 327 - Match against temporaries (created via pp_helem()) is safe
ok 328 - Match against temporaries (created via pp_helem()) is safe
ok 329 - package $i inside (?{ }), saved substrings and changing $_
ok 330 - package $i inside (?{ }), saved substrings and changing $_
ok 331 - lexical $i inside (?{ }), saved substrings and changing $_
ok 332 - lexical $i inside (?{ }), saved substrings and changing $_
ok 333 - Brackets
ok 334 - Brackets
ok 335 - Brackets
ok 336 - Brackets
ok 337 - Brackets
ok 338 - Brackets
ok 339 - $_ = "a-a\nxbb"; m/^-.*bb/mg
ok 340 - \G anchor checks
ok 341 - $_ = "xA\n" x 500; /^\s*A/m"
ok 342 - \b is not special
ok 343 - \S, [\S], \s, [\s]
ok 344 - \S, [\S], \s, [\s]
ok 345 - \S, [\S], \s, [\s]
ok 346 - \S, [\S], \s, [\s]
ok 347 - Verify ' ' !~ /[^\S ]/
ok 348 - Verify '\t =~ /[^\S ]/
ok 349 - Verify non-utf8-NBSP !~ /[^\S ]/
ok 350 - Verify utf8-NBSP =~ /[^\S ]/
ok 351 - Verify non-utf8-inverted-bang !~ /[^\S ]/
ok 352 - Verify utf8-inverted-bang !~ /[^\S ]/
ok 353 - \D, [\D], \d, [\d]
ok 354 - \D, [\D], \d, [\d]
ok 355 - \D, [\D], \d, [\d]
ok 356 - \D, [\D], \d, [\d]
ok 357 - \W, [\W], \w, [\w]
ok 358 - \W, [\W], \w, [\w]
ok 359 - \W, [\W], \w, [\w]
ok 360 - \W, [\W], \w, [\w]
ok 361 - Backtrack optimization
ok 362 - Backtrack optimization
ok 363 - Backtrack optimization
ok 364 - Backtrack optimization
ok 365 - Backtrack optimization
ok 366 - Backtrack optimization
ok 367 - Backtrack optimization
ok 368 - Backtrack optimization
ok 369 - Backtrack optimization
ok 370 - Backtrack optimization
ok 371 - Scalar ref stringification
ok 372 - Ref ref stringification
ok 373 - Array ref stringification
ok 374 - Hash ref stringification
ok 375 - Object stringification
ok 376 - Test result of match used as match
ok 377 - Test result of match used as match
ok 378 - Test result of match used as match
ok 379 - Test result of match used as match
ok 380 - "1" is not \s
ok 381 - "1" is not \s (did not warn)
ok 382 - \s, [[:space:]] and [[:blank:]]
ok 383 - \s, [[:space:]] and [[:blank:]]
ok 384 - \s, [[:space:]] and [[:blank:]]
ok 385 - implicit MBOL check string disable does not break things length=0
ok 386 - implicit MBOL check string disable does not break things length=1
ok 387 - implicit MBOL check string disable does not break things length=2
ok 388 - implicit MBOL check string disable does not break things length=3
ok 389 - implicit MBOL check string disable does not break things length=4
ok 390 - implicit MBOL check string disable does not break things length=5
ok 391 - implicit MBOL check string disable does not break things length=6
ok 392 - implicit MBOL check string disable does not break things length=7
ok 393 - implicit MBOL check string disable does not break things length=8
ok 394 - implicit MBOL check string disable does not break things length=9
ok 395 - implicit MBOL check string disable does not break things length=10
ok 396 - implicit MBOL check string disable does not break things length=11
ok 397 - implicit MBOL check string disable does not break things length=12
ok 398 - implicit MBOL check string disable does not break things length=13
ok 399 - implicit MBOL check string disable does not break things length=14
ok 400 - implicit MBOL check string disable does not break things length=15
ok 401 - implicit MBOL check string disable does not break things length=16
ok 402 - implicit MBOL check string disable does not break things length=17
ok 403 - implicit MBOL check string disable does not break things length=18
ok 404 - implicit MBOL check string disable does not break things length=19
ok 405 - implicit MBOL check string disable does not break things length=20
ok 406 - implicit MBOL check string disable does not break things length=21
ok 407 - implicit MBOL check string disable does not break things length=22
ok 408 - implicit MBOL check string disable does not break things length=23
ok 409 - implicit MBOL check string disable does not break things length=24
ok 410 - implicit MBOL check string disable does not break things length=25
ok 411 - implicit MBOL check string disable does not break things length=26
ok 412 - implicit MBOL check string disable does not break things length=27
ok 413 - implicit MBOL check string disable does not break things length=28
ok 414 - implicit MBOL check string disable does not break things length=29
ok 415 - implicit MBOL check string disable does not break things length=30
ok 416 - implicit MBOL check string disable does not break things length=31
ok 417 - implicit MBOL check string disable does not break things length=32
ok 418 - implicit MBOL check string disable does not break things length=33
ok 419 - implicit MBOL check string disable does not break things length=34
ok 420 - implicit MBOL check string disable does not break things length=35
ok 421 - implicit MBOL check string disable does not break things length=36
ok 422 - implicit MBOL check string disable does not break things length=37
ok 423 - implicit MBOL check string disable does not break things length=38
ok 424 - implicit MBOL check string disable does not break things length=39
ok 425 - implicit MBOL check string disable does not break things length=40
ok 426 - implicit MBOL check string disable does not break things length=41
ok 427 - implicit MBOL check string disable does not break things length=42
ok 428 - implicit MBOL check string disable does not break things length=43
ok 429 - implicit MBOL check string disable does not break things length=44
ok 430 - implicit MBOL check string disable does not break things length=45
ok 431 - implicit MBOL check string disable does not break things length=46
ok 432 - implicit MBOL check string disable does not break things length=47
ok 433 - implicit MBOL check string disable does not break things length=48
ok 434 - implicit MBOL check string disable does not break things length=49
ok 435 - implicit MBOL check string disable does not break things length=50
ok 436 - got a unicode string - rt75680
ok 437 - unicode string against /.*?[x]$/ - rt75680
ok 438 - unicode string against /.*?\p{space}$/i - rt75680
ok 439 - unicode string against /.*?[xyz]$/ - rt75680
ok 440 - unicode string against big pattern - rt75680
ok 441 - got a latin string - rt75680
ok 442 - latin string against /.*?[x]$/ - rt75680
ok 443 - latin string against /.*?\p{space}$/i - rt75680
ok 444 - latin string against /.*?[xyz]$/ - rt75680
ok 445 - latin string against big pattern - rt75680
ok 446 - \p property after empty * match
ok 447 - \p property after empty * match
ok 448 - \p property after empty * match
ok 449 - \p property after empty * match
ok 450 - \p property after empty * match
ok 451 - \p property after empty * match
ok 452 - \xc0 =~ (?^:((�)+,?)); Neither pattern nor target utf8
ok 453 - \xc0 =~ /(?^:((�)+,?))/i; Neither pattern nor target utf8
ok 454 - \xc0 =~ (?^:((�)+,?)); pattern utf8, target not
ok 455 - \xc0 =~ /(?^:((�)+,?))/i; pattern utf8, target not
ok 456 - \xc0 =~ (?^:((�)+,?)); target utf8, pattern not
ok 457 - \xc0 =~ /(?^:((�)+,?))/i; target utf8, pattern not
ok 458 - \xc0 =~ (?^:((�)+,?)); Both target and pattern utf8
ok 459 - \xc0 =~ /(?^:((�)+,?))/i; Both target and pattern utf8
ok 460 - Under unicode_strings: "\xc0" =~ /\w/
ok 461 - Under unicode_strings: "\xc0" !~ /(?d:\w)/
ok 462 - Empty pattern qr// stringifies to (?^:) with unicode flag enabled - Bug \#80212
ok 463 - Empty pattern qr// stringifies to (?^:) with unicode flag disabled - Bug \#80212
not ok 464 # TODO [perl #38133]
ok 465 - RT \#3516 A
ok 466 - RT \#3516 B
ok 467 - RT \#3516 C
ok 468 - RT \#84294: Pattern should match
ok 469 - RT \#84294: check that "ab" =~ /((\w+)(?{ push @got, $2 })){2}/ leaves @got in the correct state
ok 470 - Non-Unicode doesn't match \p{AHEX=True}
ok 471 - Non-Unicode matches \p{AHEX=False}
ok 472 - Non-Unicode matches \P{AHEX=True}
ok 473 - Non-Unicode matches \P{AHEX=FALSE}
ok 474 - 'a' is legal IDStart
ok 475 - '_' is legal IDStart
ok 476 - U+00DF is legal IDStart
ok 477 - U+2115' is legal IDStart
ok 478 - 'U+0025 not legal IDFirst'
ok 479 - 'U+00D7 not legal IDFirst'
ok 480 - 'U+2118 not legal IDFirst'
ok 481 - 'U+212E not legal IDFirst'
ok 482 - /i: utf8 pattern, non-utf8 string, latin1-char preceding matching char in string
ok 483 - no crash for @a =~ // warning
ok 484 - /$o$qr/ passes qr ref to cat overload meth
ok 485 - test that ANCH_MBOL works properly. We should get 2 from $count++ while "\n"=~/.*/g
ok 486 - while "\n"=~/.*/g and while "\n"=~/[^\n]*/g should behave the same
ok 487 - while "\n"=~/^.*/mg should match only once
ok 488 - (?i: shouldn't lose the passed in /u
ok 489 - (?i: shouldn't lose the passed in /a
ok 490 - (?i: shouldn't lose the passed in /aa
ok 491 - (?i: shouldn't lose the passed in /aa
ok 492 - re-compile check is UTF8-aware
ok 493 - re-compile check is UTF8-aware
ok 494 - Qr0
ok 495 - Qr0 bare
ok 496 - Qr1
ok 497 - Qr1 bare
ok 498 - Qr2
ok 499 - Qr2 bare
ok 500 - Qr2 - with use re eval
ok 501 - Qr2 bare - with use re eval
ok 502 - Qr3
ok 503 - Qr3 bare
ok 504 - Qr3 - with use re eval
ok 505 - Qr3 bare - with use re eval
ok 506 - Qr_indirect
ok 507 - Qr_indirect bare
ok 508 - [] to EXACTish optimization
ok 509 - (?iu), utf8=0, locale=C, char=46
ok 510 - extra a, (?iu), utf8=0, locale=C, char=46
ok 511 # skip test skipped for non-C locales
ok 512 # skip test skipped for non-C locales
ok 513 - (?iu), utf8=1, locale=C, char=46
ok 514 - extra a, (?iu), utf8=1, locale=C, char=46
ok 515 # skip test skipped for non-C locales
ok 516 # skip test skipped for non-C locales
ok 517 - (?id), utf8=0, locale=C, char=46
ok 518 - extra a, (?id), utf8=0, locale=C, char=46
ok 519 # skip test skipped for non-C locales
ok 520 # skip test skipped for non-C locales
ok 521 - (?id), utf8=1, locale=C, char=46
ok 522 - extra a, (?id), utf8=1, locale=C, char=46
ok 523 # skip test skipped for non-C locales
ok 524 # skip test skipped for non-C locales
ok 525 - (?il), utf8=0, locale=C, char=46
ok 526 - extra a, (?il), utf8=0, locale=C, char=46
ok 527 - (?il), utf8=0, locale=C.UTF-8, char=46
ok 528 - extra a, (?il), utf8=0, locale=C.UTF-8, char=46
ok 529 - (?il), utf8=1, locale=C, char=46
ok 530 - extra a, (?il), utf8=1, locale=C, char=46
ok 531 - (?il), utf8=1, locale=C.UTF-8, char=46
ok 532 - extra a, (?il), utf8=1, locale=C.UTF-8, char=46
ok 533 - (?iaa), utf8=0, locale=C, char=46
ok 534 - extra a, (?iaa), utf8=0, locale=C, char=46
ok 535 # skip test skipped for non-C locales
ok 536 # skip test skipped for non-C locales
ok 537 - (?iaa), utf8=1, locale=C, char=46
ok 538 - extra a, (?iaa), utf8=1, locale=C, char=46
ok 539 # skip test skipped for non-C locales
ok 540 # skip test skipped for non-C locales
ok 541 - (?iu), utf8=0, locale=C, char=df
ok 542 - extra a, (?iu), utf8=0, locale=C, char=df
ok 543 # skip test skipped for non-C locales
ok 544 # skip test skipped for non-C locales
ok 545 - (?iu), utf8=1, locale=C, char=df
ok 546 - extra a, (?iu), utf8=1, locale=C, char=df
ok 547 # skip test skipped for non-C locales
ok 548 # skip test skipped for non-C locales
ok 549 - (?id), utf8=0, locale=C, char=df
ok 550 - extra a, (?id), utf8=0, locale=C, char=df
ok 551 # skip test skipped for non-C locales
ok 552 # skip test skipped for non-C locales
ok 553 - (?id), utf8=1, locale=C, char=df
ok 554 - extra a, (?id), utf8=1, locale=C, char=df
ok 555 # skip test skipped for non-C locales
ok 556 # skip test skipped for non-C locales
ok 557 - (?il), utf8=0, locale=C, char=df
ok 558 - extra a, (?il), utf8=0, locale=C, char=df
ok 559 - (?il), utf8=0, locale=C.UTF-8, char=df
ok 560 - extra a, (?il), utf8=0, locale=C.UTF-8, char=df
ok 561 - (?il), utf8=1, locale=C, char=df
ok 562 - extra a, (?il), utf8=1, locale=C, char=df
ok 563 - (?il), utf8=1, locale=C.UTF-8, char=df
ok 564 - extra a, (?il), utf8=1, locale=C.UTF-8, char=df
ok 565 - (?iaa), utf8=0, locale=C, char=df
ok 566 - extra a, (?iaa), utf8=0, locale=C, char=df
ok 567 # skip test skipped for non-C locales
ok 568 # skip test skipped for non-C locales
ok 569 - (?iaa), utf8=1, locale=C, char=df
ok 570 - extra a, (?iaa), utf8=1, locale=C, char=df
ok 571 # skip test skipped for non-C locales
ok 572 # skip test skipped for non-C locales
ok 573 - (?iu), utf8=0, locale=C, char=1f0
ok 574 - extra a, (?iu), utf8=0, locale=C, char=1f0
ok 575 # skip test skipped for non-C locales
ok 576 # skip test skipped for non-C locales
ok 577 - (?iu), utf8=1, locale=C, char=1f0
ok 578 - extra a, (?iu), utf8=1, locale=C, char=1f0
ok 579 # skip test skipped for non-C locales
ok 580 # skip test skipped for non-C locales
ok 581 - (?id), utf8=0, locale=C, char=1f0
ok 582 - extra a, (?id), utf8=0, locale=C, char=1f0
ok 583 # skip test skipped for non-C locales
ok 584 # skip test skipped for non-C locales
ok 585 - (?id), utf8=1, locale=C, char=1f0
ok 586 - extra a, (?id), utf8=1, locale=C, char=1f0
ok 587 # skip test skipped for non-C locales
ok 588 # skip test skipped for non-C locales
ok 589 - (?il), utf8=0, locale=C, char=1f0
ok 590 - extra a, (?il), utf8=0, locale=C, char=1f0
ok 591 - (?il), utf8=0, locale=C.UTF-8, char=1f0
ok 592 - extra a, (?il), utf8=0, locale=C.UTF-8, char=1f0
ok 593 - (?il), utf8=1, locale=C, char=1f0
ok 594 - extra a, (?il), utf8=1, locale=C, char=1f0
ok 595 - (?il), utf8=1, locale=C.UTF-8, char=1f0
ok 596 - extra a, (?il), utf8=1, locale=C.UTF-8, char=1f0
ok 597 - (?iaa), utf8=0, locale=C, char=1f0
ok 598 - extra a, (?iaa), utf8=0, locale=C, char=1f0
ok 599 # skip test skipped for non-C locales
ok 600 # skip test skipped for non-C locales
ok 601 - (?iaa), utf8=1, locale=C, char=1f0
ok 602 - extra a, (?iaa), utf8=1, locale=C, char=1f0
ok 603 # skip test skipped for non-C locales
ok 604 # skip test skipped for non-C locales
ok 605 - (?iu), utf8=0, locale=C, char=fb00
ok 606 - extra a, (?iu), utf8=0, locale=C, char=fb00
ok 607 # skip test skipped for non-C locales
ok 608 # skip test skipped for non-C locales
ok 609 - (?iu), utf8=1, locale=C, char=fb00
ok 610 - extra a, (?iu), utf8=1, locale=C, char=fb00
ok 611 # skip test skipped for non-C locales
ok 612 # skip test skipped for non-C locales
ok 613 - (?id), utf8=0, locale=C, char=fb00
ok 614 - extra a, (?id), utf8=0, locale=C, char=fb00
ok 615 # skip test skipped for non-C locales
ok 616 # skip test skipped for non-C locales
ok 617 - (?id), utf8=1, locale=C, char=fb00
ok 618 - extra a, (?id), utf8=1, locale=C, char=fb00
ok 619 # skip test skipped for non-C locales
ok 620 # skip test skipped for non-C locales
ok 621 - (?il), utf8=0, locale=C, char=fb00
ok 622 - extra a, (?il), utf8=0, locale=C, char=fb00
ok 623 - (?il), utf8=0, locale=C.UTF-8, char=fb00
ok 624 - extra a, (?il), utf8=0, locale=C.UTF-8, char=fb00
ok 625 - (?il), utf8=1, locale=C, char=fb00
ok 626 - extra a, (?il), utf8=1, locale=C, char=fb00
ok 627 - (?il), utf8=1, locale=C.UTF-8, char=fb00
ok 628 - extra a, (?il), utf8=1, locale=C.UTF-8, char=fb00
ok 629 - (?iaa), utf8=0, locale=C, char=fb00
ok 630 - extra a, (?iaa), utf8=0, locale=C, char=fb00
ok 631 # skip test skipped for non-C locales
ok 632 # skip test skipped for non-C locales
ok 633 - (?iaa), utf8=1, locale=C, char=fb00
ok 634 - extra a, (?iaa), utf8=1, locale=C, char=fb00
ok 635 # skip test skipped for non-C locales
ok 636 # skip test skipped for non-C locales
ok 637 - Check that LEXACT nodes are generated
ok 638 - Check that LEXACT nodes match
ok 639 - Previous test preceded by an 'a'
ok 640 - Check that an LEXACT_ONLY node is generated with a \x{100}
ok 641 - Check that LEXACT_REQ8 nodes match
ok 642 - ":" =~ /^:?$/
ok 643 - my $p = ":"; utf8::upgrade($p); ":" =~ /^$p?$/
ok 644 - my $c = ":"; utf8::upgrade($c); "$c" =~ /^:?$/
ok 645 - my $c = ":"; utf8::upgrade($c); my $p = ":"; utf8::upgrade($p); "$c" =~ /^$p?$/
ok 646 - "�" =~ /^�?$/
ok 647 - my $p = "�"; utf8::upgrade($p); "�" =~ /^$p?$/
ok 648 - my $c = "�"; utf8::upgrade($c); "$c" =~ /^�?$/
ok 649 - my $c = "�"; utf8::upgrade($c); my $p = "�"; utf8::upgrade($p); "$c" =~ /^$p?$/
ok 650 - "\x{2010}" =~ /^\x{2010}?$/
ok 651 - my $p = "\x{2010}"; utf8::upgrade($p); "\x{2010}" =~ /^$p?$/
ok 652 - my $c = "\x{2010}"; utf8::upgrade($c); "$c" =~ /^\x{2010}?$/
ok 653 - my $c = "\x{2010}"; utf8::upgrade($c); my $p = "\x{2010}"; utf8::upgrade($p); "$c" =~ /^$p?$/
ok 654 - \#116148
ok 655 - no warnings when interpolating mixed up-/downgraded strings in pattern
ok 656 - mixed up-/downgraded pattern matches downgraded string
ok 657 - mixed up-/downgraded pattern matches upgraded string
ok 658 - \1 works with 1 buffers 'aa'=~/...\1/
ok 659 - \1 works with 1 buffers 'aba'=~/...b\1/
ok 660 - \2 works with 2 buffers 'aa'=~/...\2/
ok 661 - \2 works with 2 buffers 'aba'=~/...b\2/
ok 662 - \3 works with 3 buffers 'aa'=~/...\3/
ok 663 - \3 works with 3 buffers 'aba'=~/...b\3/
ok 664 - \4 works with 4 buffers 'aa'=~/...\4/
ok 665 - \4 works with 4 buffers 'aba'=~/...b\4/
ok 666 - \5 works with 5 buffers 'aa'=~/...\5/
ok 667 - \5 works with 5 buffers 'aba'=~/...b\5/
ok 668 - \6 works with 6 buffers 'aa'=~/...\6/
ok 669 - \6 works with 6 buffers 'aba'=~/...b\6/
ok 670 - \7 works with 7 buffers 'aa'=~/...\7/
ok 671 - \7 works with 7 buffers 'aba'=~/...b\7/
ok 672 - \8 works with 8 buffers 'aa'=~/...\8/
ok 673 - \8 works with 8 buffers 'aba'=~/...b\8/
ok 674 - \9 works with 9 buffers 'aa'=~/...\9/
ok 675 - \9 works with 9 buffers 'aba'=~/...b\9/
ok 676 - \10 works with 10 buffers 'aa'=~/...\10/
ok 677 - \10 works with 10 buffers 'aba'=~/...b\10/
ok 678 - \11 works with 11 buffers 'aa'=~/...\11/
ok 679 - \11 works with 11 buffers 'aba'=~/...b\11/
ok 680 - \12 works with 12 buffers 'aa'=~/...\12/
ok 681 - \12 works with 12 buffers 'aba'=~/...b\12/
ok 682 - \13 works with 13 buffers 'aa'=~/...\13/
ok 683 - \13 works with 13 buffers 'aba'=~/...b\13/
ok 684 - \14 works with 14 buffers 'aa'=~/...\14/
ok 685 - \14 works with 14 buffers 'aba'=~/...b\14/
ok 686 - \15 works with 15 buffers 'aa'=~/...\15/
ok 687 - \15 works with 15 buffers 'aba'=~/...b\15/
ok 688 - \16 works with 16 buffers 'aa'=~/...\16/
ok 689 - \16 works with 16 buffers 'aba'=~/...b\16/
ok 690 - \17 works with 17 buffers 'aa'=~/...\17/
ok 691 - \17 works with 17 buffers 'aba'=~/...b\17/
ok 692 - \18 works with 18 buffers 'aa'=~/...\18/
ok 693 - \18 works with 18 buffers 'aba'=~/...b\18/
ok 694 - \19 works with 19 buffers 'aa'=~/...\19/
ok 695 - \19 works with 19 buffers 'aba'=~/...b\19/
ok 696 - \20 works with 20 buffers 'aa'=~/...\20/
ok 697 - \20 works with 20 buffers 'aba'=~/...b\20/
ok 698 - skipping 21 buffers under ASan aa
ok 699 - skipping 21 buffers under ASan aba
ok 700 - skipping 22 buffers under ASan aa
ok 701 - skipping 22 buffers under ASan aba
ok 702 - skipping 23 buffers under ASan aa
ok 703 - skipping 23 buffers under ASan aba
ok 704 - skipping 24 buffers under ASan aa
ok 705 - skipping 24 buffers under ASan aba
ok 706 - skipping 25 buffers under ASan aa
ok 707 - skipping 25 buffers under ASan aba
ok 708 - skipping 26 buffers under ASan aa
ok 709 - skipping 26 buffers under ASan aba
ok 710 - skipping 27 buffers under ASan aa
ok 711 - skipping 27 buffers under ASan aba
ok 712 - skipping 28 buffers under ASan aa
ok 713 - skipping 28 buffers under ASan aba
ok 714 - skipping 29 buffers under ASan aa
ok 715 - skipping 29 buffers under ASan aba
ok 716 - skipping 30 buffers under ASan aa
ok 717 - skipping 30 buffers under ASan aba
ok 718 - skipping 31 buffers under ASan aa
ok 719 - skipping 31 buffers under ASan aba
ok 720 - skipping 32 buffers under ASan aa
ok 721 - skipping 32 buffers under ASan aba
ok 722 - skipping 33 buffers under ASan aa
ok 723 - skipping 33 buffers under ASan aba
ok 724 - skipping 34 buffers under ASan aa
ok 725 - skipping 34 buffers under ASan aba
ok 726 - skipping 35 buffers under ASan aa
ok 727 - skipping 35 buffers under ASan aba
ok 728 - skipping 36 buffers under ASan aa
ok 729 - skipping 36 buffers under ASan aba
ok 730 - skipping 37 buffers under ASan aa
ok 731 - skipping 37 buffers under ASan aba
ok 732 - skipping 38 buffers under ASan aa
ok 733 - skipping 38 buffers under ASan aba
ok 734 - skipping 39 buffers under ASan aa
ok 735 - skipping 39 buffers under ASan aba
ok 736 - skipping 40 buffers under ASan aa
ok 737 - skipping 40 buffers under ASan aba
ok 738 - skipping 41 buffers under ASan aa
ok 739 - skipping 41 buffers under ASan aba
ok 740 - skipping 42 buffers under ASan aa
ok 741 - skipping 42 buffers under ASan aba
ok 742 - skipping 43 buffers under ASan aa
ok 743 - skipping 43 buffers under ASan aba
ok 744 - skipping 44 buffers under ASan aa
ok 745 - skipping 44 buffers under ASan aba
ok 746 - skipping 45 buffers under ASan aa
ok 747 - skipping 45 buffers under ASan aba
ok 748 - skipping 46 buffers under ASan aa
ok 749 - skipping 46 buffers under ASan aba
ok 750 - skipping 47 buffers under ASan aa
ok 751 - skipping 47 buffers under ASan aba
ok 752 - skipping 48 buffers under ASan aa
ok 753 - skipping 48 buffers under ASan aba
ok 754 - skipping 49 buffers under ASan aa
ok 755 - skipping 49 buffers under ASan aba
ok 756 - skipping 50 buffers under ASan aa
ok 757 - skipping 50 buffers under ASan aba
ok 758 - skipping 51 buffers under ASan aa
ok 759 - skipping 51 buffers under ASan aba
ok 760 - skipping 52 buffers under ASan aa
ok 761 - skipping 52 buffers under ASan aba
ok 762 - skipping 53 buffers under ASan aa
ok 763 - skipping 53 buffers under ASan aba
ok 764 - skipping 54 buffers under ASan aa
ok 765 - skipping 54 buffers under ASan aba
ok 766 - skipping 55 buffers under ASan aa
ok 767 - skipping 55 buffers under ASan aba
ok 768 - skipping 56 buffers under ASan aa
ok 769 - skipping 56 buffers under ASan aba
ok 770 - skipping 57 buffers under ASan aa
ok 771 - skipping 57 buffers under ASan aba
ok 772 - skipping 58 buffers under ASan aa
ok 773 - skipping 58 buffers under ASan aba
ok 774 - skipping 59 buffers under ASan aa
ok 775 - skipping 59 buffers under ASan aba
ok 776 - skipping 60 buffers under ASan aa
ok 777 - skipping 60 buffers under ASan aba
ok 778 - skipping 61 buffers under ASan aa
ok 779 - skipping 61 buffers under ASan aba
ok 780 - skipping 62 buffers under ASan aa
ok 781 - skipping 62 buffers under ASan aba
ok 782 - skipping 63 buffers under ASan aa
ok 783 - skipping 63 buffers under ASan aba
ok 784 - skipping 64 buffers under ASan aa
ok 785 - skipping 64 buffers under ASan aba
ok 786 - skipping 65 buffers under ASan aa
ok 787 - skipping 65 buffers under ASan aba
ok 788 - skipping 66 buffers under ASan aa
ok 789 - skipping 66 buffers under ASan aba
ok 790 - skipping 67 buffers under ASan aa
ok 791 - skipping 67 buffers under ASan aba
ok 792 - skipping 68 buffers under ASan aa
ok 793 - skipping 68 buffers under ASan aba
ok 794 - skipping 69 buffers under ASan aa
ok 795 - skipping 69 buffers under ASan aba
ok 796 - skipping 70 buffers under ASan aa
ok 797 - skipping 70 buffers under ASan aba
ok 798 - skipping 71 buffers under ASan aa
ok 799 - skipping 71 buffers under ASan aba
ok 800 - skipping 72 buffers under ASan aa
ok 801 - skipping 72 buffers under ASan aba
ok 802 - skipping 73 buffers under ASan aa
ok 803 - skipping 73 buffers under ASan aba
ok 804 - skipping 74 buffers under ASan aa
ok 805 - skipping 74 buffers under ASan aba
ok 806 - skipping 75 buffers under ASan aa
ok 807 - skipping 75 buffers under ASan aba
ok 808 - skipping 76 buffers under ASan aa
ok 809 - skipping 76 buffers under ASan aba
ok 810 - skipping 77 buffers under ASan aa
ok 811 - skipping 77 buffers under ASan aba
ok 812 - skipping 78 buffers under ASan aa
ok 813 - skipping 78 buffers under ASan aba
ok 814 - skipping 79 buffers under ASan aa
ok 815 - skipping 79 buffers under ASan aba
ok 816 - skipping 80 buffers under ASan aa
ok 817 - skipping 80 buffers under ASan aba
ok 818 - skipping 81 buffers under ASan aa
ok 819 - skipping 81 buffers under ASan aba
ok 820 - skipping 82 buffers under ASan aa
ok 821 - skipping 82 buffers under ASan aba
ok 822 - skipping 83 buffers under ASan aa
ok 823 - skipping 83 buffers under ASan aba
ok 824 - skipping 84 buffers under ASan aa
ok 825 - skipping 84 buffers under ASan aba
ok 826 - skipping 85 buffers under ASan aa
ok 827 - skipping 85 buffers under ASan aba
ok 828 - skipping 86 buffers under ASan aa
ok 829 - skipping 86 buffers under ASan aba
ok 830 - skipping 87 buffers under ASan aa
ok 831 - skipping 87 buffers under ASan aba
ok 832 - skipping 88 buffers under ASan aa
ok 833 - skipping 88 buffers under ASan aba
ok 834 - skipping 89 buffers under ASan aa
ok 835 - skipping 89 buffers under ASan aba
ok 836 - skipping 90 buffers under ASan aa
ok 837 - skipping 90 buffers under ASan aba
ok 838 - skipping 91 buffers under ASan aa
ok 839 - skipping 91 buffers under ASan aba
ok 840 - skipping 92 buffers under ASan aa
ok 841 - skipping 92 buffers under ASan aba
ok 842 - skipping 93 buffers under ASan aa
ok 843 - skipping 93 buffers under ASan aba
ok 844 - skipping 94 buffers under ASan aa
ok 845 - skipping 94 buffers under ASan aba
ok 846 - skipping 95 buffers under ASan aa
ok 847 - skipping 95 buffers under ASan aba
ok 848 - skipping 96 buffers under ASan aa
ok 849 - skipping 96 buffers under ASan aba
ok 850 - skipping 97 buffers under ASan aa
ok 851 - skipping 97 buffers under ASan aba
ok 852 - skipping 98 buffers under ASan aa
ok 853 - skipping 98 buffers under ASan aba
ok 854 - skipping 99 buffers under ASan aa
ok 855 - skipping 99 buffers under ASan aba
ok 856 - skipping 100 buffers under ASan aa
ok 857 - skipping 100 buffers under ASan aba
ok 858 - COWable match
ok 859 - COWable match
ok 860 - COWable match
ok 861 - COWable match
ok 862
ok 863 - RT \#45667 without /x
ok 864 - RT \#45667 with /x
ok 865 - no crash with /@a/ when array has nonexistent elems
ok 866 - deleting *^R does not result in crashes
ok 867 - assigning to *^R does not result in a crash
ok 868 - undefining *^R within (??{}) does not result in a crash
ok 869 # skip Valid only for EBCDIC
ok 870 # skip Valid only for EBCDIC
ok 871 # skip Valid only for EBCDIC
ok 872 # skip Valid only for EBCDIC
ok 873 # skip Valid only for EBCDIC
ok 874 # skip Valid only for EBCDIC
ok 875 # skip Valid only for EBCDIC
ok 876 # skip Valid only for EBCDIC
ok 877 # skip Valid only for EBCDIC
ok 878 # skip Valid only for EBCDIC
ok 879 # skip Valid only for EBCDIC
ok 880 # skip Valid only for EBCDIC
ok 881 # skip Valid only for EBCDIC
ok 882 # skip Valid only for EBCDIC
ok 883 # skip Valid only for EBCDIC
ok 884 # skip Valid only for EBCDIC
ok 885 # skip Valid only for EBCDIC
ok 886 # skip Valid only for EBCDIC
ok 887 # skip Valid only for EBCDIC
ok 888 # skip Valid only for EBCDIC
ok 889 # skip Valid only for EBCDIC
ok 890 # skip Valid only for EBCDIC
ok 891 # skip Valid only for EBCDIC
ok 892 # skip Valid only for EBCDIC
ok 893 - qr/a?c/ generates a synthetic start class
ok 894 - qr/a?c/i generates a synthetic start class
ok 895 - qr/[ab]?c/ generates a synthetic start class
ok 896 - qr/\R?c/ generates a synthetic start class
ok 897 - qr/\d?c/d generates a synthetic start class
ok 898 - qr/\w?c/l generates a synthetic start class
ok 899 - qr/\s?c/a generates a synthetic start class
ok 900 - qr/[[:lower:]]?c/u generates a synthetic start class
ok 901 - \W with /d synthetic start class works
ok 902 - Y WITH DIAERESIS l =~ l
ok 903 - Y WITH DIAERESIS l =~ u
ok 904 - Y WITH DIAERESIS u =~ l
ok 905 - Y WITH DIAERESIS u =~ u
ok 906 - Y WITH DIAERESIS l =~ l
ok 907 - Y WITH DIAERESIS l =~ u
ok 908 - Y WITH DIAERESIS u =~ l
ok 909 - Y WITH DIAERESIS u =~ u
ok 910 - A WITH MACRON u =~ u
ok 911 - A WITH MACRON u =~ l
ok 912 - A WITH MACRON l =~ u
ok 913 - A WITH MACRON l =~ l
ok 914 - NEL is white-space under /x
ok 915 - '\(' is a literal in qr(...)
ok 916 - '\[' is a literal in qr[...]
ok 917 - '\{' is a literal in qr{...}, where it could be a quantifier
ok 918 - '\<' is a literal in qr<...>)
ok 919 - UTF-8 of /[x]/i matches upper case
ok 920 - "�" should match [�-�]
ok 921
ok 922
ok 923 - did not crash
ok 924 - [bbb...] resolved as character class, not subscript
ok 925 - qr/(??/ did not crash
ok 926 - qr/(??x/ shows x in error even if it's a wide character
ok 927 - qr/(?P/ did not crash
ok 928 - qr/(?Px/ shows x in error even if it's a wide character
ok 929 - qr/(?i-/ did not crash
ok 930 - qr/(?i-x/ shows x in error even if it's a wide character
ok 931 - big backref qr/(?3221225472)/ did not crash
ok 932 - big backref qr/(?-3221225472)/ did not crash
ok 933 - big backref qr/(?13835058055282163712)/ did not crash
ok 934 - big backref qr/(?-13835058055282163712)/ did not crash
ok 935 - test that we handle things like m/\888888888/ without infinite loops
ok 936 - test that we handle some UTF-8 malformations without looping
ok 937 - compiled GOSUB in CURLYM ok
ok 938 - matched GOSUB in CURLYM
ok 939 - qr{()(?1)}n didn't crash
ok 940 - gave appropriate error for qr{()(?1)}n
ok 941 - perl [\#126406] panic
ok 942 - [perl \#126182] - look ahead left recursion fails fast
ok 943 - [perl \#126182] - left-recursion fails fast
ok 944 - [perl \#126182] - inter-cyclic optional left recursion dies
ok 945 - [perl \#126182] - optional left recursion dies
ok 946 - [perl \#126182] - min mod left recursion dies
ok 947 - [perl \#126182] - * left recursion dies
ok 948 - [perl \#126182] - + left recursion dies
ok 949 - [perl \#126182] - {0,3} left recursion fails fast
ok 950 - [perl \#126182] - optional self recursion works
ok 951 - [perl \#126182] - recursion and possessive captures
ok 952 - [perl \#126182] - recursion and possessive captures
ok 953 - [perl \#126182] - recursion and possessive captures
ok 954 - [perl \#126182] - recursion and possessive captures
ok 955 - Test Perl 73464
ok 956 - /[\xE6\s]/i doesn't match \xC6 when not in UTF-8
ok 957 - /[\xE6\s]/i matches \xC6 when in UTF-8
ok 958 - m'\n' should interpolate escapes
ok 959 - fix [perl \#129950] - latin1 case
ok 960 - fix [perl \#129950] - utf8 case
ok 961 - empty pattern in regex codeblock: got expected start string
ok 962 - empty pattern in regex codeblock: first subst with no last-match worked right
ok 963 - empty pattern in regex codeblock: second subst worked right
ok 964 - empty pattern in regex codeblock: third subst worked right
ok 965 - empty pattern in regex codeblock: died as expected
ok 966 - empty pattern in regex codeblock: produced the right exception message
ok 967 - call to current regex doesn't leak
ok 968 - [perl \#130495] utf-8 character at end of /x comment should not misparse
ok 969 - [perl \#130522] with target '<undef>'
ok 970 - [perl \#130522] with target ''
ok 971 - [perl \#130522] with target '\0'
ok 972 - [perl \#130522] with target '\0z'
ok 973 - [perl \#130522] with target '\0z\0'
ok 974 - [perl \#130522] with target '\0z\n'
ok 975 - Offsets in debug output are not negative
ok 976 - buffer overflow for regexp component
ok 977 - don't bump whilem_c too much
ok 978 - integer overflow during compilation
ok 979 - RT \#131575
ok 980 - handle OPFAIL insert properly
ok 981 - dont throw assert errors trying to fbm past end of string
ok 982 - Use of sharp s under /di that changes to /ui
ok 983 - Use of sharp s under /di that changes to /ui
ok 984 - Undefined behavior in address sanitizer
ok 985 - Was getting 'Double free'
ok 986 - Bad length magic was left on $^R
ok 987 - [perl \#133871]
ok 988 - GH \#17367
ok 989 - GH \#17370
ok 990 - GH \#17371
ok 991 - GH \#17384
ok 992 - [perl \#133921]
ok 993 - [perl \#133921]
ok 994 - [perl \#133921]
ok 995 - [perl \#133921]
ok 996 - [perl \#133933]
ok 997 - /[\S\s]/l works
ok 998 - [^0] doesnt crash on UTF-8 target string
ok 999 - foo
ok 1000
ok 1001 - Assertion failure with /l exact string longer than a single node
ok 1002 - Assertion failure matching /il on single char folding to multi
ok 1003 - 4000000 isn't in pattern
ok 1004 - 4000001 is in pattern
ok 1005 - 4000002 isn't in pattern
ok 1006 - 4000003 is in pattern
ok 1007 - 4000004 isn't in pattern
ok 1008 - 4000005 is in pattern
ok 1009 - 4000006 isn't in pattern
ok 1010 - 1FFF isn't in pattern
ok 1011 - 2000 is in pattern
ok 1012 - 2001 isn't in pattern
ok 1013 - 200C isn't in pattern
ok 1014 - 200 is in pattern
ok 1015 - 200E isn't in pattern
ok 1016 - many evals did not die
ok 1017 - regexp correctly matched
ok 1018 - gh16947: test regexp corruption (GOSUB)
ok 1019 - gh16947: test fix doesn't break SUSPEND
ok 1020 - gh17730: should not crash
ok 1021 - gh17743: test regexp corruption (1)
ok 1022 - gh17743: test regexp corruption (2)
=================================================================
==112814==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 51328 byte(s) in 16 object(s) allocated from:
#0 0x4d9ed8 (/home/atoomic/workspace/perl/perl+0x4d9ed8)
#1 0x72c0da (/home/atoomic/workspace/perl/perl+0x72c0da)
#2 0x6e105e (/home/atoomic/workspace/perl/perl+0x6e105e)
#3 0x6d4cc2 (/home/atoomic/workspace/perl/perl+0x6d4cc2)
#4 0x67e2c1 (/home/atoomic/workspace/perl/perl+0x67e2c1)
#5 0x672181 (/home/atoomic/workspace/perl/perl+0x672181)
#6 0x5256ce (/home/atoomic/workspace/perl/perl+0x5256ce)
#7 0x65a1ac (/home/atoomic/workspace/perl/perl+0x65a1ac)
#8 0x872b76 (/home/atoomic/workspace/perl/perl+0x872b76)
#9 0x8711d0 (/home/atoomic/workspace/perl/perl+0x8711d0)
#10 0x7897f9 (/home/atoomic/workspace/perl/perl+0x7897f9)
#11 0x589c0e (/home/atoomic/workspace/perl/perl+0x589c0e)
#12 0x589010 (/home/atoomic/workspace/perl/perl+0x589010)
#13 0x50eefc (/home/atoomic/workspace/perl/perl+0x50eefc)
#14 0x7f9fcb27b041 (/lib64/libc.so.6+0x27041)
Direct leak of 6416 byte(s) in 16 object(s) allocated from:
#0 0x4d9ed8 (/home/atoomic/workspace/perl/perl+0x4d9ed8)
#1 0x72c0da (/home/atoomic/workspace/perl/perl+0x72c0da)
#2 0x6e1028 (/home/atoomic/workspace/perl/perl+0x6e1028)
#3 0x6d4cc2 (/home/atoomic/workspace/perl/perl+0x6d4cc2)
#4 0x67e2c1 (/home/atoomic/workspace/perl/perl+0x67e2c1)
#5 0x672181 (/home/atoomic/workspace/perl/perl+0x672181)
#6 0x5256ce (/home/atoomic/workspace/perl/perl+0x5256ce)
#7 0x65a1ac (/home/atoomic/workspace/perl/perl+0x65a1ac)
#8 0x872b76 (/home/atoomic/workspace/perl/perl+0x872b76)
#9 0x8711d0 (/home/atoomic/workspace/perl/perl+0x8711d0)
#10 0x7897f9 (/home/atoomic/workspace/perl/perl+0x7897f9)
#11 0x589c0e (/home/atoomic/workspace/perl/perl+0x589c0e)
#12 0x589010 (/home/atoomic/workspace/perl/perl+0x589010)
#13 0x50eefc (/home/atoomic/workspace/perl/perl+0x50eefc)
#14 0x7f9fcb27b041 (/lib64/libc.so.6+0x27041)
Direct leak of 4720 byte(s) in 2 object(s) allocated from:
#0 0x4d9d17 (/home/atoomic/workspace/perl/perl+0x4d9d17)
#1 0x72c204 (/home/atoomic/workspace/perl/perl+0x72c204)
#2 0x6e0d0b (/home/atoomic/workspace/perl/perl+0x6e0d0b)
#3 0x6d4cc2 (/home/atoomic/workspace/perl/perl+0x6d4cc2)
#4 0x67e2c1 (/home/atoomic/workspace/perl/perl+0x67e2c1)
#5 0x672181 (/home/atoomic/workspace/perl/perl+0x672181)
#6 0x5256ce (/home/atoomic/workspace/perl/perl+0x5256ce)
#7 0x65a1ac (/home/atoomic/workspace/perl/perl+0x65a1ac)
#8 0x5862dd (/home/atoomic/workspace/perl/perl+0x5862dd)
#9 0x50eeec (/home/atoomic/workspace/perl/perl+0x50eeec)
#10 0x7f9fcb27b041 (/lib64/libc.so.6+0x27041)
Direct leak of 590 byte(s) in 2 object(s) allocated from:
#0 0x4d9d17 (/home/atoomic/workspace/perl/perl+0x4d9d17)
#1 0x72c204 (/home/atoomic/workspace/perl/perl+0x72c204)
#2 0x6e0cf7 (/home/atoomic/workspace/perl/perl+0x6e0cf7)
#3 0x6d4cc2 (/home/atoomic/workspace/perl/perl+0x6d4cc2)
#4 0x67e2c1 (/home/atoomic/workspace/perl/perl+0x67e2c1)
#5 0x672181 (/home/atoomic/workspace/perl/perl+0x672181)
#6 0x5256ce (/home/atoomic/workspace/perl/perl+0x5256ce)
#7 0x65a1ac (/home/atoomic/workspace/perl/perl+0x65a1ac)
#8 0x5862dd (/home/atoomic/workspace/perl/perl+0x5862dd)
#9 0x50eeec (/home/atoomic/workspace/perl/perl+0x50eeec)
#10 0x7f9fcb27b041 (/lib64/libc.so.6+0x27041)
SUMMARY: AddressSanitizer: 63054 byte(s) leaked in 36 allocation(s).
Dubious, test returned 1 (wstat 256, 0x100)
All 1022 subtests passed
(less 72 skipped subtests: 950 okay)
Test Summary Report
-------------------
re/pat.t (Wstat: 256 Tests: 1022 Failed: 0)
Non-zero exit status: 1
Files=1, Tests=1022, 72 wallclock secs ( 0.20 usr 0.04 sys + 23.47 cusr 35.19 csys = 58.90 CPU)
Result: FAIL
~/workspace/perl
We previously had failures in t/re/pat.t
and t/re/pat_thr.
on this host with this configuration on this branch. See:
http://perl.develop-help.com/raw/?id=255189
http://perl.develop-help.com/raw/?id=255476
t/re/pat.t
and t/re/pat_thr.t
appear to fail frequently on this host. See, e.g., http://perl5.test-smoke.org/submatrix?test=../t/re/pat.t&pversion=5.33.1.
Is this perhaps a situation where these tests have been steadily failing on a given configuration across platforms, but never had a bug ticket filed about them?
The git bisect took some time to run but it appears that the fixed came from https://github.com/Perl/perl5/commit/6841cd5977c2d35ad75233734c66983a65613fce which was added in v5.33.1 dev cycle
6841cd5977c2d35ad75233734c66983a65613fce is the first bad commit
commit 6841cd5977c2d35ad75233734c66983a65613fce
Author: Karl Williamson <khw@cpan.org>
Date: Wed Aug 12 17:53:52 2020 -0600
Fix leak GH #18054
This was a simple matter of one path failing to free the memory.
regcomp.c | 2 ++
1 file changed, 2 insertions(+)
Question: do we want to cherry pick this change to our branch? I would say it s probably a good thing as the scope seems pretty small?
@jkeenan any opinions?
The git bisect took some time to run but it appears that the fixed came from Perl/perl5@6841cd5 which was added in v5.33.1 dev cycle
6841cd5977c2d35ad75233734c66983a65613fce is the first bad commit commit 6841cd5977c2d35ad75233734c66983a65613fce Author: Karl Williamson <khw@cpan.org> Date: Wed Aug 12 17:53:52 2020 -0600 Fix leak GH #18054 This was a simple matter of one path failing to free the memory. regcomp.c | 2 ++ 1 file changed, 2 insertions(+)
Question: do we want to cherry pick this change to our branch? I would say it s probably a good thing as the scope seems pretty small?
@jkeenan any opinions?
As a matter of fact, right now, I'm using my Linode to try to build with asan. So I'll check this out.
Thanks. jimk
I tried building p7 with asan on my Linode. It has an older Debian, so the current version of clang is just 4.0. I configured as follows:
git clean -dxf; ./Configure -des -Dcc="clang-4.0" -Accflags="-Werror=declaration-after-statement -g -fno-omit-frame-pointer -fsanitize=address -fno-common -fsanitize-blacklist=`pwd`/asan_ignore" -Aldflags="-fsanitize=address"; make test_prep
I then called:
cd t; TEST_JOBS=1 ./perl harness -v re/pat.t; cd -
Excerpt from output:
...
ok 1022 - gh17743: test regexp corruption (2)
=================================================================
==29551==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 51328 byte(s) in 16 object(s) allocated from:
#0 0x4fa68d (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x4fa68d)
#1 0x73879a (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x73879a)
#2 0x6f1ce2 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6f1ce2)
#3 0x6df98a (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6df98a)
#4 0x683cd5 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x683cd5)
#5 0x6784fe (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6784fe)
#6 0x549868 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x549868)
#7 0x65fd06 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x65fd06)
#8 0x881429 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x881429)
#9 0x87fa5d (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x87fa5d)
#10 0x796545 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x796545)
#11 0x5adb4f (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x5adb4f)
#12 0x5328cd (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x5328cd)
#13 0x7ff8054e2b44 (/lib/x86_64-linux-gnu/libc.so.6+0x21b44)
Direct leak of 6416 byte(s) in 16 object(s) allocated from:
#0 0x4fa68d (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x4fa68d)
#1 0x73879a (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x73879a)
#2 0x6f1cb0 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6f1cb0)
#3 0x6df98a (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6df98a)
#4 0x683cd5 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x683cd5)
#5 0x6784fe (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6784fe)
#6 0x549868 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x549868)
#7 0x65fd06 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x65fd06)
#8 0x881429 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x881429)
#9 0x87fa5d (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x87fa5d)
#10 0x796545 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x796545)
#11 0x5adb4f (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x5adb4f)
#12 0x5328cd (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x5328cd)
#13 0x7ff8054e2b44 (/lib/x86_64-linux-gnu/libc.so.6+0x21b44)
Direct leak of 4720 byte(s) in 2 object(s) allocated from:
#0 0x4fa465 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x4fa465)
#1 0x7388dd (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x7388dd)
#2 0x6f1b79 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6f1b79)
#3 0x6df98a (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6df98a)
#4 0x683cd5 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x683cd5)
#5 0x6784fe (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6784fe)
#6 0x549868 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x549868)
#7 0x65fd06 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x65fd06)
#8 0x5aa236 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x5aa236)
#9 0x5328bd (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x5328bd)
#10 0x7ff8054e2b44 (/lib/x86_64-linux-gnu/libc.so.6+0x21b44)
Direct leak of 590 byte(s) in 2 object(s) allocated from:
#0 0x4fa465 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x4fa465)
#1 0x7388dd (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x7388dd)
#2 0x6f1b62 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6f1b62)
#3 0x6df98a (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6df98a)
#4 0x683cd5 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x683cd5)
#5 0x6784fe (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x6784fe)
#6 0x549868 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x549868)
#7 0x65fd06 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x65fd06)
#8 0x5aa236 (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x5aa236)
#9 0x5328bd (/home/jkeenan/gitwork/perl-atoomic-2/perl+0x5328bd)
#10 0x7ff8054e2b44 (/lib/x86_64-linux-gnu/libc.so.6+0x21b44)
SUMMARY: AddressSanitizer: 63054 byte(s) leaked in 36 allocation(s).
Dubious, test returned 1 (wstat 256, 0x100)
All 1022 subtests passed
(less 72 skipped subtests: 950 okay)
Test Summary Report
-------------------
re/pat.t (Wstat: 256 Tests: 1022 Failed: 0)
Non-zero exit status: 1
Files=1, Tests=1022, 89 wallclock secs ( 0.31 usr 0.04 sys + 32.27 cusr 55.35 csys = 87.97 CPU)
Result: FAIL
So: non-threaded build: All non-skipped unit tests passed, but AddressSanitizer reported leaks and test was graded FAIL
I then realized that since I had built without threads, I wouldn't be able to run t/re/pat_thr.t
. So I added -Dusethreads
to the config args and attempted to rebuild. However, make
failed with output shown here.
So I applied khw's patch and rebuilt unthreaded and re-tested.
$ cd t; TEST_JOBS=1 ./perl harness -v re/pat.t re/pat_thr.t 1>../err 2>&1; cd - ; vi err
...
ok 1021 - gh17743: test regexp corruption (1)
ok 1022 - gh17743: test regexp corruption (2)
ok
re/pat_thr.t .. skipped: no ithreads
All tests successful.
Files=2, Tests=1022, 89 wallclock secs ( 0.18 usr 0.02 sys + 32.19 cusr 55.32 csys = 87.71 CPU)
Result: PASS
So, for me, that patch cleared up the problem in t/re/pat.t
on unthreaded asan builds. Let's apply it.
@jkeenan this is now in alpha-dev-02-strict
and merged as 9ecd4bde
IMO we can close this case
IMO we can close this case
What about the threaded build problem?
I've not tested it, but regarding the output this looks like very similar. I can confirm it then close this case
using blead@90f5f043 or v5.32.0 or alpha-dev-02-strict@c7dd377c both are broken when compiling with threads
git clean -dxf; ./Configure -Dusedevel -des -Dcc="ccache clang" -Accflags="-Werror=declaration-after-statement -g -fno-omit-frame-pointer -fsanitize=address -fno-common -fsanitize-blacklist=`pwd`/asan_ignore" -Aldflags="-fsanitize=address" -Duseithreads
So yes this is broken in our alpha-dev-02-strict in the same way it's broken upstream. We need to report it upstream and close this case.
...
SUMMARY: AddressSanitizer: 57735 byte(s) leaked in 47 allocation(s).
Failed to build miniperl. Please run make minitest
make: *** [makefile:365: lib/buildcustomize.pl] Error 1
I reported it as #18107 and #18108
both issues seems to be there for a while >= 5.18
at least...
@jkeenan we can close this case
Smoke-test report: http://perl5.test-smoke.org/report/117909 Log file: http://m-l.org/~perl/smoke/perl/x86_64-linux-thread-multi/smoke-me_clang_quick_sanitize=address/James%20E%20Keenan/log005643c4ee4b5d0cd729c01372d3b3fc59752d3a.log.gz
Grep the above file to show each Configuration and what FAILED within each.
A gzipped file containing the relevant part of the log for the threaded, non-debugging configuration can be found here.
@atoomic @toddr Can you take a look? Suggest comparing with last previous smoke-test on this host with this configuration on branch.