В настоящее время у меня есть сайт Plone 4.3.8, где редактирование портлета вызывает тупик.Каков современный способ решения проблем с блокировкой Plone?
Я пытаюсь найти инструменты, чтобы исправить это, но большинство инструментов взаимоблокировки не работают & Я не получаю хорошую информацию (ИМО) от тех, которые хотя бы запускаются.
Я пробовал:
- z3c.deadlockdebugger => не может добраться до StackTrace
- ZopeHealthWatcher => не могут видеть результаты по командной строке (или веб-страницы)
- Products.LongRequestLogger => возможно, самое лучшее до сих пор, дает мне некоторый выход журнала - но это трассировка стека сосредоточена на диазо-коде, но проблема все еще возникает, когда Diazo не в области (работает против 127.0.0.1)
- gdb attach - просто приземлился меня в коде С
- winpdb => он не может подключаться к запущенным процессам таким же образом, что и gdb (только для процессов, начинающихся с намерения вложения с помощью winpdb)
- Products.signalstack (OR Products.signalstacklogger) => Сигнал USR1 просто выключает zope процесс!
Примечание: z3c.deadlockdebugger (и все, что от него зависит) нуждается в проверке source code, чтобы отказаться от зависимости threadframe.
Мое положение, похоже, связано с обновлением продукта - возможно, одним или обоими либо plone.app.contenttypes, либо plone.app.multilingual, на пустом сайте нет этой проблемы, но я, очевидно, мне нужны данные моего сайта !
Что мне делать, чтобы проделать это?
EDIT:
Я считаю Maurits ответить наиболее правильным, но он не работает в моем случае. В результате я использовал pdb для отслеживания точки, в которой был виден код (в plone.app.debugtoolbar, как это бывает)
О зависимости от threadframe: он устарел, но вы также можете включить его в свой buildout, добавив его в раздел 'eggs'. Поскольку он не опубликован на pypi, вы также должны добавить дополнительные 'find-links' (' https: // majid.info/python/threadframe/') и' allow-hosts'. –
Сайт @keul majid [статья на threadframe] (https://majid.info/blog/threadframe-multithreaded-stack-frame-extraction-for-python/) говорит: «Python 2.5 и более поздние версии включают функцию sys._current_frames () «поэтому я принимаю этот совет – Danimal
Да, это правда, но если вы не хотите изменять исходный код, вы все равно можете использовать threadframe (хотя и устаревший и бесполезный). –