プロジェクト

全般

プロフィール

Bug(バグ) #1729

openpne:upgrade-from-2 実行時、memory_limit:512M でもメモリリミットオーバーのエラーで中断される

Kiwa Sakai13年以上前に追加. ほぼ13年前に更新.

ステータス:
Invalid(無効)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
-
開始日:
2010-10-20
期日:
進捗率:

0%

3.6 で発生するか:
Yes
3.8 で発生するか:
Unknown (未調査)

説明

概要

openpne:upgrade-from-2 実行時、memory_limit:512M と設定しているにも関わらず

upgrade Processing build_model

時点でメモリリミットオーバーとなり、アップグレードできない。

発生バージョン

ソース: 3.6beta7-dev
コンバート対象データ: OpenPNE2.12

エラー内容


$ ./symfony openpne:upgrade-from-2 --origin=2.12

>> upgrade   Begin upgrading from 2.x
>> upgrade   Processing build_model
PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 35 bytes) in /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Core.php on line 679
PHP Stack trace:
PHP   1. {main}() /OPENPNE_DIR/symfony:0
PHP   2. include() /OPENPNE_DIR/symfony:37
PHP   3. sfSymfonyCommandApplication->run() /OPENPNE_DIR/lib/vendor/symfony/lib/command/cli.php:20
PHP   4. sfTask->runFromCLI() /OPENPNE_DIR/lib/vendor/symfony/lib/command/sfSymfonyCommandApplication.class.php:76
PHP   5. sfBaseTask->doRun() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfTask.class.php:97
PHP   6. openpneUpgradeFrom2Task->execute() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfBaseTask.class.php:68
PHP   7. opUpgrader->execute() /OPENPNE_DIR/lib/task/openpneUpgradeFrom2Task.class.php:83
PHP   8. opUpgradeBuildModelStrategy->run() /OPENPNE_DIR/lib/upgrade/opUpgrader.class.php:137
PHP   9. sfTask->run() /OPENPNE_DIR/lib/upgrade/strategy/opUpgradeBuildModelStrategy.class.php:32
PHP  10. sfBaseTask->doRun() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfTask.class.php:173
PHP  11. sfDoctrineBuildTask->execute() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfBaseTask.class.php:68
PHP  12. sfTask->run() /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/task/sfDoctrineBuildTask.class.php:169
PHP  13. sfBaseTask->doRun() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfTask.class.php:173
PHP  14. sfDoctrineBuildFormsTask->execute() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfBaseTask.class.php:68
PHP  15. sfGeneratorManager->generate() /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/task/sfDoctrineBuildFormsTask.class.php:64
PHP  16. sfDoctrineFormGenerator->generate() /OPENPNE_DIR/lib/vendor/symfony/lib/generator/sfGeneratorManager.class.php:113
PHP  17. sfDoctrineFormGenerator->loadModels() /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php:73
PHP  18. Doctrine_Core::loadModels() /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php:602
PHP  19. get_declared_classes() /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Core.php:679

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 35 bytes) in /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Core.php on line 679

Call Stack:
    0.0005      52776   1. {main}() /OPENPNE_DIR/symfony:0
    0.0073     377056   2. include('/OPENPNE_DIR/lib/vendor/symfony/lib/command/cli.php') /OPENPNE_DIR/symfony:37
    0.3462    8610208   3. sfSymfonyCommandApplication->run() /OPENPNE_DIR/lib/vendor/symfony/lib/command/cli.php:20
    0.3554    8635320   4. sfTask->runFromCLI() /OPENPNE_DIR/lib/vendor/symfony/lib/command/sfSymfonyCommandApplication.class.php:76
    0.3556    8635320   5. sfBaseTask->doRun() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfTask.class.php:97
    1.3755    9032500   6. openpneUpgradeFrom2Task->execute() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfBaseTask.class.php:68
    1.3975    9134940   7. opUpgrader->execute() /OPENPNE_DIR/lib/task/openpneUpgradeFrom2Task.class.php:83
    1.4709    9796456   8. opUpgradeBuildModelStrategy->run() /OPENPNE_DIR/lib/upgrade/opUpgrader.class.php:137
    1.4722    9812360   9. sfTask->run() /OPENPNE_DIR/lib/upgrade/strategy/opUpgradeBuildModelStrategy.class.php:32
    1.4732    9818816  10. sfBaseTask->doRun() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfTask.class.php:173
    1.5584   11013564  11. sfDoctrineBuildTask->execute() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfBaseTask.class.php:68
   11.7622   14273648  12. sfTask->run() /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/task/sfDoctrineBuildTask.class.php:169
   11.7626   14274256  13. sfBaseTask->doRun() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfTask.class.php:173
   11.7633   14275800  14. sfDoctrineBuildFormsTask->execute() /OPENPNE_DIR/lib/vendor/symfony/lib/task/sfBaseTask.class.php:68
   11.7934   15115240  15. sfGeneratorManager->generate() /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/task/sfDoctrineBuildFormsTask.class.php:64
   12.1314   26755632  16. sfDoctrineFormGenerator->generate() /OPENPNE_DIR/lib/vendor/symfony/lib/generator/sfGeneratorManager.class.php:113
   12.1314   26755632  17. sfDoctrineFormGenerator->loadModels() /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php:73
   12.1319   26756688  18. Doctrine_Core::loadModels() /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php:602
   12.3618   33522308  19. get_declared_classes() /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Core.php:679

履歴

#1 Minoru Takai13年以上前に更新

個人的な見解を示しておきます。

openpne:upgrade-from-2 実行時、memory_limit:512M と設定しているにも関わらず

と示されていますが、エラーメッセージでは

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 35 bytes) in /OPENPNE_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Core.php on line 679

と、「許された 33554432(1024*1024*32)bytes のメモリ容量を使い果たした」と出力されています。
つまり、「512M のメモリ容量が使用可能であってもメモリリミットオーバーとなる」わけではなく、メモリ上限を上げる設定が正しく行えていない状況であると見受けられます。

現時点でOpenPNE側の不具合であるという見解に至るのは早計だと思われるので、少なくともエラーメッセージ中のメモリ上限値として 33554432 bytes が出力される原因を探るべきです。

なお、OpenPNEのインストールおよびコンバート操作等に必要なメモリ容量は情報として明示されていないようですが、これまでの経験では 32M では足りず、64M あれば十分であるという認識です。

上記のように示しましたが、upgrade Processing build_model 時点で問題が生じているという事実を基に、この操作でどのようなメモリの使われ方がしているかを探るという方針も悪くはないかもしれません。

#2 Kousuke Ebihara13年以上前に更新

  • 3.6 で発生するかYes にセット

#3 Kiwa Sakaiほぼ13年前に更新

  • ステータスNew(新規) から Invalid(無効) に変更

config.OpenPNE2.php にある

///
// memory_limit設定
///
// ini_set('memory_limit','32M');

memory_limit の設定のコメントアウトが外されていたため、メモリの上限が 32M になっていました。
コメントアウトし、512M の状態でコンバートしたところ、問題なく完了しました。このチケットは閉じます。

他の形式にエクスポート: Atom PDF