Moonshine-IDE / Super.Human.Portal

Portal interface to show documentation for DominoVagrant and Super.Human.Installer
Other
0 stars 1 forks source link

Timeouts for Genesis API #22

Closed JoelProminic closed 1 year ago

JoelProminic commented 1 year ago

Testing on the Super.Human.Installer servers, I'm seeing occasional timeouts when connecting to the Genesis API.

[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM: org.apache.commons.httpclient.ConnectTimeoutException: The host did not accept the connection within timeout of 2000 ms
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:155)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:125)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at util.SimpleHTTPClient.getPage(SimpleHTTPClient.java:90)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at genesis.GenesisRead.getGenesisAppList(GenesisRead.java:116)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at genesis.GenesisRead.runAction(GenesisRead.java:55)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at com.moonshine.domino.crud.CRUDAgentBase.NotesMain(CRUDAgentBase.java:96)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at lotus.domino.AgentBase.runNotes(Unknown Source)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at lotus.domino.NotesThread.run(Unknown Source)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM: Caused by: 
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM: java.net.SocketTimeoutException: connect timed out
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at java.net.PlainSocketImpl.socketConnect(Native Method)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at java.net.Socket.connect(Socket.java:607)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at java.lang.reflect.Method.invoke(Method.java:498)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  at org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:140)
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM:  ... 12 more
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM: POST data not available for method 'GET'.
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM: POST data not available for method 'GET'.
[001332:000067-00007FDBD4958700] 04/28/2023 12:18:21 PM  HTTP JVM: Agent 'GenesisRead' complete.

Normally the API is very fast, so I suspect this is triggering on view refreshes.

I should increase the timeout on the agent side, to at least 5 seconds to give it more time to finish. 5 seconds wouldn't be unreasonably slow for loading this interface (but it is certainly not ideal).

JoelProminic commented 1 year ago

The timeout is updated to 5 seconds. I'll leave this open for a while to see if the case triggers again.

JoelProminic commented 1 year ago

I still got a timeout on this today:

[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:05 PM  HTTP JVM: Could not rea
d configured Genesis URL.
[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:10 PM  HTTP JVM: Exception:  
[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:10 PM  HTTP JVM: org.apache.co
mmons.httpclient.ConnectTimeoutException: The host did not accept the connection
 within timeout of 5000 ms
[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:10 PM  HTTP JVM:      at org.a
pache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(Reflectio
nSocketFactory.java:155)
[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:10 PM  HTTP JVM:      at org.a
pache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(Defa
ultProtocolSocketFactory.java:125)
[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:10 PM  HTTP JVM:      at org.a
pache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:10 PM  HTTP JVM:      at org.a
pache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.
java:387)
[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:10 PM  HTTP JVM:      at org.a
pache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.jav
a:171)
[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:10 PM  HTTP JVM:      at org.a
pache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:10 PM  HTTP JVM:      at org.a
pache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:10 PM  HTTP JVM:      at util.
SimpleHTTPClient.getPage(SimpleHTTPClient.java:90)
[001274:000267-00007F2C36DEE700] 05/17/2023 12:08:10 PM  HTTP JVM:      at genes
is.GenesisRead.getGenesisAppList(GenesisRead.java:132)
JoelProminic commented 1 year ago

The timeout was updated as expected, but there seems to be cases where the response from the Genesis API is unusually slow - this should be investigated separately. This is more rare after the update, so I'll close this issue for now.