Skip to content

Debugging segfault on aarch64 (ARM) #86

@Zenexer

Description

@Zenexer

I'm encountering an occasional segfault in PHP 8.1 on aarch64. The coredumps I've collected point to pcre2, and disabling JIT seems mitigate the segfaults. However, I haven't been able to get a reliable repro because it's quite a rare issue.

I posted details at oerdnj/deb.sury.org#1721, but there probably isn't much there that will help other than a sparse backtrace from the coredump. Do you have any advice for debugging the issue further or developing a reliable repro?

Here's the backtrace copied from the other issue, for convenience--not too helpful, I'm afraid:

#0  vld1q_u8 (__a=0xffff9e000000 <error: Cannot access memory at address 0xffff9e000000>) at /usr/lib/gcc/aarch64-linux-gnu/10/include/arm_neon.h:17550
#1  ffcps_1_utf (str_end=0xffff9dfffffa "", str_ptr=0xffff9e000000 <error: Cannot access memory at address 0xffff9e000000>, offs1=8, offs2=<optimized out>,
    chars=<optimized out>) at src/pcre2_jit_neon_inc.h:190
#2  0x0000ffffa6662118 in ?? ()
#3  0x0000ffff9dfffff8 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

There isn't much else that the segfaults have in common. They're happening during arbitrary PHP requests handled by XenForo, relatively popular software. There doesn't appear to be anything that the requests have in common. Based on the timing I'm seeing, it's likely happening toward the end of each request; XenForo's PCRE usage happens during the beginning of each request, which makes developing a repro more difficult.

Installed package version is 10.39-2+0~20211122.14+debian11~1.gbp0d570b

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions