halloy icon indicating copy to clipboard operation
halloy copied to clipboard

Timeouts when Off-Screen

Open andymandias opened this issue 9 months ago • 9 comments

When off-screen for a while (particularly, when working in a different workspace and periodically returning to the workspace with Halloy), I am getting frequently getting connection timeouts. This is largely not an issue when using a bouncer, but I have found instances where I am missing messages as a result (i.e. the bouncer believes it sent the message, but Halloy never adds it to the channel history for reasons unknown).

Turning on trace logging, I was able to record this instance of the issue occuring. Here I am connected to three testnets as listed by ircv3.net; I am connected to all three testnets directly (no bouncer involved). For some reason pinging of InspIRCd Testnet stops, while it continues for the other two testnets (... is a long span I cut out where there are no InspIRCd Testnet pings).

06:44:13.814:TRACE -- [InspIRCd Testnet] ping sent: 1714311853814896741
06:44:13.992:TRACE -- [InspIRCd Testnet] pong received: 1714311853814896741
06:46:13.122:TRACE -- [Ergo Testnet] ping sent: 1714311973122169014
06:46:13.255:TRACE -- [UnrealIRCd Support] ping sent: 1714311973255728963
06:46:13.274:TRACE -- [Ergo Testnet] pong received: 1714311973122169014
06:46:13.342:TRACE -- [UnrealIRCd Support] pong received: 1714311973255728963
06:46:13.814:TRACE -- [InspIRCd Testnet] ping sent: 1714311973814561828
06:46:13.991:TRACE -- [InspIRCd Testnet] pong received: 1714311973814561828
06:48:13.122:TRACE -- [Ergo Testnet] ping sent: 1714312093122853516
06:48:13.255:TRACE -- [UnrealIRCd Support] ping sent: 1714312093255447216
06:48:13.274:TRACE -- [Ergo Testnet] pong received: 1714312093122853516
06:48:13.341:TRACE -- [UnrealIRCd Support] pong received: 1714312093255447216
06:50:13.122:TRACE -- [Ergo Testnet] ping sent: 1714312213122520477
06:50:13.255:TRACE -- [UnrealIRCd Support] ping sent: 1714312213255262303
06:50:13.278:TRACE -- [Ergo Testnet] pong received: 1714312213122520477
06:50:13.340:TRACE -- [UnrealIRCd Support] pong received: 1714312213255262303
06:52:13.122:TRACE -- [Ergo Testnet] ping sent: 1714312333122928671
06:52:13.255:TRACE -- [UnrealIRCd Support] ping sent: 1714312333255588466
06:52:13.284:TRACE -- [Ergo Testnet] pong received: 1714312333122928671
06:52:13.341:TRACE -- [UnrealIRCd Support] pong received: 1714312333255588466
06:54:13.122:TRACE -- [Ergo Testnet] ping sent: 1714312453122974990
06:54:13.255:TRACE -- [UnrealIRCd Support] ping sent: 1714312453255578660
06:54:13.279:TRACE -- [Ergo Testnet] pong received: 1714312453122974990
06:54:13.341:TRACE -- [UnrealIRCd Support] pong received: 1714312453255578660
...
11:32:13.122:TRACE -- [Ergo Testnet] ping sent: 1714329133122840978
11:32:13.255:TRACE -- [UnrealIRCd Support] ping sent: 1714329133255467699
11:32:13.281:TRACE -- [Ergo Testnet] pong received: 1714329133122840978
11:32:13.345:TRACE -- [UnrealIRCd Support] pong received: 1714329133255467699
11:34:13.122:TRACE -- [Ergo Testnet] ping sent: 1714329253122487025
11:34:13.255:TRACE -- [UnrealIRCd Support] ping sent: 1714329253255080454
11:34:13.278:TRACE -- [Ergo Testnet] pong received: 1714329253122487025
11:34:13.346:TRACE -- [UnrealIRCd Support] pong received: 1714329253255080454
11:36:13.122:TRACE -- [Ergo Testnet] ping sent: 1714329373122106113
11:36:13.255:TRACE -- [UnrealIRCd Support] ping sent: 1714329373255571875
11:36:13.283:TRACE -- [Ergo Testnet] pong received: 1714329373122106113
11:36:13.344:TRACE -- [UnrealIRCd Support] pong received: 1714329373255571875
11:38:13.122:TRACE -- [Ergo Testnet] ping sent: 1714329493122130951
11:38:13.255:TRACE -- [UnrealIRCd Support] ping sent: 1714329493255568379
11:38:13.272:TRACE -- [Ergo Testnet] pong received: 1714329493122130951
11:38:13.370:TRACE -- [UnrealIRCd Support] pong received: 1714329493255568379
11:38:26.951:TRACE -- [InspIRCd Testnet] ping sent: 1714329506951924654
11:38:26.952:WARN -- [InspIRCd Testnet] disconnected: Closing link: ([email protected]) [Ping timeout: 300 seconds]

It seems that something odd is happening to the loop in run in stream.rs. In order to try and get a better idea of the source of the stall, I added logging before and after various awaits in that loop. Later, when using my normal config (connected to Libera and OFTC via ZNC) I found:

02:42:55.708:DEBUG -- [Libera] match state
02:42:55.708:DEBUG -- [Libera] select.next.await
02:43:23.988:DEBUG -- [OFTC] select.next.awaited
02:43:23.988:DEBUG -- [OFTC] PONG await
02:43:23.988:DEBUG -- [OFTC] PONG awaited
02:43:23.988:DEBUG -- [OFTC] match state
02:43:23.988:DEBUG -- [OFTC] select.next.await
02:43:24.535:DEBUG -- [OFTC] select.next.awaited
02:43:24.535:TRACE -- [OFTC] ping sent: 1714383804535861529
02:43:24.535:DEBUG -- [OFTC] PING await
02:43:24.535:DEBUG -- [OFTC] PING awaited
02:43:24.535:DEBUG -- [OFTC] match state
02:43:24.535:DEBUG -- [OFTC] select.next.await
02:43:24.621:DEBUG -- [OFTC] select.next.awaited
02:43:24.621:TRACE -- [OFTC] pong received: 1714383804535861529
02:43:24.621:DEBUG -- [OFTC] match state
02:43:24.621:DEBUG -- [OFTC] select.next.await
02:43:54.077:DEBUG -- [OFTC] select.next.awaited
02:43:54.079:DEBUG -- [OFTC] PONG await
02:43:54.079:DEBUG -- [OFTC] PONG awaited
02:43:54.079:DEBUG -- [OFTC] match state
02:43:54.079:DEBUG -- [OFTC] select.next.await
02:44:24.226:DEBUG -- [OFTC] select.next.awaited
02:44:24.226:DEBUG -- [OFTC] PONG await
02:44:24.226:DEBUG -- [OFTC] PONG awaited
02:44:24.226:DEBUG -- [OFTC] match state
02:44:24.226:DEBUG -- [OFTC] select.next.await
02:44:54.366:DEBUG -- [OFTC] select.next.awaited
02:44:54.366:DEBUG -- [OFTC] PONG await
02:44:54.366:DEBUG -- [OFTC] PONG awaited
02:44:54.366:DEBUG -- [OFTC] match state
02:44:54.366:DEBUG -- [OFTC] select.next.await
02:45:24.508:DEBUG -- [OFTC] select.next.awaited
02:45:24.508:DEBUG -- [OFTC] PONG await
02:45:24.508:DEBUG -- [OFTC] PONG awaited
02:45:24.508:DEBUG -- [OFTC] match state
02:45:24.508:DEBUG -- [OFTC] select.next.await
02:45:24.535:DEBUG -- [OFTC] select.next.awaited
02:45:24.535:TRACE -- [OFTC] ping sent: 1714383924535898570
02:45:24.535:DEBUG -- [OFTC] PING await
02:45:24.535:DEBUG -- [OFTC] PING awaited
02:45:24.536:DEBUG -- [OFTC] match state
02:45:24.536:DEBUG -- [OFTC] select.next.await
02:45:24.607:DEBUG -- [OFTC] select.next.awaited
02:45:24.607:TRACE -- [OFTC] pong received: ZNC
02:45:24.607:DEBUG -- [OFTC] match state
02:45:24.607:DEBUG -- [OFTC] select.next.await
02:45:54.588:DEBUG -- [OFTC] select.next.awaited
02:45:54.588:DEBUG -- [OFTC] PONG await
02:45:54.588:DEBUG -- [OFTC] PONG awaited
02:45:54.588:DEBUG -- [OFTC] match state
02:45:54.588:DEBUG -- [OFTC] select.next.await
02:46:24.614:DEBUG -- [OFTC] select.next.awaited
02:46:24.614:DEBUG -- [OFTC] PONG await
02:46:24.614:DEBUG -- [OFTC] PONG awaited
02:46:24.614:DEBUG -- [OFTC] match state
02:46:24.614:DEBUG -- [OFTC] select.next.await
02:46:54.615:DEBUG -- [OFTC] select.next.awaited
02:46:54.615:DEBUG -- [OFTC] PONG await
02:46:54.615:DEBUG -- [OFTC] PONG awaited
02:46:54.615:DEBUG -- [OFTC] match state
02:46:54.615:DEBUG -- [OFTC] select.next.await
02:47:24.535:DEBUG -- [OFTC] select.next.awaited
02:47:24.535:TRACE -- [OFTC] ping sent: 1714384044535861903
02:47:24.535:DEBUG -- [OFTC] PING await
02:47:24.536:DEBUG -- [OFTC] PING awaited
02:47:24.536:DEBUG -- [OFTC] match state
02:47:24.536:DEBUG -- [OFTC] select.next.await
02:47:24.625:DEBUG -- [OFTC] select.next.awaited
02:47:24.625:TRACE -- [OFTC] pong received: 1714384044535861903
02:47:24.625:DEBUG -- [OFTC] match state
02:47:24.625:DEBUG -- [OFTC] select.next.await
02:47:54.724:DEBUG -- [OFTC] select.next.awaited
02:47:54.724:DEBUG -- [OFTC] PONG await
02:47:54.724:DEBUG -- [OFTC] PONG awaited
02:47:54.724:DEBUG -- [OFTC] match state
02:47:54.725:DEBUG -- [OFTC] select.next.await
02:48:16.577:DEBUG -- [OFTC] select.next.awaited
02:48:16.577:DEBUG -- [OFTC] match state
02:48:16.577:DEBUG -- [OFTC] select.next.await
02:48:16.577:DEBUG -- [OFTC] select.next.awaited
02:48:16.577:DEBUG -- [OFTC] Batch await
02:48:16.577:DEBUG -- [OFTC] Batch awaited
02:48:16.577:DEBUG -- [OFTC] match state
02:48:16.577:DEBUG -- [OFTC] select.next.await
02:49:55.705:TRACE -- Message received => ...
02:49:55.711:TRACE -- Message received => ...
02:49:55.716:TRACE -- Message received => ...
02:49:55.722:TRACE -- Message received => ...
02:49:55.727:TRACE -- Message received => ...
02:49:55.732:TRACE -- Message received => ...
02:49:55.737:TRACE -- Message received => ...
02:49:55.743:TRACE -- Message received => ...
02:49:55.748:TRACE -- Message received => ...
02:49:55.753:TRACE -- Message received => ...
02:49:55.758:TRACE -- Message received => ...
02:49:55.763:TRACE -- Message received => ...
02:49:55.768:TRACE -- Message received => ...
02:49:55.774:TRACE -- Message received => ...
02:49:55.883:DEBUG -- [OFTC] select.next.awaited
02:49:55.883:DEBUG -- [OFTC] PONG await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] PONG await
02:49:55.883:DEBUG -- [OFTC] PONG awaited
02:49:55.883:DEBUG -- [OFTC] match state
02:49:55.883:DEBUG -- [OFTC] select.next.await
02:49:55.883:DEBUG -- [OFTC] select.next.awaited
02:49:55.883:DEBUG -- [OFTC] PONG await
02:49:55.883:DEBUG -- [OFTC] PONG awaited
02:49:55.883:DEBUG -- [OFTC] match state
02:49:55.883:DEBUG -- [Libera] PONG awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [OFTC] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [OFTC] select.next.awaited
02:49:55.883:DEBUG -- [OFTC] PONG await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [OFTC] PONG awaited
02:49:55.883:DEBUG -- [OFTC] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [OFTC] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [OFTC] select.next.awaited
02:49:55.883:DEBUG -- [Libera] PONG await
02:49:55.883:DEBUG -- [OFTC] PONG await
02:49:55.883:DEBUG -- [Libera] PONG awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [OFTC] PONG awaited
02:49:55.883:DEBUG -- [OFTC] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [OFTC] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [OFTC] select.next.awaited
02:49:55.883:TRACE -- [OFTC] ping sent: 1714384195883876805
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [OFTC] PING await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [OFTC] PING awaited
02:49:55.883:DEBUG -- [OFTC] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [OFTC] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] PONG await
02:49:55.883:DEBUG -- [Libera] PONG awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] PONG await
02:49:55.883:DEBUG -- [Libera] PONG awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.883:DEBUG -- [Libera] match state
02:49:55.883:DEBUG -- [Libera] select.next.await
02:49:55.883:DEBUG -- [Libera] select.next.awaited
02:49:55.884:DEBUG -- [Libera] match state
02:49:55.884:DEBUG -- [Libera] select.next.await
02:49:55.884:DEBUG -- [Libera] select.next.awaited
02:49:55.884:DEBUG -- [Libera] PONG await
02:49:55.884:DEBUG -- [Libera] PONG awaited
02:49:55.884:DEBUG -- [Libera] match state
02:49:55.884:DEBUG -- [Libera] select.next.await
02:49:55.884:DEBUG -- [Libera] select.next.awaited
02:49:55.884:DEBUG -- [Libera] PONG await
02:49:55.884:DEBUG -- [Libera] PONG awaited
02:49:55.884:DEBUG -- [Libera] match state
02:49:55.884:DEBUG -- [Libera] select.next.await
02:49:55.884:DEBUG -- [Libera] select.next.awaited
02:49:55.884:WARN -- [Libera] disconnected: Closing link: Timeout
02:49:55.884:DEBUG -- [Libera] match state

I've cut out the message contents to try to keep the log from being too noisy, but from context I can tell they are Libera messages not OFTC (e.g. one is a QUIT message from user halloy151). As far as I can tell Libera was waiting on select.next().await.expect("stream input"), and as a result missed pinging the bouncer and timed out.

I suspect this is the ultimate source behind the weirdness in issue #226, only now it's happening more often. I suspect it's happening more often because away-notify is enabled, but I have observed it happening when away-notify was not enabled.

Edit: For context, this is on Fedora Asahi Remix 39 under GNOME.

andymandias avatar Apr 29 '24 22:04 andymandias

Short update to say this is sometimes happening while in the same workspace as Halloy, but with the window hidden behind other windows. Have not (yet) seen it happen while the Halloy window is visible.

andymandias avatar Apr 30 '24 00:04 andymandias

Thanks for digging into this, @andymandias. It is not something i've noticed on macOS and Windows 🤔

casperstorm avatar Apr 30 '24 09:04 casperstorm

@andymandias thanks for the report. I'm hesitant to put too much investment into any issues related to Asahi if I'm being honest. As you know, it'll have some unique set of driver issues and what not. But we should definitely try to reproduce this on a standard Linux distro / compatible hardware.

tarkah avatar Apr 30 '24 13:04 tarkah

Totally reasonable @tarkah! If a path forward is not self-evident then let me keep digging into the particulars. I'll try to reproduce on my plain x86_64 Ubuntu machine, and I also plan to see if it reproduces in other DEs when time allows. (My initial plan was to ignore it, but the potential for dropped messages forces me to look into it unfortunately.)

andymandias avatar Apr 30 '24 18:04 andymandias

I don't think it's related to Asahi, I'm seeing the same issue on x86_64 on Archlinux

anarsoul avatar May 04 '24 19:05 anarsoul

@anarsoul are you running under X11 or Wayland? I have a hunch it's Wayland related, but haven't been able to test yet.

andymandias avatar May 04 '24 19:05 andymandias

@anarsoul are you running under X11 or Wayland? I have a hunch it's Wayland related, but haven't been able to test yet.

Wayland

anarsoul avatar May 04 '24 19:05 anarsoul

I have the same issue. Also using wayland. I have tried Konversation instead of Halloy and there it doesn't happen. So from that it seems to me like this is a problem typical to Halloy, and also that it should be somehow fixable.

Rutherther avatar May 17 '24 13:05 Rutherther

Another +1 here. I'm running Manjaro 24.0 GNOME 46.1, using Wayland.

codemacabre avatar May 17 '24 15:05 codemacabre

I'm not sure it's the same issue but on MacOS I've got lot of time out (os error 60).

Most of the time it happens when I lock my screen.

I thought it was because the Macbook would entered some kind of sleeping mode when the screen is locked but I've disabled this option in the system settings.

devantoine avatar Jul 04 '24 15:07 devantoine

Hey all, can you test the fix here? https://github.com/squidowl/halloy/pull/412

I'm fairly certain this will fix it but would love to get confirmation before we merge.

tarkah avatar Jul 10 '24 15:07 tarkah

Fix #412 is a definite improvement for me, and possibly a complete fix. No timeouts from Libera or OFTC anymore (connected to both via soju), but I'm still getting timeouts from Ergo (connected directly). At the moment I'm not sure whether that's an Ergo thing or a Halloy thing. Will test direct connections to other servers when I get the chance.

andymandias avatar Jul 11 '24 03:07 andymandias

Still getting timeouts with direct connections (Ergo, Libera, & OFTC), but much less frequent. And haven't noticed any timeouts with soju still.

Added a bunch of debug prints around the various awaits in the stream run loop, and it doesn't look like it's getting stalled (as expected). But it seems like the server ping might not be making it through? The log looks like

  18:30:22.141:DEBUG -- stream.connection.send(command!("PING", token)).awaiting
  18:30:22.141:DEBUG -- stream.connection.send(command!("PING", token)).awaited
  18:30:22.141:DEBUG -- select.next().awaiting
  18:30:22.223:DEBUG -- select.next().awaited
  18:30:22.223:TRACE -- [OFTC] pong received: 1720920622141874139
  18:30:22.223:DEBUG -- select.next().awaiting
  18:30:22.298:DEBUG -- select.next().awaited
  18:30:22.298:TRACE -- [Libera] pong received: 1720920622129489549
  ...
  18:30:34.311:DEBUG -- select.next().awaiting
  18:30:34.311:DEBUG -- select.next().awaited
  18:30:34.311:DEBUG -- select.next().awaiting
  18:30:44.945:DEBUG -- select.next().awaited
  18:30:44.945:DEBUG -- select.next().awaiting
  18:30:44.945:DEBUG -- select.next().awaited
  18:30:44.945:DEBUG -- select.next().awaiting
  18:32:09.597:DEBUG -- select.next().awaited
  18:32:08.064:DEBUG -- select.next().awaited
  18:33:02.634:DEBUG -- select.next().awaiting
  18:33:25.475:DEBUG -- select.next().awaiting
  18:34:13.970:DEBUG -- select.next().awaited
  18:34:12.098:DEBUG -- select.next().awaited
  ...
  18:39:06.761:DEBUG -- select.next().awaiting
  18:39:06.761:DEBUG -- select.next().awaited
  18:39:06.761:DEBUG -- stream.connection.send(command!("PONG", token)).awaiting
  18:39:06.761:DEBUG -- stream.connection.send(command!("PONG", token)).awaited
  ...
  18:39:06.766:WARN -- [OFTC] disconnected: Closing Link: 2603:8001:433d:bd84::1551 (Ping timeout: 480 seconds)

