-
Type: Improvement
-
Status: Open
-
Priority: Minor
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: QualifiedToSchedule
-
Component/s: Core
-
Tags:
-
Team:PLATFORM
We've observed that big downloads could generate transaction timeouts on Nuxeo Server without incidence on the functional behavior, ie: user succeed to download the blob.
We should try to improve that to do the effective download outside of the transaction.
See the related error below:
Cannot forward to error page: response is already committed javax.servlet.ServletException: org.nuxeo.runtime.transaction.TransactionRuntimeException: Unable to commit: Transaction timeout
javax.transaction.RollbackException: Unable to commit: Transaction timeout
at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:267) ~[geronimo-transaction-2.2.1.jar:2.2.1]
at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252) ~[geronimo-transaction-2.2.1.jar:2.2.1]
at org.nuxeo.runtime.jtajca.NuxeoContainer$UserTransactionImpl.commit(NuxeoContainer.java:538) ~[nuxeo-runtime-jtajca-10.10-HF41.jar:?]
at org.nuxeo.runtime.transaction.TransactionHelper.commitOrRollbackTransaction(TransactionHelper.java:422) ~[nuxeo-runtime-jtajca-10.10-HF41.jar:?]
at org.nuxeo.ecm.core.io.download.DownloadServiceImpl.handleDownload(DownloadServiceImpl.java:410) ~[nuxeo-core-io-10.10-HF58.jar:?]
at org.nuxeo.ecm.core.io.download.DownloadServiceImpl.handleDownload(DownloadServiceImpl.java:327) ~[nuxeo-core-io-10.10-HF58.jar:?]
at org.nuxeo.ecm.platform.ui.web.download.DownloadServlet.handleDownload(DownloadServlet.java:83) ~[nuxeo-platform-web-common-10.10-HF58.jar:?]
at org.nuxeo.ecm.platform.ui.web.download.DownloadServlet.doGet(DownloadServlet.java:61) ~[nuxeo-platform-web-common-10.10-HF58.jar:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[servlet-api-9.0.58.jar:4.0.FR]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[servlet-api-9.0.58.jar:4.0.FR]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[catalina-9.0.58.jar:9.0.58]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[catalina-9.0.58.jar:9.0.58]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-websocket-9.0.58.jar:9.0.58]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[catalina-9.0.58.jar:9.0.58]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[catalina-9.0.58.jar:9.0.58]
at org.nuxeo.ecm.platform.web.common.requestcontroller.filter.NuxeoThreadTrackerFilter.doFilter(NuxeoThreadTrackerFilter.java:43) ~[nuxeo-platform-web-common-10.10-HF58.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[catalina-9.0.58.jar:9.0.58]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[catalina-9.0.58.jar:9.0.58]
at org.nuxeo.ecm.platform.web.common.requestcontroller.filter.NuxeoStandbyFilter.doFilter(NuxeoStandbyFilter.java:67) ~[nuxeo-platform-web-common-10.10-HF58.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[catalina-9.0.58.jar:9.0.58]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[catalina-9.0.58.jar:9.0.58]
at org.nuxeo.ecm.core.management.jtajca.internal.Log4jWebFilter.doFilter(Log4jWebFilter.java:69) ~[nuxeo-core-management-jtajca-10.10.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[catalina-9.0.58.jar:9.0.58]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[catalina-9.0.58.jar:9.0.58]
at org.nuxeo.ecm.platform.ui.web.rest.FancyURLFilter.doFilter(FancyURLFilter.java:120) ~[nuxeo-platform-ui-web-10.10-HF54.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[catalina-9.0.58.jar:9.0.58]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[catalina-9.0.58.jar:9.0.58]
at org.nuxeo.ecm.platform.ui.web.auth.NuxeoAuthenticationFilter.doFilterInternal(NuxeoAuthenticationFilter.java:643) ~[nuxeo-platform-web-common-10.10-HF58.jar:?]
at org.nuxeo.ecm.platform.ui.web.auth.NuxeoAuthenticationFilter.doFilter(NuxeoAuthenticationFilter.java:431) ~[nuxeo-platform-web-common-10.10-HF58.jar:?]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[catalina-9.0.58.jar:9.0.58]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[catalina-9.0.58.jar:9.0.58]
at org.nuxeo.ecm.platform.web.common.idempotency.NuxeoIdempotentFilter.doFilter(NuxeoIdempotentFilter.java:114) ~[nuxeo-platform-web-common-10.10-HF58.jar:?]
at javax.servlet.http.HttpFilter.doFilter(HttpFilter.java:57) ~[servlet-api-9.0.58.jar:4.0.FR]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[catalina-9.0.58.jar:9.0.58]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[catalina-9.0.58.jar:9.0.58]
at org.nuxeo.ecm.platform.web.common.requestcontroller.filter.NuxeoRequestControllerFilter.doFilter(NuxeoRequestControllerFilter.java:134) ~[nuxeo-platform-web-common-10.10-HF58.jar:?]