Bug #18279
closedSeveral problems with locking API (t3lib_lock)
0%
Description
The locking API has problems if an extension sets TSFE->set_no_cache().
When a page is rendered, a lock is generated as long as the page itself isn't set to be uncached. At this point in time, we know nothing about what individual extensions will do within page caching. When rendering completes, we again check to see if the page is marked as uncached, which it may be because of an extension setting TSFE->set_no_cache. If the page is now marked as uncached, we don't do anything with locks which in turn leaves us with an open lock. Subsequent reloads of the page will take approximately 30 seconds due to the open locks.
The attached patch fixes this issue by releasing the locks within TSFE->set_no_cache(). The patch also contains some debug output for more insight into the problem, but this should be removed before its committed.
I'm also attaching a test extension that contains a frontend plugin for setting TSFE->set_no_cache(). You can first try the plugin without the patch. Make sure you're not logged into the backend and page loads should take approximately 30 seconds. After applying the patch, it should be back to normal speeds.
(issue imported from #M7630)
Files
Updated by emds-itsupport over 16 years ago
I sponsored this issue to have an official resolution of it before wednesday, as this is very critical for me, otherwise kindly disregard it.
Thanks
Updated by Oliver Hader over 16 years ago
The attachment "0007630_v2.patch" replaces the previous patch and was also posted to core list.
What does this patch do?- always release aquired locks (no matter if caching was disabled because this could also have been happened during runtime)
- always remove semaphores (additional to release) to avoid shm leaks
- added sysLog method and its calls to t3lib_lock
- create typo3temp/locks/ directory automatically if it does not exist
Updated by emds-itsupport over 16 years ago
Before I apply the patch, I have just checked out the latest nightly revision of TYPO3 beta2 from SVN. Is this patch still going to work? or should I revert back to beta1?
Updated by Oliver Hader over 16 years ago
Patches are always created to the last SVN revision, thus it works also in your case... ;-)
Updated by emds-itsupport over 16 years ago
Thanks for that... however I have an error message for tslib_fe.php (cf. file attached: errorMerge.gif), relates to version number. I am under version 3286.
Concerning t3lib_lock.php, this file is not present anymore in the rep, which is a bit worrying.
Any idea?