where ... are me cutting out a bunch of select.next().await* lines for brevity.

andymandias avatar Jul 14 '24 08:07 andymandias

Hmm interesting. Was there a previous instance of us sending a pong in the logs within 480 seconds of 18:39:06?

We're clearly responding to pings via pongs. I'm curious what the interval of time is between OFTC sending pings to us and if it's very close to 480 seconds so even a slight delay on our end puts it over

tarkah avatar Jul 14 '24 16:07 tarkah

Hmm interesting. Was there a previous instance of us sending a pong in the logs within 480 seconds of 18:39:06?

We're clearly responding to pings via pongs. I'm curious what the interval of time is between OTC sending pings to us and if it's very close to 480 seconds so even a slight delay on our end puts it over

tarkah avatar Jul 14 '24 16:07 tarkah

Looks like that is the first pong in the log. Attached the log most recently quoted from, in case I'm missing something. timeout.log

andymandias avatar Jul 14 '24 21:07 andymandias

I'm experiencing this problem on halloy 2024.10 (4ff56fd) on Linux under Walyand.

AlvaroParker avatar Aug 20 '24 02:08 AlvaroParker

It seems this bug is still causing some trouble for some Linux users, so i've reopened the issue.

casperstorm avatar Aug 29 '24 06:08 casperstorm

I'm getting a bunch of re-connections that look like this:

21:07  ∙ connection to server lost (Closing Link: *my-ipv6* (Ping timeout: 265 seconds))
21:07  ∙ connection to server restored

Is it the same bug? They happen when Halloy is not visible — when the screen is locked or when I'm working on another workspace. This happens to Libera Chat and OFTC.

  • Sway 1.9 (Wayland)
  • Halloy 2024.10 (Flatpak)
  • Void Linux (glibc, amd64)

o-alquimista avatar Sep 02 '24 00:09 o-alquimista

Hey all, We have a branch with a potential fix to the timeouts: https://github.com/squidowl/halloy/pull/556

Let me know if any has some available time to test it.

casperstorm avatar Sep 12 '24 15:09 casperstorm

Hey all, We have a branch with a potential fix to the timeouts: #556

Let me know if any has some available time to test it.

I'm gonna give it a try.

o-alquimista avatar Sep 12 '24 18:09 o-alquimista

@o-alquimista just did a small change to the branch, make sure you have the newest. And HUGE thanks for testing 🙏🏻

casperstorm avatar Sep 12 '24 20:09 casperstorm

@casperstorm getting the following panic when running on Wayland/Hyprland. Not happening on main branch:

thread 'main' panicked at data/src/stream.rs:79:31:
there is no reactor running, must be called from the context of a Tokio 1.x runtime
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

AlvaroParker avatar Sep 12 '24 22:09 AlvaroParker

@casperstorm getting the following panic when running on Wayland/Hyprland. Not happening on main branch:

thread 'main' panicked at data/src/stream.rs:79:31:
there is no reactor running, must be called from the context of a Tokio 1.x runtime
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Thanks for the report, let me fix that real quick

tarkah avatar Sep 12 '24 22:09 tarkah

@AlvaroParker I've fixed the panic, please pull and try again

tarkah avatar Sep 12 '24 22:09 tarkah

@tarkah Looks like the bug is gone! I left it on a different workspace for a while (1.5 hours) and the connection was persistent. Thanks!

Btw the files data/src/client.rs and src/buffer/channel.rs are not formatted (I executed cargo fmt and it modified those two files)

AlvaroParker avatar Sep 13 '24 00:09 AlvaroParker

Works for me, too. 2 hours of uninterrupted connection, focused on another workspace and with the screen locked.

o-alquimista avatar Sep 13 '24 00:09 o-alquimista

Awesome thank you both for confirming! I'm glad we're getting this one fixed.

tarkah avatar Sep 13 '24 02:09 tarkah