matrix-org / matrix-ircd

An IRCd implementation backed by Matrix.
Apache License 2.0
224 stars 41 forks source link

Loses outbound messages #44

Open madduck opened 7 years ago

madduck commented 7 years ago

There have now been numerous times that messages typed into my IRC client never arrived at the matrix homeserver. I have now turned on raw logging in the client in the hope to track this down.

madduck commented 7 years ago

Right now, there is such a situation. The IRC client reports a lag of 20 and rising, although IRC client and matrix-ircd are on the same machine.

The ircd process seems to be quite aggressively using the CPU, even though hardly anything is happening, according to the logs.

  PID USER      PR  NI %MEM    VIRT    RES    SHR P %CPU     TIME+ S COMMAND
 4700 madduck   20   0 57,1  656492 289152   5232 0 85,6   1531:26 R target/debug/matrix-ircd --url https://matr+

Okay, it's running in debug mode, but…

I just received a message from a peer on Matrix, and it got relayed to the IRC channel alright. However, when I reply, the following happens. First, the client reports sending the message:

<< PRIVMSG #xxxxxxxx:madduck.net test message

Next, matrix-ircd reports receiving it:

Got msg, channel: #xxxxxxxx:madduck.net, room_id: !xxxxxxxxxxxxxxxxxx:madduck.net

But nothing appears on Matrix, and the homeserver.log only shows a presence update, nothing else.

Ten minutes later — meanwhile the lag according to Irssi is at 19:42 — I then saw the following two lines:

  Mar 29 12:23:59.637 WARN Failed to send
Mar 29 12:24:11.812 INFO Error doing sync, error: EOF while waiting for new response

Now I'm restarting. Please let me know what I can collect the next time this happens…

lep commented 4 years ago

Still happening in latest commit as of writing (83eb629), that is both 100% CPU and missing messages. I would suggest to report the failed delivery to the irc user and not just to logs; it's very frustrating to lose messages unknowningly.

Losing messages also happens w/o 100% CPU fyi