Open kingthorin opened 5 years ago
Note that some of the exceptions already have its own issue, e.g.: #4044. Others are expected (for the current behaviour) and are not exclusive to WebSockets, messages being proxied through ZAP would fail to be persisted while the session is being persisted for the first time (similar to #3711).
Should I close this one then? I think the majority are covered in 4044.
I'd leave it open, the session handling needs to be improved (i.e. fix the NullPointerException
s).
While investigating https://github.com/zaproxy/zaproxy/issues/4980 I ended up leaving ZAP running for a prolonged period (hours) with a broswer (Firefox 62.0.3) pointed at ZAP and sitting on a JuiceShop page (which meant that there was on-going websocket traffic). The following exceptions were noted when saving the session file (the initial API exception can be ignored, I didn't try to retrieve something that didn't exist):
Log excerpt during save (363 lines)
> 61136820 [ZAP-ProxyThread-692] WARN org.zaproxy.zap.extension.api.API - Bad request to API endpoint [/JSON/core/view/alert/] from [127.0.0.1]: > Does Not Exist (does_not_exist) > at org.zaproxy.zap.extension.alert.AlertAPI.handleApiView(AlertAPI.java:115) > at org.zaproxy.zap.extension.api.CoreAPI.handleApiView(CoreAPI.java:946) > at org.zaproxy.zap.extension.api.API.handleApiRequest(API.java:465) > at org.parosproxy.paros.core.proxy.ProxyThread.processHttp(ProxyThread.java:456) > at org.parosproxy.paros.core.proxy.ProxyThread.run(ProxyThread.java:318) > at java.lang.Thread.run(Thread.java:748) > 61145598 [ZAP-ProxyThread-696] WARN org.parosproxy.paros.core.proxy.ProxyThread - Failed to write/forward the HTTP response to the client: java.net.SocketException: Software caused connection abort: socket write error > 61145781 [ZAP-ProxyThread-697] WARN org.parosproxy.paros.core.proxy.ProxyThread - Failed to write/forward the HTTP response to the client: java.net.SocketException: Software caused connection abort: socket write error > 61989075 [AWT-EventQueue-0] INFO org.parosproxy.paros.control.Control - Save Session > 61989122 [AWT-EventQueue-0] INFO org.parosproxy.paros.control.MenuFileControl - save as session file > 61989341 [Thread-337] INFO hsqldb.db..ENGINE - dataFileCache commit start > 61990636 [ZAP-ProxyThread-709] ERROR org.parosproxy.paros.model.SiteMap - java.sql.SQLNonTransientConnectionException: connection exception: closed > org.parosproxy.paros.db.DatabaseException: java.sql.SQLNonTransientConnectionException: connection exception: closed > at org.parosproxy.paros.db.paros.ParosTableHistory.read(ParosTableHistory.java:264) > at org.parosproxy.paros.model.HistoryReference.getHttpMessage(HistoryReference.java:448) > at org.parosproxy.paros.model.SiteMap.pollPath(SiteMap.java:174) > at org.parosproxy.paros.extension.history.ProxyListenerLog.onHttpRequestSend(ProxyListenerLog.java:89) > at org.parosproxy.paros.core.proxy.ProxyThread.notifyListenerRequestSend(ProxyThread.java:679) > at org.parosproxy.paros.core.proxy.ProxyThread.processHttp(ProxyThread.java:499) > at org.parosproxy.paros.core.proxy.ProxyThread.run(ProxyThread.java:304) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.sql.SQLNonTransientConnectionException: connection exception: closed > at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) > at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) > at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source) > at org.hsqldb.jdbc.JDBCPreparedStatement.execute(Unknown Source) > at org.parosproxy.paros.db.paros.ParosTableHistory.read(ParosTableHistory.java:256) > ... 7 more > Caused by: org.hsqldb.HsqlException: connection exception: closed > at org.hsqldb.error.Error.error(Unknown Source) > at org.hsqldb.error.Error.error(Unknown Source) > at org.hsqldb.Session.execute(Unknown Source) > ... 10 more > 61990777 [ZAP-ProxyThread-709] WARN org.parosproxy.paros.extension.history.ProxyListenerLog - java.sql.SQLNonTransientConnectionException: connection exception: closed > org.parosproxy.paros.db.DatabaseException: java.sql.SQLNonTransientConnectionException: connection exception: closed > at org.parosproxy.paros.db.paros.ParosTableHistory.write(ParosTableHistory.java:297) > at org.parosproxy.paros.model.HistoryReference.Initially I received similar exceptions the first time I re-opened the session, however after that they did not re-occur (on open).