Показать сообщение отдельно
Старый 18.10.2011, 16:23   #1
Alex Podusov
Senior Member
 
Аватар для Alex Podusov
 
Регистрация: 19.06.2008
Адрес: Сергиев Посад
Сообщений: 278
Отправить сообщение для Alex Podusov с помощью ICQ
По умолчанию Unable to create XML parser

При ручном запуске задания в планировщике постоянно вываливалось это сообщение:
Выполнение задачи "Обновить список расширений (em)" потерпело неудачу, сообщение об этом: tx_em_Parser_MirrorXmlPushParser: Unable to create XML parser.
Погуглил, пояндексил, порамблир, нашел только вот такой совет:
Цитата:
При попытке обновить список расширений из репозитория получил такую ошибку: tx_em_Parser_MirrorXmlPushParser: Unable to create XML parser.
Оказалось все просто, мой php был собран без xmlreader. Пересобрал, все заработало нормально.
зашел в админку хостинга (ру-центр), подключил этот самый xmlreader. Перезапустил вебсервер. Теперь при заходе в Планировщик вываливается сразу это:
Цитата:
Fatal error: tx_scheduler_Module::listTasks() [<a href='tx-scheduler-module.listtasks'>tx-scheduler-module.listtasks</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;tx_em_MirrorXmlException&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /home/.../typo3/typo3_src-4.5.0/typo3/sysext/scheduler/mod1/index.php on line 1153
Пошел снова в управление хостингом, выключил xmlreader, перезапустил веб сервер. Но вот эта последняя ошибка никуда не делась. Что бы это могло быть?

PS
Если закомментировать в указанном файле блок if c 1144 по 1156 строку:
PHP код:
                        // Check if the last run failed
                    
$failureOutput '';
                    if (!empty(
$schedulerRecord['lastexecution_failure'])) {
                            
// Try to get the stored exception object
                        
$exception unserialize($schedulerRecord['lastexecution_failure']);
                            
// If the exception could not be unserialized, issue a default error message
                        
if ($exception === FALSE) {
                            
$failureDetail $GLOBALS['LANG']->getLL('msg.executionFailureDefault');
                        } else {
                            
$failureDetail sprintf($GLOBALS['LANG']->getLL('msg.executionFailureReport'), $exception->getCode(), $exception->getMessage());
                        }
                        
$failureOutput ' <img ' t3lib_iconWorks::skinImg(t3lib_extMgm::extRelPath('scheduler'), 'res/gfx/status_failure.png') . ' alt="' htmlspecialchars($GLOBALS['LANG']->getLL('status.failure')) . '" title="' htmlspecialchars($failureDetail) . '" />';
                    } 
то хотя бы возвращается на место нормальное отображение аддона

ПыСыСы
Оказывается чего тролько прежде не стояло на хостинге: и TYPO3, и CS-Cart, и Джумлу с Магентой пробовали. В результате к PHP подружается такой список: ctype, curl, dom, filter, ftp, gd, hash, iconv, json, mcrypt, mhash, mysql, mysqli, pdo, pdo_mysql, session, simplexml, soap, zip, zlib
а из модулей: auth_module , CGI, realip_module , rewrite_module , autoindex_module , env_module , expires_module , gzip_module , limitipconn_module
Вот такая кашица, а я то порой негодовал - куда память девается??? Буду потихонечку по очереди отключать ненужное, проверяя, не приведет ли отключение к неприятностям. Но вот этот опыт с xmlreader всё же настораживает... включил-отключил - и трындец планировщику ))) Может подскажет кто, что из этого списка точно не требуется для TYPO3?

Последний раз редактировалось Alex Podusov; 18.10.2011 в 18:24
Alex Podusov вне форума   Ответить с цитированием