I'm so happy (spinning in my office chair) to report that the patch for
2.6 attached to http://www.ja-sig.org/issues/browse/UP-1816 seems to
work for us here at JHU.
As Eric says this patch needs to be heavily tested before going into
svn. If everyone who experienced this issue would take some time to
verify that it fixes the problem, it would be really appreciated. That
will facilitate the patch being accepted into svn all the quicker.
I'm still working on testing the 2.5 patch.
Thanks everyone,
Elliot
Elliot Metsger wrote:
I'll test on 2.6.0 as well.
Thanks again Eric.
Elliot
Eric Dalquist wrote:
I'll get one ready ASAP with that kind of testing offer.
-Eric
Cris J Holdorph wrote:
Please let me know when a 2.6 patch is available, I have a training
class going right now, where multiple machines are experiencing this
problem with uPortal 2.6.0. If we see a patch we could test it on a
couple machines.
---- Cris J H
Eric Dalquist wrote:
There is a possible patch for this issue attached to the Jira case:
http://www.ja-sig.org/issues/browse/UP-1816
This patch *_HAS NOT_* been extensively tested yet and makes some
significant changes in the ChannelRender and related code. The Jira
issue also has a link to yesterday's IRC log which I would recommend
reading if you are interested in an in-depth discussion about the
probably underlying issue causing the session bug.
The high level overview is that due to uPortal's multi-threaded
rendering model the Tomcat requestDispatcher is creating incorrectly
wrapped HttpServletRequest objects to pass to the portlets for
rendering.
A more detailed overview follows, if there are questions about the
patch please ask.
Until an errata was recently filed in the servlet 2.4 spec it was
against spec to allow multiple threads to access the request or
response objects. The errata changed this so that it is no longer
against spec but containers can optionally support multi-threaded
access to these objects. With this wording it is not specifically a
Tomcat bug, just an optional part of the spec that Tomcat does not
implement.
The patch involves having the ChannelRenderer.Worker class, which
invokes rendering on a channel, create a wrapper around the
HttpServletRequest specific for the thread that Worker is running
in. The wrapper implements HttpServletRequest directly instead of
extending HttpServletRequestWrapper to stop Tomcat from un-wrapping
the wrapper. Passing objects back to the servlet container that are
not either the original request object or extended from
HttpServletRequestWrapper is also against the servlet spec, though
breaking spec compliance in this area should fix the session problem
and doesn't appear to cause other problems.
The objects, specifically PortalControlStructures, which track the
request and response through the rendering pipeline have also been
modified to use ThreadLocals. This allows each rendering thread to
have its own request and response objects as required by this patch.
This patch is very closely based on code that UW-Madison has been
running since going live in June 2006. It was not contributed back
earlier due to both the significance of the changes in the rendering
pipeline and the thought that the problem being addressed by the
change was specific to a special case here at UW.
I would encourage people experiencing the session problem and those
who are familiar with the inner workings of the uPortal channel
rendering code to try the patch and provide feedback. The patch was
created against the 2.5-patches branch. Once some testing has been
done on it confirming its viability I will create a patch for the
2.6-patches branch as well.
-Eric
Elliot Metsger wrote:
Yup,
I pulled HEAD of the 2-6-patches branch, and the buggy behavior
still exists....
Parker Grimes wrote:
Elliot,
Yes we are using uPortal 2.6.0 GA with no custom patches.
getMarkup() in
CPortletAdapter is synchronized.
-Parker
On 9/9/07, Elliot Metsger <[EMAIL PROTECTED]> wrote:
Hi Parker,
Quick question: are you using uPortal 2.6.0 GA? Have you applied
any
custom
patches?
I'm curious if your CPortletAdapter's getMarkup() method is
synchronized.
Parker Grimes wrote:
This is sounding very familiar to what we have been
experiencing. We use
uPortal 2.6.0 and the Spring Portlet MVC.
--
View this message in context:
http://www.nabble.com/uPortal-Session-Failures--tf4116258.html#a12582790
Sent from the uPortal - User mailing list archive at Nabble.com.
---
You are currently subscribed to [EMAIL PROTECTED] as:
[EMAIL PROTECTED]
To unsubscribe, change settings or access archives, see
http://www.ja-sig.org/wiki/display/JSG/uportal-user
--- You are currently subscribed to [EMAIL PROTECTED]
as: [EMAIL PROTECTED]
To unsubscribe, change settings or access archives, see
http://www.ja-sig.org/wiki/display/JSG/uportal-user
--- You are currently subscribed to [EMAIL PROTECTED]
as: [EMAIL PROTECTED]
To unsubscribe, change settings or access archives, see
http://www.ja-sig.org/wiki/display/JSG/uportal-user
--
You are currently subscribed to [email protected] as: [EMAIL
PROTECTED]
To unsubscribe, change settings or access archives, see
http://www.ja-sig.org/wiki/display/JSG/uportal-dev