Great fix, thanks Drew!

-Eric

Drew Wills wrote:
Arlo, Eric, et al.,

At JHU -- where the LAYOUT_CACHE work was done -- we added the following:

Index: uportal-impl/src/main/java/org/jasig/portal/layout/dlm/DistributedLayoutManager.java
===================================================================
--- uportal-impl/src/main/java/org/jasig/portal/layout/dlm/DistributedLayoutManager.java +++ uportal-impl/src/main/java/org/jasig/portal/layout/dlm/DistributedLayoutManager.java
@@ -151,6 +151,9 @@
                             + "non-null profile must to be specified.");
         }

+        // Ensure a new layout gets loaded whenever a user logs in...
+        layoutCache.remove(owner.getUserName());
+
         // cache the relatively lightwieght userprofile for use in
         // in layout PLF loading
         owner.setAttribute(UserProfile.USER_PROFILE, profile);

*****

It appears in the constructor for DistributedLayoutManager, which gets invoked whenever a new user authenticates.

We put it in there to address exactly the issue you're looking at, and I had thought that it was in JA-SIG SVN as well.

I'm adding it now, together with a writeup: http://www.ja-sig.org/issues/browse/UP-2297

drew wills

Eric Dalquist wrote:
Arlo,

I finally got around to looking into this issue. Let me know if I have reproduced it with these steps:

-Log in as admin
-Swap to the Welcome fragment
-Move the calendar portlet above the google portlet (default was reversed)
-Exit Welcome fragment mangement
-Admin user's UI still shows google portlet on top
-log out as admin
-log in as admin
-Admin user's UI still shows google portlet on top
-log out as admin
-log in as student
-Student user's UI shows calendar portlet on top
-log out as student
-log in as admin
-Admin user's UI still shows google portlet on top
-log out as admin

I then connected to the portal MBean server via JConsole and browsed to the LAYOUT_CACHE bean: net.sf.ehcache:type=Cache,CacheManager=uPortal.cacheManager,name=org.jasig.portal.layout.dlm.LAYOUT_CACHE

Under operations there is a removeAll() which I clicked.

-log in as admin
-Admin user's UI shows calendar portlet on top (correct!)
-log out as admin

So what I'm thinking this is an issue with is the fact that in the trunk (what will be 3.1) user layouts are not cached in their session but in an EHCache configured to store 250 LRU elements for 30 minutes.

We have a local mod at UW that hadn't made it back in yet that I'll get copied over. The mod forcibly removes cached layouts for a user when they logout.

Let me know if this sounds like what you are seeing Arlo.
-Eric

Arlo White wrote:
I sent these emails on this layout issue a while ago. We are still seeing this issue after playing with ehcache.xml settings. Has anyone made any headway on it? Is there a JIRA issue for it?

-Arlo


Arlo White wrote:
Looking at a single user, I set the ehcache times to 60 seconds for everything. In a 2nd run I also set the org.jasig.portal.layout.dlm.RDBMDistributedLayoutStore.fragment_cache_refresh time to 1. However, the problem still existed for 4 to 5 minutes before the cache updated, as you can see toward the end. At the end I've included the log for each login, I've bolded the interesting stuff that seemed to fix the layout in the last login which rendered correctly on the first render. Tell me if these logs are useful or not. If you have an idea of what the problem is I'll stop trying to debug it.

set all timeToIdle and timeToLive to 60 in ehcache.xml

ant clean
ant deploy-war
verified new ehcache.xml file in webapps/uPortal
startup

login student:
W    C
G
B
M

Customize:
W    C
G    M
B

logout, login saved

Customize:
W    C
B    M
    G

12:25:10 logout, login reverted.
tab/home updates

12:25:56 still same

12:26:30 login (still old layout):
W    C
G    M
B

wait 5 min in case dlm.xml has effect.

login (new layout!):
W    C
B    M
    G

shutdown

Set dlm.xml
org.jasig.portal.layout.dlm.RDBMDistributedLayoutStore.fragment_cache_refresh = 1

ant deploy-war
verify dlm.xml
startup
said i had unresolved compilation problems...
mvn clean
ant deploy-war
startup

login student:
W    C
B    M
    G

Customize:
W    C
B    G
M

relog: saved
Customize:
W    C
    G
    B
    M

relog:
W    C
B    G
M

12:44:25 tab click, reverts, logout

