DDC-2613: Proxy generation in multiprocess environment #3345

Closed
doctrinebot opened this Issue Aug 15, 2013 · 5 comments

2 participants

@doctrinebot

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.
@doctrinebot

Comment created by @ocramius:

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

@doctrinebot

Comment created by @ocramius:

Duplicate of DDC-2210

@doctrinebot

Issue was closed with resolution "Duplicate"

@doctrinebot

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)

@doctrinebot

Comment created by @ocramius:

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

@Ocramius Ocramius was assigned by doctrinebot Dec 6, 2015
@doctrinebot doctrinebot closed this Dec 6, 2015
@doctrinebot doctrinebot added the Bug label Dec 7, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment