Skip to content

Crashes in zend_accel_inheritance_cache_find since upgrading to 8.1.3 due to corrupt on-disk file cache #8143

Description

@mbiebl

Description

I dont't have a minimal reproducer for this but an application which is based on sabre/dav running on Windows Server 2016 using IIS

Since upgrading from 8.1.2 to 8.1.3 I get frequent 500 errors.
In the event log I find

Log Name:      Application
Source:        Application Error
Date:          23.02.2022 11:26:34
Event ID:      1000
Task Category: (100)
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      PSDEVMB.test.example.com
Description:
Faulting application name: php-cgi.exe, version: 8.1.3.0, time stamp: 0x62160b66
Faulting module name: php_opcache.dll, version: 8.1.3.0, time stamp: 0x62160b62
Exception code: 0xc0000005
Fault offset: 0x00000000000043a3
Faulting process id: 0xfd0
Faulting application start time: 0x01d8289fd314a2a7
Faulting application path: C:\Program Files\PHP\v8.1\php-cgi.exe
Faulting module path: C:\Program Files\PHP\v8.1\ext\php_opcache.dll
Report Id: f5dc9377-9cfc-46be-ad05-5ad40b0fafe7
Faulting package full name: 
Faulting package-relative application ID: 
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2022-02-23T10:26:34.226734200Z" />
    <EventRecordID>44517</EventRecordID>
    <Channel>Application</Channel>
    <Computer>PSDEVMB.test.example.com</Computer>
    <Security />
  </System>
  <EventData>
    <Data>php-cgi.exe</Data>
    <Data>8.1.3.0</Data>
    <Data>62160b66</Data>
    <Data>php_opcache.dll</Data>
    <Data>8.1.3.0</Data>
    <Data>62160b62</Data>
    <Data>c0000005</Data>
    <Data>00000000000043a3</Data>
    <Data>fd0</Data>
    <Data>01d8289fd314a2a7</Data>
    <Data>C:\Program Files\PHP\v8.1\php-cgi.exe</Data>
    <Data>C:\Program Files\PHP\v8.1\ext\php_opcache.dll</Data>
    <Data>f5dc9377-9cfc-46be-ad05-5ad40b0fafe7</Data>
    <Data>
    </Data>
    <Data>
    </Data>
  </EventData>
</Event>

The relevant opcache configuration from php.ini:

[opcache]
zend_extension=php_opcache.dll
opcache.enable_cli=1
opcache.enable=1
opcache.enable_file_override=1
opcache.file_cache="C:\Windows\temp\"
opcache.file_cache_fallback=1

I ran a git bisect since 8.1.2 was working fine.
The first faulty commit is 78fd573

Attaching a debugger to a running php-cgi.exe process, I see

Exception thrown at 0x00007FF992294F38 in php-cgi.exe: Microsoft C++ exception: std::out_of_range at memory location 0x00000013415FB250.
Exception thrown at 0x00007FF992294F38 in php-cgi.exe: Microsoft C++ exception: std::out_of_range at memory location 0x00000013415FB250.
Exception thrown at 0x00007FF992294F38 in php-cgi.exe: Microsoft C++ exception: std::out_of_range at memory location 0x00000013415FB250.
Exception thrown at 0x00007FF992294F38 in php-cgi.exe: Microsoft C++ exception: std::out_of_range at memory location 0x00000013415FB250.
Exception thrown at 0x00007FF956D743A3 (php_opcache.dll) in php-cgi.exe: 0xC0000005: Access violation reading location 0x0000015600000012.

PHP Version

PHP 8.1.3

Operating System

Windows Server 2016 / IIS

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions