DDC-2613: Proxy generation in multiprocess environment #3282

Closed
opened 2026-01-22 14:17:13 +01:00 by admin · 5 comments
Owner

Originally created by @doctrinebot on GitHub (Aug 15, 2013).

Originally assigned to: @Ocramius on GitHub.

Jira issue originally created by user deatheriam:

{panel}
\Doctrine\ORM\Proxy\ProxyFactory::_generateProxyClass fails to rename temporary proxy files when proxies are generated on demand in multiprocess environment using Process Control extension under Linux (http://www.php.net/manual/en/book.pcntl.php). 'Message: rename(../cache/Proxy/Dlayer/__CG__DlayerEntityInventory.php.520d1708631ed2.21378588,/../cache/Proxy/Dlayer/_CG_DlayerEntityInventory.php): No such file or directory' message is given.
{panel}

  • It seems that when two parallel processes are trying to generate a proxy for the same entity, the uniqid function does not create unique temporary file names per process.
  • Also the check should be made at the time of renaming to make sure that the proxy with the same name was not already created in a parallel process.
Originally created by @doctrinebot on GitHub (Aug 15, 2013). Originally assigned to: @Ocramius on GitHub. Jira issue originally created by user deatheriam: {panel} \Doctrine\ORM\Proxy\ProxyFactory::_generateProxyClass fails to rename temporary proxy files when proxies are generated on demand in multiprocess environment using Process Control extension under Linux (http://www.php.net/manual/en/book.pcntl.php). 'Message: rename(../cache/Proxy/Dlayer/__CG__DlayerEntityInventory.php.520d1708631ed2.21378588,/../cache/Proxy/Dlayer/__CG_\_DlayerEntityInventory.php): No such file or directory' message is given. {panel} - It seems that when two parallel processes are trying to generate a proxy for the same entity, the uniqid function does not create unique temporary file names per process. - Also the check should be made at the time of renaming to make sure that the proxy with the same name was not already created in a parallel process.
admin added the Bug label 2026-01-22 14:17:13 +01:00
admin closed this issue 2026-01-22 14:17:13 +01:00
Author
Owner

@doctrinebot commented on GitHub (Aug 16, 2013):

Comment created by @ocramius:

The "dev" settings are not meant to be used for high concurrency environments at the moment.

@doctrinebot commented on GitHub (Aug 16, 2013): Comment created by @ocramius: The "dev" settings are not meant to be used for high concurrency environments at the moment.
Author
Owner

@doctrinebot commented on GitHub (Aug 16, 2013):

Comment created by @ocramius:

Duplicate of DDC-2210

@doctrinebot commented on GitHub (Aug 16, 2013): Comment created by @ocramius: Duplicate of [DDC-2210](http://www.doctrine-project.org/jira/browse/DDC-2210)
Author
Owner

@doctrinebot commented on GitHub (Aug 16, 2013):

Issue was closed with resolution "Duplicate"

@doctrinebot commented on GitHub (Aug 16, 2013): Issue was closed with resolution "Duplicate"
Author
Owner

@doctrinebot commented on GitHub (Aug 16, 2013):

Comment created by deatheriam:

Thats why you shouldn't generate proxies at runtime. The problem happens on windows, because the atomic rename operation doesn't work as perfectly there as on linux. (http://www.doctrine-project.org/jira/browse/DDC-2210?focusedCommentId=19171&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-19171)

  • In my case that is observed on a Linux machine. If the rename operation is atomic then why it still happens? As I indicated in the description it's because of the way uniqid function works.
  • Is there a plan to merge the PR from http://www.doctrine-project.org/jira/browse/DDC-2210 in a near future? The fix in it would eliminate my issue whatsoever.
@doctrinebot commented on GitHub (Aug 16, 2013): Comment created by deatheriam: _Thats why you shouldn't generate proxies at runtime. The problem happens on windows, because the atomic rename operation doesn't work as perfectly there as on linux._ (http://www.doctrine-project.org/jira/browse/[DDC-2210](http://www.doctrine-project.org/jira/browse/DDC-2210)?focusedCommentId=19171&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-19171) - In my case that is observed on a Linux machine. If the rename operation is atomic then why it still happens? As I indicated in the description it's because of the way uniqid function works. - Is there a plan to merge the PR from http://www.doctrine-project.org/jira/browse/[DDC-2210](http://www.doctrine-project.org/jira/browse/DDC-2210) in a near future? The fix in it would eliminate my issue whatsoever.
Author
Owner

@doctrinebot commented on GitHub (Aug 16, 2013):

Comment created by @ocramius:

[~deatheriam] please continue on the issue that this one is duplicating.

@doctrinebot commented on GitHub (Aug 16, 2013): Comment created by @ocramius: [~deatheriam] please continue on the issue that this one is duplicating.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#3282