Bug #33116

Scheduler BE module fails to load

Added by Dmitry Dulepov over 10 years ago. Updated about 10 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2012-01-11
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
4.5
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

Getting the following error message in PHP error log:

PHP Fatal error: tx_scheduler_Module::listTasks(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Swift_RfcComplianceException" 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 /var/lib/typo3/TYPO3_4-5_snowflake/typo3/sysext/scheduler/mod1/index.php on line 1153

The problem is that scheduler tries to unserialize the exception and that fails because it is not autoloaded at that point.

#1

Updated by Gerrit Code Review over 10 years ago

  • Status changed from New to Under Review

Patch set 1 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/7736

#2

Updated by Gerrit Code Review over 10 years ago

Patch set 1 for branch TYPO3_4-6 has been pushed to the review server.
It is available at http://review.typo3.org/8747

#3

Updated by Gerrit Code Review over 10 years ago

Patch set 1 for branch TYPO3_4-5 has been pushed to the review server.
It is available at http://review.typo3.org/8748

#4

Updated by Dmitry Dulepov over 10 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100
#5

Updated by Christian Kuhn over 10 years ago

  • Status changed from Resolved to New
#6

Updated by Christian Kuhn over 10 years ago

Dmitry, your patch was merged by me, but I had to revert it after I got this message in lots of BE modules:

Core: Error handler (BE): PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Function spl_autoload_call() hasn't defined the class it was called for in /var/www/core/typo3/sysext/rsaauth/sv1/storage/class.tx_rsaauth_split_storage.php line 44

This behavior happened for example in the log module, after I installed and used phpmyadmin. The only way to get rid of it was by removing the php session id cookie. It is thrown, if the unserialize callback function you added to registerautoloader() still does not find the class. In my case there are serialized PMA objects in the session, our TYPO3 autoloader does not find them, the PMA autoloader is not registered -> the warning is thrown.

With further investigation I came to the following conclusions:
- When unserializing, the whole autoload register chain is called.
- The unserialize callback is then useless (if it just triggers the chain again), or - if done at all - should be constructed in a way that it then always given an instance back (eg. by doing some nasty magic like new eval('class ' . $theClass . extends stdClass {}) in it.

Since the callback magic isn't very clean, for now, we should only merge the second part of the patch that tests for incomplete_class in the scheduler.

I've pushed a new patch to gerrit for the later.

#7

Updated by Gerrit Code Review over 10 years ago

  • Status changed from New to Under Review

Patch set 1 for branch master has been pushed to the review server.
It is available at http://review.typo3.org/8757

#8

Updated by Gerrit Code Review over 10 years ago

Patch set 1 for branch TYPO3_4-6 has been pushed to the review server.
It is available at http://review.typo3.org/8896

#9

Updated by Gerrit Code Review over 10 years ago

Patch set 1 for branch TYPO3_4-5 has been pushed to the review server.
It is available at http://review.typo3.org/8897

#10

Updated by Christian Kuhn over 10 years ago

  • Status changed from Under Review to Resolved
#11

Updated by Gerrit Code Review over 10 years ago

  • Status changed from Resolved to Under Review

Patch set 1 for branch TYPO3_4-6 has been pushed to the review server.
It is available at http://review.typo3.org/9225

#12

Updated by Gerrit Code Review over 10 years ago

Patch set 1 for branch TYPO3_4-5 has been pushed to the review server.
It is available at http://review.typo3.org/9232

#13

Updated by Wouter Wolters about 10 years ago

Merged in 4.5.12, 4.6.5, 4.7.0beta1

#14

Updated by Ernesto Baschny about 10 years ago

  • Status changed from Under Review to Closed

Also available in: Atom PDF