php / php/doc-extensions

opcache.file_cache should be purged after PHP updates

Open
#32 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
XML
Stars
2
Forks
6
Avg merge
1d 14h
Merged PRs (30d)
5

Description

Description

After recently updating php and its modules to 8.1.12 I'm getting Segmentation fault when trying to execute my Nextcloud occ command.

The following code:

sudo -u www-data php /var/www/nextcloud/occ app:update --all

Resulted in this output:

Segmentation fault

But I expected this output instead:

No Segmentation fault

This is the Backtrace:

(gdb) run /var/www/nextcloud/occ app:update --all
Starting program: /usr/bin/php /var/www/nextcloud/occ app:update --all
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x0000007ff4f270cc in ?? () from /usr/lib/php/20210902/opcache.so
(gdb) bt
#0  0x0000007ff4f270cc in ?? () from /usr/lib/php/20210902/opcache.so
php/php-src#1  0x00000055558c87b4 in zend_do_link_class ()
php/php-src#2  0x00000055557fab7c in zend_bind_class_in_slot ()
php/php-src#3  0x00000055557fac40 in do_bind_class ()
php/php-src#4  0x000000555585d370 in ?? ()
php/php-src#5  0x000000555589734c in execute_ex ()
php/php-src#6  0x00000055558134ac in zend_call_function ()
php/php-src#7  0x00000055558138c4 in zend_call_known_function ()
php/php-src#8  0x000000555570d1f4 in ?? ()
php/php-src#9  0x000000555581272c in zend_lookup_class_ex ()
php/php-src#10 0x0000005555813cfc in zend_fetch_class_by_name ()
php/php-src#11 0x00000055558c86c4 in zend_do_link_class ()
php/php-src#12 0x00000055557fab7c in zend_bind_class_in_slot ()
php/php-src#13 0x00000055557fac40 in do_bind_class ()
php/php-src#14 0x000000555585d370 in ?? ()
php/php-src#15 0x000000555589734c in execute_ex ()
php/php-src#16 0x00000055558134ac in zend_call_function ()
php/php-src#17 0x00000055558138c4 in zend_call_known_function ()
php/php-src#18 0x000000555570d1f4 in ?? ()
php/php-src#19 0x000000555581272c in zend_lookup_class_ex ()
php/php-src#20 0x0000005555813cfc in zend_fetch_class_by_name ()
php/php-src#21 0x00000055558c82ac in zend_do_link_class ()
php/php-src#22 0x00000055557fab7c in zend_bind_class_in_slot ()
php/php-src#23 0x000000555585fa3c in ?? ()
php/php-src#24 0x00000055558973d0 in execute_ex ()
php/php-src#25 0x00000055558134ac in zend_call_function ()
php/php-src#26 0x00000055558138c4 in zend_call_known_function ()
php/php-src#27 0x000000555570d1f4 in ?? ()
php/php-src#28 0x000000555581272c in zend_lookup_class_ex ()
php/php-src#29 0x0000005555813cfc in zend_fetch_class_by_name ()
php/php-src#30 0x00000055558c82ac in zend_do_link_class ()
--Type <RET> for more, q to quit, c to continue without paging--
php/php-src#31 0x00000055557fab7c in zend_bind_class_in_slot ()
php/php-src#32 0x00000055557fac40 in do_bind_class ()
php/php-src#33 0x000000555585d370 in ?? ()
php/php-src#34 0x000000555589734c in execute_ex ()
php/php-src#35 0x00000055558134ac in zend_call_function ()
php/php-src#36 0x00000055558138c4 in zend_call_known_function ()
php/php-src#37 0x000000555570d1f4 in ?? ()
php/php-src#38 0x000000555581272c in zend_lookup_class_ex ()
php/php-src#39 0x0000005555813cfc in zend_fetch_class_by_name ()
php/php-src#40 0x0000005555868194 in ?? ()
php/php-src#41 0x00000055558975b0 in execute_ex ()
php/php-src#42 0x00000055558a26bc in zend_execute ()
php/php-src#43 0x00000055558229c8 in zend_execute_scripts ()
php/php-src#44 0x00000055557bbc3c in php_execute_script ()
php/php-src#45 0x000000555591505c in ?? ()
php/php-src#46 0x0000005555659850 in ?? ()
php/php-src#47 0x0000007ff774ae18 in __libc_start_main (main=0x5555659530, argc=4, argv=0x7ffffff678, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=<optimized out>) at ../csu/libc-start.c:308
php/php-src#48 0x0000005555659a70 in _start ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Installed packages (using php -r "echo implode(',', get_loaded_extensions());"):

Core,date,libxml,openssl,pcre,zlib,filter,hash,json,pcntl,Reflection,SPL,session,standard,sodium,mysqlnd,PDO,xml,bcmath,bz2,calendar,ctype,curl,dom,mbstring,FFI,fileinfo,ftp,gd,gettext,gmp,iconv,igbinary,imagick,intl,ldap,exif,mysqli,pdo_mysql,pdo_sqlite,Phar,posix,readline,redis,shmop,SimpleXML,sockets,sqlite3,sysvmsg,sysvsem,sysvshm,tokenizer,xmlreader,xmlwriter,xsl,zip,Zend OPcache

Packages and their versions (using apt list --installed | grep php):

php-common/bullseye,bullseye,now 2:93+0~20221029.44+debian11~1.gbpaae3e9 all [installed,automatic]
php-json/bullseye,bullseye,now 2:8.1+93+0~20221029.44+debian11~1.gbpaae3e9 all [installed]
php8.1-bcmath/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-bz2/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-cli/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-common/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-curl/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-fpm/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-gd/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-gmp/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-igbinary/bullseye,now 3.2.6+2.0.8-6+0~20220131.33+debian11~1.gbp1d540e arm64 [installed,automatic]
php8.1-imagick/bullseye,now 3.6.0-4+0~20220117.35+debian11~1.gbp149f82 arm64 [installed]
php8.1-intl/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-ldap/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-mbstring/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-mysql/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-opcache/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-readline/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed,automatic]
php8.1-redis/bullseye,now 5.3.7+4.3.0-1+0~20220330.42+debian11~1.gbp6fe8b7 arm64 [installed]
php8.1-sqlite3/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-xml/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1-zip/bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 arm64 [installed]
php8.1/bullseye,bullseye,now 8.1.12-1+0~20221028.28+debian11~1.gbpc35f51 all [installed]
PHP Version

PHP 8.1.12

Operating System

Debian 11

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is identified. Start by reproducing the reported sudo -u www-data php /var/www/nextcloud/occ app:update --all failure with PHP 8.1.12 on Debian 11, then inspect the supplied OPcache backtrace and opcache.file_cache behavior; done means the command no longer segfaults after a PHP update.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.