Symfony2 дает пустую страницу - PullRequest
6 голосов
/ 05 августа 2011

Symfony 2 умирает и дает мне пустую страницу.Отказ от ответственности: я ненавижу пустые страницы.Во всяком случае, как мне узнать, что пошло не так;почему он умер;почему нет ошибки?

Проверка dev.log дает мне бесполезную информацию:

[2011-08-05 08:41:33] doctrine.DEBUG: UPDATE accTransactions SET report_id = ? WHERE id = ? ([8163,2941852])
[2011-08-05 08:41:33] event.DEBUG: Notified event "kernel.view" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelView".
[2011-08-05 08:41:33] event.DEBUG: Listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelView" stopped propagation of the event "kernel.view".
[2011-08-05 08:41:33] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse".
[2011-08-05 08:41:33] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\SecurityBundle\EventListener\ResponseListener::onKernelResponse".
[2011-08-05 08:41:33] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bridge\Monolog\Handler\FirePHPHandler::onKernelResponse".
[2011-08-05 08:41:33] event.DEBUG: Notified event "kernel.response" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\CacheListener::onKernelResponse".
[2011-08-05 08:41:33] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse".
[2011-08-05 08:41:35] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse".

php_error.log и другие не имеют ошибки.

IЯ запускаю обновление для большой таблицы и выполняю около 1500+ запросов на запрос (около 15 секунд).Я предполагаю, что смерть PHP как-то связана с Doctrine2.Это очень нестабильно, потому что оно начинает умирать, когда кажется, что количество транзакций увеличивается ... Мне нужно, чтобы администратор ожидал гораздо большего от ORM, а не просто смерти.

Есть ли файл журнала базы данныхили что-то, что может дать мне ошибку?С чем угодно, кроме выполнения 1 транзакции за раз, потому что это займет 13333 часа ... Это очень простое обновление (просто добавление этого отношения), если вы посмотрите на первую запись в журнале.

Iя использую PHP 5.3.2 с APC

Я также заметил, что когда функция попадает в команду сброса внизу, она успешно выполняет ее.Таким образом, я полагаю, что теперь только SF2 не отображает представление успешно?

Ответы [ 4 ]

2 голосов
/ 10 января 2012

Если вы выполняете пакетную обработку в Doctrine2, то ваш менеджер сущностей будет расти, и вы нарушаете ограничение памяти PHP.

http://www.doctrine -project.org / blog / doctrine2-batch-processing.html

Вы создаете тысячи объектов, и этот показатель растет с каждым циклом.

При пакетной обработке с ORM необходимо соблюдать осторожность, чтобы устранить утечки памяти.ORM не всегда лучший инструмент для этой работы, но он МОЖЕТ использоваться, если вы осторожны с тем, что делаете.

1 голос
/ 14 июня 2014

попробуйте удалить эти папки: - кеш - журналы

и перезагрузить страницу.

0 голосов
/ 19 октября 2011

Попробуйте добавить «cache: false» к ветке в вашем конфигурационном файле для вашей среды.Решите меня.

0 голосов
/ 08 августа 2011

Я думаю, вам следует включить и посмотреть журнал запросов MySQL.В Debian Linux вы должны отредактировать файл /etc/mysql/my.cnf и отредактировать его так, чтобы он выглядел примерно так:

[mysqld]
# ...

# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
general_log_file        = /var/log/mysql/mysql.log
general_log             = 1
log_error                = /var/log/mysql/error.log

Так что вы сможете просматривать его в реальном времени с помощью tail -F /var/log/mysql/mysql.log

...