45 login: same
12:45:00 login: same
12:45:30 login: same
12:46:00 login: same
12:46:30 login: same
12:47:00 login: same
INFO [http-8080-3] provider.SimpleSecurityContext.[] Dec/17 12:47:01 - User student is authenticated INFO [PortalEvent-6] handlers.LoggingEventHandler.[] Dec/17 12:47:01 - (student) logged in successfully at Wed Dec 17 12:47:01 PST 2008 INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - >>>> calling Welcome.isApplicable( student ) INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - ---- Welcome.isApplicable( student )=true INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - >>>> calling News.isApplicable( student ) INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - ---- News.isApplicable( student )=true INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - >>>> calling Guests.isApplicable( student ) INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - ---- Guests.isApplicable( student )=false INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - >>>> calling Entertainment.isApplicable( student ) INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - ---- Entertainment.isApplicable( student )=true INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - >>>> calling Welcome.isApplicable( student ) INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - ---- Welcome.isApplicable( student )=true INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - >>>> calling News.isApplicable( student ) INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - ---- News.isApplicable( student )=true INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - >>>> calling Guests.isApplicable( student ) INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - ---- Guests.isApplicable( student )=false INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - >>>> calling Entertainment.isApplicable( student ) INFO [http-8080-3] dlm.FragmentDefinition.[] Dec/17 12:47:01 - ---- Entertainment.isApplicable( student )=true INFO [http-8080-3] jndi.JndiManagerImpl.[] Dec/17 12:47:01 - JNDI Context configured for sessionId='FB371D924B0E7C6E65B232C00D1AD77B', userId='11', and layoutId='1' INFO [http-8080-3] portlet.CSpringPortletAdaptor.[] Dec/17 12:47:01 - Using ISpringPortletChannel named 'portletChannel' INFO [PortalEvent-7] handlers.LoggingEventHandler.[] Dec/17 12:47:01 - Session created for (student) at Wed Dec 17 12:47:01 PST 2008 INFO [http-8080-3] portlet.CSpringPortletAdaptor.[] Dec/17 12:47:01 - Using ISpringPortletChannel named 'portletChannel' INFO [org.jasig.portal.ChannelManager#54] CWebProxy.access.[] Dec/17 12:47:01 - logAccess: 6 student calendar.html 0 0.02 INFO [org.jasig.portal.ChannelManager#52] CWebProxy.access.[] Dec/17 12:47:01 - logAccess: 68 student weather.html 0 0.665 INFO [org.jasig.portal.ChannelManager#53] CWebProxy.access.[] Dec/17 12:47:01 - logAccess: 49 student tabs-demo.html 0 0.672 INFO [http-8080-3] jndi.JndiManagerImpl.[] Dec/17 12:48:07 - JNDI Context removed for sessionId='FB371D924B0E7C6E65B232C00D1AD77B', userId='11', and layoutId='1' INFO [PortalEvent-8] handlers.LoggingEventHandler.[] Dec/17 12:48:07 - (student) logged out at Wed Dec 17 12:48:07 PST 2008 INFO [PortalEvent-9] handlers.LoggingEventHandler.[] Dec/17 12:48:07 - Session destroyed for (student) at Wed Dec 17 12:48:07 PST 2008

12:48:30 login: new!

INFO [http-8080-5] provider.SimpleSecurityContext.[] Dec/17 12:48:29 - User student is authenticated INFO [PortalEvent-10] handlers.LoggingEventHandler.[] Dec/17 12:48:29 - (student) logged in successfully at Wed Dec 17 12:48:29 PST 2008 INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling Welcome.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- Welcome.isApplicable( student )=true INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling News.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- News.isApplicable( student )=true INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling Guests.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- Guests.isApplicable( student )=false INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling Entertainment.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- Entertainment.isApplicable( student )=true * INFO [http-8080-5] dlm.PLFIntegrator.[] Dec/17 12:48:29 - merging into ilf channel n3 INFO [http-8080-5] dlm.PLFIntegrator.[] Dec/17 12:48:29 - merging into ilf channel n4 INFO [http-8080-5] dlm.PLFIntegrator.[] Dec/17 12:48:29 - merging into ilf channel n7 INFO [http-8080-5] dlm.PLFIntegrator.[] Dec/17 12:48:29 - merging into ilf channel n8 INFO [http-8080-5] dlm.PLFIntegrator.[] Dec/17 12:48:29 - merging into ilf channel n10 INFO [http-8080-5] dlm.PLFIntegrator.[] Dec/17 12:48:29 - merging into ilf channel n11 INFO [http-8080-5] dlm.PLFIntegrator.[] Dec/17 12:48:29 - merging into ilf channel n13* INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling Welcome.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- Welcome.isApplicable( student )=true INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling News.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- News.isApplicable( student )=true INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling Guests.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- Guests.isApplicable( student )=false INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling Entertainment.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- Entertainment.isApplicable( student )=true INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling Welcome.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- Welcome.isApplicable( student )=true INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling News.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- News.isApplicable( student )=true INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling Guests.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- Guests.isApplicable( student )=false INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - >>>> calling Entertainment.isApplicable( student ) INFO [http-8080-5] dlm.FragmentDefinition.[] Dec/17 12:48:29 - ---- Entertainment.isApplicable( student )=true INFO [http-8080-5] jndi.JndiManagerImpl.[] Dec/17 12:48:29 - JNDI Context configured for sessionId='6104FDE847005454D28C99AE20F1B76C', userId='11', and layoutId='1' INFO [PortalEvent-11] handlers.LoggingEventHandler.[] Dec/17 12:48:29 - Session created for (student) at Wed Dec 17 12:48:29 PST 2008 INFO [http-8080-5] portlet.CSpringPortletAdaptor.[] Dec/17 12:48:29 - Using ISpringPortletChannel named 'portletChannel' INFO [org.jasig.portal.ChannelManager#36] CWebProxy.access.[] Dec/17 12:48:29 - logAccess: 49 student tabs-demo.html 0 0.038 INFO [org.jasig.portal.ChannelManager#42] CWebProxy.access.[] Dec/17 12:48:29 - logAccess: 6 student calendar.html 0 0.042 INFO [http-8080-5] portlet.CSpringPortletAdaptor.[] Dec/17 12:48:29 - Using ISpringPortletChannel named 'portletChannel' INFO [org.jasig.portal.ChannelManager#39] CWebProxy.access.[] Dec/17 12:48:30 - logAccess: 68 student weather.html 0 0.032 INFO [org.jasig.portal.ChannelManager#37] channels.CGenericXSLT.[] Dec/17 12:48:30 - Global cache not enabled for channel: CGenericXSLT/emptyDocument.xml







Arlo White wrote:
I was able to reproduce this bug with a single user:

(Using the database I was testing with previously, which is why there's a different default layout)

startup tomcat

login student:
W    C
   G
   B
   M

Customize:
W    C
G    M
B

logout, login, saved fine
Customize:
W    C
G
B
M

logout, login, old:
W    C
G    M
B

Click tab, switches to new:
W    C
G
B
M

logout, login, old again,Home or Tab click switches to new, logout
waiting 5min, login, still old layout:
W    C
G    M
B

Tab click switches to new:
W    C
G
B
M





Arlo White wrote:
I just did similar test with 3.1_M1 and reproduced the bug. There were slight differences but the nature of the bug was the same. At the end when the porctal is in that state where the fragment-layout is cached and switches to the new layout when you click a tab I made sure to wait 5 minutes and it still didn't switch to the new layout. Restarting tomcat always seems to resolves the issue. So the database appears to be correct, just the in-memory caching is problematic. Tell me if you need more information, logs, database notes, etc.

Cleared webapps
https://www.ja-sig.org/svn/uPortal/tags/rel-3-1-0-M1 44112
created build.properties, set tomcat server.home
ant hsql
mvn clean
ant initportal
startup tomcat

Signed in as Admin
W    B
G    C
   M
logout

set welcome-lo pw
login as welcome-lo, Customize
W    C
B    M
   G
logout, login, saved

logout, login admin, old layout
W    B
G    C
   M

tab didn't refresh, customize didn't change, logout

login as welcome-lo, still saved, logout

logout/in as admin (still old)

login as student, has new layout, logout

shutdown, startup

login welcome-lo, has new layout from prevous session
W    C
B    M
   G
Customize: move weather bot left
W    C
B    G
M
logout, login welcome-lo, saved

logout, login admin, has new
logout, login student, has new
logout, login welcome-lo, Customize, bookmarks to bot right:
W    C
M    G
   B

logout, login welcome-lo, reverted to:
W    C
B    G
M

Click welcome tab, bookmarks moved bottom right.
W    C
M    G
   B
logout, login welcome-lo, bookmarks still on left
Click tab, moves again.

logout, login welcome-lo, bookmarks on right now, correct layout
Note: with trunk we got here in one login instead of two

Customize: weath to right
W    C
   G
   B
   M

logout, login welcome-lo,  weather reverted, click tab, still old
customize, weather now on right, click tab, weather still left, click customize, weather on right, click "Back to Home", weather on right. (What's different about this link?), now clicking tab has new layout

logout, login welcome-lo, new layout
logout, login welcome-lo, new layout

logout, login admin: old layout
W    C
B    G
M
Clicking tab and customize do nothing. Revert layout, gets correct layout, logout
login student, same old layout, logout
login faculty, has new layout (fresh login), logout

waiting 5 minutes to try student again:
Still old layout.
W    C
B    G
M

logout, login welcome-lo
W    C
   G
   B
   M

logout, login admin, old layout
W    C
B    G
M

shutdown, startup


login welcome-lo:
W    C
   G
   B
   M
logout, login admin, same layout, logout

login welcome-lo, customize to:
W    C
M    G
   B

logout, login welcome-lo, reverted to:
W    C
   G
   B
   M
Click tab, switches to new layout:
W    C
M    G
   B
logout, login welcome-lo, same thing over and over.

login admin:
W    C
   G
   B
   M
Reverting gets correct layout.

login student (correct layout, fresh login):
W    C
M    G
   B

Same Warning in logs:
org.jasig.portal.PortalException: Node with id="ctf1" doesn't exist. Occurred in layout for admin. at org.jasig.portal.layout.dlm.DistributedLayoutManager.getParentId(DistributedLayoutManager.java:1382)

After a couple minutes logged into welcome-lo again, correct layout, may have been 5min total?:
W    C
M    G
   B

Customize to:
W    C
M    G
B

logout, login welcome-lo, correct layout saved.
Customize to:
W    C
   G
   B
   M

~11:34:20
logout, login welcome-lo (old layout):
W    C
M    G
B

Switches to new when click tab.

logout, login admin:
W    C
   G
   B
   M
has new layout, was reverted this session.

logout, login student, old layout:
W    C
M    G
   B

11:36 logout, login welcome-lo, still old, refresh > new behavior.
waiting to 11:40

login welcome-lo:
W    C
M    G
B

Click tab:
W    C
   G
   B
   M

logout, login student:
W    C
M    G
   B

logout, login welcome-lo:
still odd, click tab, customize, back to home, logout
login welcome-lo, still old.




Arlo White wrote:
Yesterday I was testing somewhat haphazardly. Today I methodically went through and wrote down every change I did and was able to reproduce the bug. I haven't been able to determine what type of channel moves are causing the problem, the first run through went fine, but as you can see I get strange behavior later on. It does seem to be some kind of caching issue. I'm going to checkout M1 and do the exact same thing and see if I reproduce the bug in M1. I've bolded odd behaviors to make them easier to find.

Cleared webapps
Using https://www.ja-sig.org/svn/uPortal/trunk 44496
ant clean
ant hsql
ant initportal
startup tomcat

Looked at jasig repository,
branch tag/rel-3-1-0-M1 is 44112
trunk is 44314

Looked at svn log between these revisions, mostly crn changes. Some database changes, using hibernate for schema now. Maybe an invalid database is being created in trunk?

Signed in as Admin
logout

set welcome-lo pw
login as welcome-lo

(I'm logging in directly as the layout owner just to be sure the fragment admin isn't doing anything funky)

Move Google Right Bottom; Bookmarks Left Bottom (Customize)
logout, login, saved

logout, login admin
*old layout Note: we logged in as admin before changing welcome-lo*
google left bottom, book top right
tab didn't refresh
back to home
logout

login as welcome-lo, still saved

logout/in as admin

login as student, has new layout

9:45 admin still old, logout
*9:54 login admin, still old, logout
admin seems to be permanently cached?*

login admin, revert layout works

shutdown, startup

login welcome-lo
has new layout from previous session change, move weather bot left
logout, login welcome-lo, saved correctly

logout, login admin, has new
logout, login student, has new
logout, login welcome-lo, bookmarks bottom-right
*logout, login welcome-lo, reverted to old layout, click welcome tab*
*bookmarks moved bottom right.*
logout, login welcome-lo, bookmarks bottom-right now
moved weather > Bot Right
*logout, login welcome-lo,  weather reverted, click tab, still old*
*Go to customize, weather now on right (correct in customize view), click tab, weather still left, click customize, weather on right, click "Back to Home", weather on right. (What's different about this link?), now clicking tab has new layout
*
*logout, login welcome-lo, weather on left again, click tab, weather goes to right* *logout, login welcome-lo, weather on left again, browser refresh does nothing, clicking home also moves weather to right*
*logout, login welcome-lo, weather on left again, logout*
*login admin, bookmarks and weather on left, click tab does nothing, customize nothing*, revert layout, bookmarks weather on right. (revert gets correct positions)
*logout, login admin, bookmarks and weather back on left*
*logout, login student, bookmarks & weather on left, logout*
login faculty, bookmarks, weather on right, logout (correct, never logged in as this user this session)

shutdown, startup

login welcome-lo, bookmarks weather on right (has correct layout from last time).
logout, login admin, bookmarks, weather on right.
logout, login welcome-lo, move weather left, logout
*login admin, weather didn't move, logout*
*login welcome-lo, weather on right (old), click tab, weather jumps left, logout (similar behavior as before)*
shutdown

Look at log, have multiple instance of this warning:

WARN [http-8080-1] portal.ChannelManager.[] Dec/17 10:12:10 - Failed to load IUserLayoutChannelDescription and parent IUserLayoutNodeDescription for channel with subscribe id: ctf1 org.jasig.portal.PortalException: Node with id="ctf1" doesn't exist. Occurred in layout for welcome-lo. at org.jasig.portal.layout.dlm.DistributedLayoutManager.getParentId(DistributedLayoutManager.java:1382) at org.jasig.portal.layout.TransientUserLayoutManagerWrapper.getParentId(TransientUserLayoutManagerWrapper.java:255) at org.jasig.portal.ChannelManager.outputChannel(ChannelManager.java:495) at org.jasig.portal.ChannelContentCacheEntry.replayCache(ChannelContentCacheEntry.java:22) at org.jasig.portal.rendering.StaticRenderingPipeline.renderState(StaticRenderingPipeline.java:436) at org.jasig.portal.PortalSessionManager.doGetInternal(PortalSessionManager.java:246) at org.jasig.portal.PortalSessionManager.doGet(PortalSessionManager.java:176) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)

startup
login welcome-lo
(W=Welcome,M=MyWeather,C=Calendar,G=GoogleSearch,B=BookmarksPortlet)
/_ is empty in that column, spaces weren't very clear in email/

WC
MG
_B

Customize to:
WC
_G
_B
_M

logout, login, layout saved correctly
Customize again
WC
BM
G

*logout, login, reverted*
WC
_G
_B
_M

Click Tab, changes to correct layout *similar weird refresh behavior as before*
WC
BM
G

logout, login, in correct layout at start

I'll start testing M1 and see if I reproduce the bug.

--
Arlo White
Application Management / ITS
[email protected]
Office (805) 756-5211





Eric Dalquist wrote:
The only thing I can think of is a caching issue somewhere, we're on about 3.1-M1 and I don't think we've seen this issue but I'll see if I can verify that tomorrow. I'll also look into any local modifications we might have that would change how things work with DLM fragments for us.

-Eric

Arlo White wrote:
We've encountered some severe issues with DLM and fragment-layouts. As we started testing fragment-layout changes in our customized portal we started noticing some strange behavior. After logging into a fragment-layout user and moving channels around, then logging out and back in those changes would revert. Sometimes refreshing once would bring these changes in. Sometimes switching to the customize screen would show the changes, then going back to the tab would show the changes that previously weren't visible.

If a fragment-layout is in this state users don't inherit the changes. However, if you restart the server and login as the fragment-layout user, the changes appear correctly and are inherited by users.

After encountering these issues I decided to confirm whether the bug is in uPortal trunk.

I just ran a complete initportal, with the default hsql database and default entities.

I moved a few channels around in the welcome-lo fragment. After I logged out and back in as welcome-lo the changes disappeared. When I went to Customize I saw those changes. At this point, if you click the Welcome tab, the changes won't be there. However, if you click "Back to Home" the changes will be in the welcome tab. Once you logout and back in the changes disappear again. If you login as a user they don't get the changes, if you revert the layout you can see the changes.

I presume that restarting the server would cause the user to inherit the changes without reverting layouts but the server shouldn't need to be restarted just because a fragment-layout changed.

Is DLM not functional in trunk? Are these known issues. Please reply as soon as possible as we're planning on rolling 3.1 to production this Sunday.











Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to