8000 Uncaught exception causes failure to reconnect. · Issue #128 · discljord/discljord · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Uncaught exception causes failure to reconnect. #128
Open
@phronmophobic

Description

@phronmophobic

I have a discord bot that runs in the background for long periods of time that usually works great. Intermittently, I get a
WebSocketException in the logs (see log section). After that, the bot no longer appears online and doesn't receive messages. I have to shut everything down and restart the bot.

Version Information

  • Clojure Version: 1.11.1
  • Discljord Version: 1.3.1
  • OS bot is hosted on: Linux

To Reproduce

I don't have a consistent approach to reproducing the exception, but I think there might still be enough info to attempt a fix.

Expected behavior

The bot should continue trying to reconnect.

Logs

Jul 25, 2023 12:33:26 AM discljord.connections.impl invoke
INFO: Exiting the shard loop
Exception in thread "async-dispatch-10" java.util.concurrent.ExecutionException: org.eclipse.jetty.websocket.api.WebSocketException: Session closed
	at org.eclipse.jetty.util.FutureCallback.get(FutureCallback.java:123)
	at org.eclipse.jetty.util.FutureCallback.get(FutureCallback.java:30)
	at clojure.core$deref_future.invokeStatic(core.clj:2317)
	at clojure.core$deref.invokeStatic(core.clj:2337)
	at clojure.core$deref.invoke(core.clj:2323)
	at gniazdo.core$eval32382$fn__32383.invoke(core.clj:21)
	at gniazdo.core$eval32363$fn__32364$G__32354__32371.invoke(core.clj:17)
	at gniazdo.core$connect_with_client$reify__32474.send_msg(core.clj:138)
	at discljord.connections.impl$step_shard_BANG_$heartbeat_fn__33010.invoke(impl.clj:393)
	at discljord.connections.impl$step_shard_BANG_$fn__33161$state_machine__16821__auto____33188$fn__33190.invoke(impl.clj:438)
	at discljord.connections.impl$step_shard_BANG_$fn__33161$state_machine__16821__auto____33188.invoke(impl.clj:431)
	at clojure.core.async.impl.runtime$run_state_machine.invokeStatic(runtime.clj:62)
	at clojure.core.async.impl.runtime$run_state_machine.invoke(runtime.clj:61)
	at clojure.core.async.impl.runtime$run_state_machine_wrapped.invokeStatic(runtime.clj:66)
	at clojure.core.async.impl.runtime$run_state_machine_wrapped.invoke(runtime.clj:64)
	at clojure.core.async$ioc_alts_BANG_$fn__11707.invoke(async.clj:423)
	at clojure.core.async$do_alts$fn__11638$fn__11641.invoke(async.clj:290)
	at clojure.core.async.impl.channels.ManyToManyChannel$fn__11351$fn__11352.invoke(channels.clj:100)
	at clojure.lang.AFn.run(AFn.java:22)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at clojure.core.async.impl.concurrent$counted_thread_factory$reify__11220$fn__11221.invoke(concurrent.clj:29)
	at clojure.lang.AFn.run(AFn.java:22)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.eclipse.jetty.websocket.api.WebSocketException: Session closed
	at org.eclipse.jetty.websocket.common.WebSocketSession.outgoingFrame(WebSocketSession.java:350)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.uncheckedSendFrame(WebSocketRemoteEndpoint.java:322)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendAsyncFrame(WebSocketRemoteEndpoint.java:243)
	at org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint.sendStringByFuture(WebSocketRemoteEndpoint.java:419)
	at gniazdo.core$eval32382$fn__32383.invoke(core.clj:24)
	... 18 more

Additional context

  • I'm running the bot on a dinky server
  • The server is usually not doing much, but sometimes has a lot of work to do that might bog down the CPU and/or cause memory pressure on the JVM

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug reportReported, but unconfirmed bugs.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0