-
Bug
-
Resolution: Fixed
-
High
-
6.2.27
-
None
Steps to reproduce
- http://localhost:8080/magnoliaAuthor/.magnolia/admincentral#app:groovy:detail;/untitled:edit
- Paste the content of attached script extensiveUiRreshes.groovy
- Click run
- Open http://localhost:8080/magnoliaAuthor/.magnolia/admincentral#app:pages-app:browser in multiple browser tabs
Expected results
UI is still usable.
Actual results
Server under huge stress, user can't interact with UI, stackoverflow in logs.
Development notes
When lot's of users are working in the same app/workspace the grid refresh can become overwhelmed with requests. This can lead to a stack overflow.
2023-01-17 10:35:21,782 ERROR nfo.magnolia.admincentral.AdmincentralErrorHandler: Admincentral ist auf einen unerwarteten Fehler gestoßen. java.util.concurrent.ExecutionException: java.lang.StackOverflowError at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_77] at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:1.8.0_77] at com.vaadin.server.VaadinSession$FutureAccess.get(VaadinSession.java:114) ~[vaadin-server-8.15.2.jar:8.15.2] at com.vaadin.server.VaadinService.runPendingAccessTasks(VaadinService.java:2098) ~[vaadin-server-8.15.2.jar:8.15.2] at com.vaadin.ui.UI.push(UI.java:1701) ~[vaadin-server-8.15.2.jar:8.15.2] at info.magnolia.admincentral.ResurfaceUI.push(ResurfaceUI.java:125) ~[magnolia-admincentral-6.2.23.jar:?] at info.magnolia.ui.contentapp.observation.JcrDataSourceObservation.lambda$null$0(JcrDataSourceObservation.java:80) ~[magnolia-ui-framework-jcr-6.2.25.jar:?] at info.magnolia.admincentral.ResurfaceUI.lambda$accessSynchronously$2(ResurfaceUI.java:141) ~[magnolia-admincentral-6.2.23.jar:?] at com.vaadin.ui.UI.accessSynchronously(UI.java:1511) ~[vaadin-server-8.15.2.jar:8.15.2] at info.magnolia.admincentral.ResurfaceUI.accessSynchronously(ResurfaceUI.java:131) ~[magnolia-admincentral-6.2.23.jar:?] at com.vaadin.ui.UI$3.run(UI.java:1575) ~[vaadin-server-8.15.2.jar:8.15.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_77] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_77] at com.vaadin.server.VaadinService.runPendingAccessTasks(VaadinService.java:2095) ~[vaadin-server-8.15.2.jar:8.15.2] ... ... ... Caused by: java.lang.StackOverflowError at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:187) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3158) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3615) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3604) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4155) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:926) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:2051) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3538) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:489) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:3240) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2411) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2834) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2838) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082) ~[mysql-connector-java-5.1.30.jar:?] at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1307) ~[mysql-connector-java-5.1.30.jar:?] at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) ~[commons-dbcp-1.4.jar:1.4] at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) ~[commons-dbcp-1.4.jar:1.4] at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172) ~[commons-dbcp-1.4.jar:1.4] at org.apache.jackrabbit.core.util.db.ConnectionHelper.execute(ConnectionHelper.java:524) ~[jackrabbit-data-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.util.db.ConnectionHelper.reallyExec(ConnectionHelper.java:411) ~[jackrabbit-data-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.util.db.ConnectionHelper$3.call(ConnectionHelper.java:385) ~[jackrabbit-data-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.util.db.ConnectionHelper$3.call(ConnectionHelper.java:381) ~[jackrabbit-data-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.util.db.ConnectionHelper$RetryManager.doTry(ConnectionHelper.java:552) ~[jackrabbit-data-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.util.db.ConnectionHelper.exec(ConnectionHelper.java:388) ~[jackrabbit-data-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:886) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.getBundleCacheMiss(AbstractBundlePersistenceManager.java:766) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.getBundle(AbstractBundlePersistenceManager.java:750) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.load(AbstractBundlePersistenceManager.java:490) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.state.SharedItemStateManager.loadItemState(SharedItemStateManager.java:1878) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.state.SharedItemStateManager.getNonVirtualItemState(SharedItemStateManager.java:1798) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:271) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:110) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:175) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(SessionItemStateManager.java:161) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.HierarchyManagerImpl.getItemState(HierarchyManagerImpl.java:154) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:285) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.CachingHierarchyManager.buildPath(CachingHierarchyManager.java:232) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:287) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.CachingHierarchyManager.buildPath(CachingHierarchyManager.java:232) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:287) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.CachingHierarchyManager.buildPath(CachingHierarchyManager.java:232) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:287) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.CachingHierarchyManager.buildPath(CachingHierarchyManager.java:232) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:287) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.CachingHierarchyManager.buildPath(CachingHierarchyManager.java:232) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:287) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.CachingHierarchyManager.buildPath(CachingHierarchyManager.java:232) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.HierarchyManagerImpl.getPath(HierarchyManagerImpl.java:402) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.CachingHierarchyManager.getPath(CachingHierarchyManager.java:266) ~[jackrabbit-core-2.20.6.jar:2.20.6] at info.magnolia.cms.core.DefaultACLBasedPermissions.canRead(DefaultACLBasedPermissions.java:135) ~[magnolia-core-6.2.25.jar:?] at org.apache.jackrabbit.core.security.DefaultAccessManager.canRead(DefaultAccessManager.java:265) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.ItemManager.canRead(ItemManager.java:437) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.ItemManager.createItemData(ItemManager.java:847) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.ItemManager.getItemData(ItemManager.java:391) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:328) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:621) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.SessionImpl.getNodeById(SessionImpl.java:538) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.query.lucene.LuceneQueryFactory.execute(LuceneQueryFactory.java:229) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.query.lucene.join.QueryEngine.execute(QueryEngine.java:465) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.query.lucene.join.QueryEngine.execute(QueryEngine.java:126) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.query.lucene.join.QueryEngine.execute(QueryEngine.java:115) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.query.QueryObjectModelImpl$2.perform(QueryObjectModelImpl.java:129) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.query.QueryObjectModelImpl$2.perform(QueryObjectModelImpl.java:124) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216) ~[jackrabbit-core-2.20.6.jar:2.20.6] at org.apache.jackrabbit.core.query.QueryObjectModelImpl.execute(QueryObjectModelImpl.java:123) ~[jackrabbit-core-2.20.6.jar:2.20.6] at info.magnolia.ui.contentapp.JcrDataProvider.fetchFromBackEnd(JcrDataProvider.java:87) ~[magnolia-ui-framework-jcr-6.2.25.jar:?] at info.magnolia.ui.contentapp.JcrDataProvider.sizeInBackEnd(JcrDataProvider.java:103) ~[magnolia-ui-framework-jcr-6.2.25.jar:?] at com.vaadin.data.provider.AbstractBackEndDataProvider.size(AbstractBackEndDataProvider.java:66) ~[vaadin-server-8.15.2.jar:8.15.2] at com.vaadin.data.provider.DataProviderWrapper.size(DataProviderWrapper.java:85) ~[vaadin-server-8.15.2.jar:8.15.2] at com.vaadin.data.provider.DataCommunicator.getDataProviderSize(DataCommunicator.java:840) ~[vaadin-server-8.15.2.jar:8.15.2] at com.vaadin.data.provider.DataCommunicator.sendDataToClient(DataCommunicator.java:384) ~[vaadin-server-8.15.2.jar:8.15.2] at com.vaadin.data.provider.DataCommunicator.beforeClientResponse(DataCommunicator.java:364) ~[vaadin-server-8.15.2.jar:8.15.2] at com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:126) ~[vaadin-server-8.15.2.jar:8.15.2] at com.vaadin.server.communication.AtmospherePushConnection.push(AtmospherePushConnection.java:168) ~[vaadin-server-8.15.2.jar:8.15.2] at com.vaadin.server.communication.AtmospherePushConnection.push(AtmospherePushConnection.java:146) ~[vaadin-server-8.15.2.jar:8.15.2] at com.vaadin.ui.UI.push(UI.java:1708) ~[vaadin-server-8.15.2.jar:8.15.2] at info.magnolia.admincentral.ResurfaceUI.push(ResurfaceUI.java:125) ~[magnolia-admincentral-6.2.23.jar:?] at info.magnolia.ui.contentapp.observation.JcrDataSourceObservation.lambda$null$0(JcrDataSourceObservation.java:80) ~[magnolia-ui-framework-jcr-6.2.25.jar:?] at info.magnolia.admincentral.ResurfaceUI.lambda$accessSynchronously$2(ResurfaceUI.java:141) ~[magnolia-admincentral-6.2.23.jar:?] at com.vaadin.ui.UI.accessSynchronously(UI.java:1511) ~[vaadin-server-8.15.2.jar:8.15.2] at info.magnolia.admincentral.ResurfaceUI.accessSynchronously(ResurfaceUI.java:131) ~[magnolia-admincentral-6.2.23.jar:?] at com.vaadin.ui.UI$3.run(UI.java:1575) ~[vaadin-server-8.15.2.jar:8.15.2] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_77] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_77]
Notes
Refresh more intelligently: the first time react immediately, but over time under stress refresh less frequently (e.g. once in 5 seconds)
Acceptance criteria
- relates to
-
MGNLUI-6797 Server push configuration
- Closed
-
MAGNOLIA-9050 Improve UI push scalability
- Open
- links to
- mentioned in
-
Page Loading...
There are no Sub-Tasks for this issue.