Webtop sharing a large email account times out without sharing

I have a user email account that is about 50Gb in size with a lot of folders. When sharing this email account with another user after clicking Save & Close the dialogue “Please wait…” shows for about two minutes then returns to Sharing & Permissions Edit screen. It there a way to increase timer for this process to finish?

Anyone?

Let’s see if @lucag has any ideas.

Did you find any error inside the logs?

Nothing in /var/log/webtop/webtop.log

Nothing but empty logs and gz in /var/lib/tomcats/webtop/logs/

I just had an idea, can you also check another couple of things?

Take a look to the browser console, I expect a failed request under the Network tab.
Also you may find something inside /var/log/maillog and /var/log/messages :crossed_fingers:

I ran a test again and I found this repeating error for what looks like each imap folder of the user in webtop.log during time changing adding permissions (Sorry, I think I was checking the wrong time when checking before) -

2023-05-16 17:32:20 [ERROR] com.sonicle.webtop.mail.Service - Error setting acl on folder Sorted Emails from Inbox/Early Intervention 
jakarta.mail.MessagingException: RTI2641 NO [NONEXISTENT] Mailbox doesn't exist: Sorted Emails from Inbox/Early Intervention  (0.001 + 0.000 secs).
	at com.sun.mail.imap.IMAPFolder.doOptionalCommand(IMAPFolder.java:3859)
	at com.sun.mail.imap.IMAPFolder.removeACL(IMAPFolder.java:2951)
	at com.sonicle.webtop.mail.MailAccount._setFolderSharing(MailAccount.java:1195)
	at com.sonicle.webtop.mail.MailAccount._setFolderSharing(MailAccount.java:1191)
	at com.sonicle.webtop.mail.MailAccount.setFolderSharing(MailAccount.java:1182)
	at com.sonicle.webtop.mail.Service.processManageSharing(Service.java:9345)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.sonicle.webtop.core.app.servlet.BaseRequest.invokeMethod(BaseRequest.java:109)
	at com.sonicle.webtop.core.app.servlet.PrivateRequest.processRequest(PrivateRequest.java:86)
	at com.sonicle.webtop.core.app.servlet.PrivateRequest.doPost(PrivateRequest.java:108)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at com.sonicle.webtop.core.app.shiro.filter.GZip.doFilterInternal(GZip.java:60)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:450)
	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
	at com.sonicle.webtop.core.app.shiro.WTShiroFilter.doFilterInternal(WTShiroFilter.java:89)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:747)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:750)
Caused by: com.sun.mail.iap.CommandFailedException: RTI2641 NO [NONEXISTENT] Mailbox doesn't exist: Sorted Emails from Inbox/Early Intervention  (0.001 + 0.000 secs).
	at com.sun.mail.iap.Protocol.handleResult(Protocol.java:413)
	at com.sun.mail.imap.protocol.IMAPProtocol.deleteACL(IMAPProtocol.java:2958)
	at com.sun.mail.imap.IMAPFolder$15.doCommand(IMAPFolder.java:2956)
	at com.sun.mail.imap.IMAPFolder.doProtocolCommand(IMAPFolder.java:3897)
	at com.sun.mail.imap.IMAPFolder.doOptionalCommand(IMAPFolder.java:3852)
	... 68 common frames omitted
2023-05-16 17:32:26 [ERROR] com.sonicle.webtop.mail.Service - Error setting acl on folder Public/Junk
jakarta.mail.MessagingException: RTI2729 NO [NOPERM] You lack administrator privileges on this mailbox (0.001 + 0.000 secs).
	at com.sun.mail.imap.IMAPFolder.doOptionalCommand(IMAPFolder.java:3859)
	at com.sun.mail.imap.IMAPFolder.removeACL(IMAPFolder.java:2951)
	at com.sonicle.webtop.mail.MailAccount._setFolderSharing(MailAccount.java:1195)
	at com.sonicle.webtop.mail.MailAccount._setFolderSharing(MailAccount.java:1191)
	at com.sonicle.webtop.mail.MailAccount.setFolderSharing(MailAccount.java:1182)
	at com.sonicle.webtop.mail.Service.processManageSharing(Service.java:9345)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.sonicle.webtop.core.app.servlet.BaseRequest.invokeMethod(BaseRequest.java:109)
	at com.sonicle.webtop.core.app.servlet.PrivateRequest.processRequest(PrivateRequest.java:86)
	at com.sonicle.webtop.core.app.servlet.PrivateRequest.doPost(PrivateRequest.java:108)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at com.sonicle.webtop.core.app.shiro.filter.GZip.doFilterInternal(GZip.java:60)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:450)
	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
	at com.sonicle.webtop.core.app.shiro.WTShiroFilter.doFilterInternal(WTShiroFilter.java:89)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:747)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:750)
Caused by: com.sun.mail.iap.CommandFailedException: RTI2729 NO [NOPERM] You lack administrator privileges on this mailbox (0.001 + 0.000 secs).
	at com.sun.mail.iap.Protocol.handleResult(Protocol.java:413)
	at com.sun.mail.imap.protocol.IMAPProtocol.deleteACL(IMAPProtocol.java:2958)
	at com.sun.mail.imap.IMAPFolder$15.doCommand(IMAPFolder.java:2956)
	at com.sun.mail.imap.IMAPFolder.doProtocolCommand(IMAPFolder.java:3897)
	at com.sun.mail.imap.IMAPFolder.doOptionalCommand(IMAPFolder.java:3852)
	... 68 common frames omitted

Hi Mark,

I don’t know if it can be useful in your case but I wanted to let you know that
there is this core setting ajax.longtimeout to increase the timeout for long ajax operations (default=5 minutes)

Documentation in this chapter: Core — WebTop 5 Documentation 5 documentation

2 Likes

Thanks Luca, I will give it a go and report back here soon.

1 Like

Tested, I adding ajax.longtimeout with 600000 (10 minutes) as a new com.sonicle.webtop.core entry and it made no difference. Measured the time out and it is 3 minutes. This field has a default of 5 minutes. Is there something I have missed or do you have any other suggestions @lucag