Bug #78092 [Fbk->NoF]: Opcache shared lockfile and fcntl()

From: Date: Sun, 19 Sep 2021 04:22:14 +0000
Subject: Bug #78092 [Fbk->NoF]: Opcache shared lockfile and fcntl()
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-236691@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=78092&edit=1 ID: 78092 Updated by: php-bugs@lists.php.net Reported by: stefan dot djordjevic at humanity dot com Summary: Opcache shared lockfile and fcntl() -Status: Feedback +Status: No Feedback Type: Bug Package: opcache Operating System: Centos 7.6 PHP Version: Irrelevant Assigned To: cmb Private report: N New Comment: No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Re-Opened". Thank you. Previous Comments: ------------------------------------------------------------------------ [2021-09-09 12:22:31] cmb@php.net Is this still an issue with any of the actively supported PHP versions[1]? Note that "Irrelevant" is no longer supported. [1] <https://www.php.net/supported-versions.php> ------------------------------------------------------------------------ [2019-05-31 12:11:15] stefan dot djordjevic at humanity dot com Description: ------------ Hi, We got some strange behaviour which seems related to shared lockfile stored on a default path (/tmp/.ZendSem.04tkPY) Randomly our Apache server with forked workers enter in some strange "loop", which slows them down and brings our load and number of apache workers to max. I mange to strace them and what I see is: cntl(10, F_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0, l_len=1}) = 0 fcntl(10, F_SETLK, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, l_len=1}) = 0 fcntl(10, F_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0, l_len=1}) = 0 fcntl(10, F_SETLK, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, l_len=1}) = 0 fcntl(10, F_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0, l_len=1}) = 0 fcntl(10, F_SETLK, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, l_len=1}) = 0 fcntl(10, F_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0, l_len=1}) = 0 fcntl(10, F_SETLK, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, l_len=1}) = 0 . . At one point in time it just passed this "condition" and execute, finish request. File Descriptor is actually pointing to opcode lock files: ls -l /proc/30174/fd/10 lrwx------ 1 root root 64 May 30 13:35 /proc/30174/fd/10 -> /tmp/.ZendSem.04tkPY (deleted) As this condition happens pretty randomly, it's hard to identify real cause of this, but from what I see is that it entering some kind of loop, or race condition with locking - unlocking pattern. I am trying to figure out how we get to this condition, as there are many "variables" included in our new setup (docker containers etc.) I am wondering if you guys have any clue if this can be triggered by some kind of bug in Zend opcode cache-ing mechanism or similar ? Thanks. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=78092&edit=1

« previous php.bugs (#236691) next »