Forgot to mention the versions: - libperl5.30:amd64 5.30.0-9ubuntu0.4 - nginx-common 1.18.0-0ubuntu1.4
-- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to perl in Ubuntu. https://bugs.launchpad.net/bugs/2035339 Title: libperl5.30 crash (segfault) at Perl__invlist_intersection_maybe_complement_2nd during nginx reload Status in perl package in Ubuntu: New Bug description: On Focal, I got this in my kern.log: nginx[533]: segfault at 739 ip 00007fadc806d5d9 sp 00007ffc04f5cd50 error 4 in libperl.so.5.30.0[7fadc8005000+166000] Code: 00 0f b6 40 30 49 c1 ed 03 49 29 c5 0f 84 17 01 00 00 48 8b 76 10 48 8b 52 10 4c 8d 3c fe 4c 8d 0c c2 84 c9 0f 84 c7 02 00 00 <49> 83 39 00 0f 85 ad 03 00 00 49 83 c1 08 49 83 ed 01 49 8d 74 1d Looking at IP ( 0x00007fadc806d5d9 - 0x7fadc8005000 ) it appeared to point at 0x685D9 in libperl.so.5.30.0. # addr2line -Cfe /usr/lib/x86_64-linux-gnu/libperl.so.5.30 685D9 Perl_vload_module op.c:7752 But when looking at the code, it looks like it's at 0x685D9 + 0x48000 = 0xB05D9: # addr2line -Cfe /usr/lib/x86_64-linux-gnu/libperl.so.5.30 B05D9 Perl__invlist_intersection_maybe_complement_2nd regcomp.c:9841 This makes more sense: # objdump -d /usr/lib/x86_64-linux-gnu/libperl.so.5.30 ... 00000000000b0500 <Perl__invlist_intersection_maybe_complement_2nd@@Base>: ... b05cd: 4c 8d 0c c2 lea (%rdx,%rax,8),%r9 b05d1: 84 c9 test %cl,%cl b05d3: 0f 84 c7 02 00 00 je b08a0 <Perl__invlist_intersection_maybe_complement_2nd@@Base+0x3a0> b05d9: 49 83 39 00 cmpq $0x0,(%r9) <-- here b05dd: 0f 85 ad 03 00 00 jne b0990 <Perl__invlist_intersection_maybe_complement_2nd@@Base+0x490> b05e3: 49 83 c1 08 add $0x8,%r9 b05e7: 49 83 ed 01 sub $0x1,%r13 There's a similar segfault: nginx[356456]: segfault at 10 ip 00007f4f576785a3 sp 00007ffd0be49220 error 4 in libperl.so.5.30.0[7f4f57610000+166000] Code: 48 89 43 10 48 83 c4 18 5b 5d 41 5c 41 5d 41 5e 41 5f c3 0f 1f 40 00 0f b6 7f 30 48 c1 e8 03 48 29 f8 48 89 c3 74 89 48 8b 02 <4c> 8b 68 10 4d 85 ed 0f 84 28 01 00 00 0f b6 40 30 49 c1 ed 03 49 That is on 0xB05A3, also in Perl__invlist_intersection_maybe_complement_2nd: b0598: 48 29 f8 sub %rdi,%rax b059b: 48 89 c3 mov %rax,%rbx b059e: 74 89 je b0529 <Perl__invlist_intersection_maybe_complement_2nd@@Base+0x29> b05a0: 48 8b 02 mov (%rdx),%rax b05a3: 4c 8b 68 10 mov 0x10(%rax),%r13 <-- here b05a7: 4d 85 ed test %r13,%r13 b05aa: 0f 84 28 01 00 00 je b06d8 <Perl__invlist_intersection_maybe_complement_2nd@@Base+0x1d8> On GitHub I found a bug filed for perl 5.30 and this function: https://github.com/Perl/perl5/issues/17154 That issue is fixed in perl 5.32.0 and beyond (across multiple commits). Apparently the bug triggers every now and then, but was not common enough to be noticed. And looking at the timestamps, it is always during an nginx reload. Cheers, Walter Doekes OSSO B.V. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/perl/+bug/2035339/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp