Details
-
Bug
-
Resolution: Done
-
Major
-
xCM 5.0 SP5, xCM 6.0.0
-
None
Description
6.0 r22127
I have set some groups for each role of my N-step WF, but when I try to go trough the different steps of the validation process with my different users, I can't even do the first notification. I have so edited again my roles, and no one has been set. I have so redifined it, and reedited: every thing has been lost again, even using apply button, then ok button.
TestRail: Results
Attachments
Activity
In following case the isMember() returns "false" (incorrect):
- give an LDAP group the RW access to a page
- login with one of the group's members
I can not reproduce the ClientAbortException, but the there are not too many reasons for this kind of exception:
1) The end user closes the browser window, when a page is still loading
2) The browser cancels the request on a timeout
In both these cases the server (the Tomcat itself) throws the ClientAbortException.
I can assume that the loading of list of groups is taken too long. On my machine, using LDAP server on 10.8.37.17 via software-based VPN, it takes minutes to display list of LDAP grops if the preloading is enabled (default option).
Thank you once again for testing it!
In sp5 when I access to LDAP server and click on admin/ managing groups I have this exception in the console:
INFO: Server startup in 21094 ms
2008-10-07 14:19:00,390: ERROR [org.jahia.admin.users.ManageUsers] - Error
ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:323)
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:392)
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:381)
at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336)
at sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:395)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:136)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:146)
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:204)
at org.jahia.bin.JahiaAdministration.doRedirect(JahiaAdministration.java:604)
at org.jahia.admin.users.ManageUsers.doRedirect(ManageUsers.java:244)
at org.jahia.admin.users.ManageUsers.displayUsers(ManageUsers.java:285)
at org.jahia.admin.users.ManageUsers.userRequestDispatcher(ManageUsers.java:169)
at org.jahia.admin.users.ManageUsers.<init>(ManageUsers.java:135)
at org.jahia.bin.JahiaAdministration.userRequestDispatcher(JahiaAdministration.java:449)
at org.jahia.bin.JahiaAdministration.service(JahiaAdministration.java:257)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.jahia.bin.filters.esi.ESIFilter.doFilter(ESIFilter.java:110)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:747)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:347)
at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:770)
at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:580)
at org.apache.coyote.Response.doWrite(Response.java:560)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
JAHIA-3432: N step WF: impossible to set WF roles
http://www.jahia.net/jira/browse/JAHIA-3432
Resolution: 1) fix lazy loading of LDAP group members (if the 'groups.ldap.preload' in the groups.ldap.properties is set to 'false' - members are not loaded at all)
2) Implement proper lazy loading of group members:
- membership is checked without loading all members of the group in this case
- all members are loaded only if the JahiaGroup.members() method is called (forces loading of all members of the group)
- in the Jahia Administration / Site Settings / Group Maanagement the members of the group in the group list overview are not displayed (before 'mygroup (user1, user2, ...)', now 'mygroup (...)'). Members are loaded in this case only in the edit group view
Commit: 22429 (SP5) and 22430 (Andromeda)
Thanks for info, so please check with Thomas and Benji if necessary for solving/finding a solution for this issue.
Groups and memberships are stored correctly in the database but seems not loaded properly because of the lazy loading for group members introduced in CONE-60 (commits 19536, 19538 in the trunk by Benjamin). As now the preloading of group members is completely disabled (commit 21742 by Thomas), group members are not loaded when reading a group.
We should find another solution for this lazy loading, e.g. using a proxy to retrieve group members when they are first requested (using members(), isMember() etc. methods).
The problem should also be present in the trunk in case the "preloadDBGroupMembersActivated" is set to false in the jahia.properties
Nothing seems to be stored as Anna said, but is it a view or a backend problem ?
Resolution: removed mMembers field, which is hiding the parent one
Commit: 25066