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-2297drew 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 adminI 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_CACHEUnder 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 adminSo 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.xmlorg.jasig.portal.layout.dlm.RDBMDistributedLayoutStore.fragment_cache_refresh = 1ant 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: sameINFO [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 200812: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.xmlArlo 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 oldcustomize, 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 layoutlogout, login welcome-lo, new layout logout, login welcome-lo, new layout logout, login admin: old layout W C B G MClicking tab and customize do nothing. Revert layout, gets correct layout, logoutlogin 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 44314Looked 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, startuplogin 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 _MClick 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.
smime.p7s
Description: S/MIME Cryptographic Signature
