You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I initially filed this as an issue against my client, which uses this framework. At the time of filing that issue I'd encountered the bug multiple times, but only ever saw it reproduce when a very long input line was broken up before being sent. As I note in that issue description, I suspected it might be in this framework because I don't recall ever writing the code to break lines apart.
Upon further investigation I found that I do not break those lines apart (here & here are the call sites for IRC.Client functions that send messages, directly passing along the full message line).
Digging in further I then came upon the eventual Connection.writeLine() function tasked with actually emitting lines onto the connected socket. This method calls the underlying net.Socket.write() method without checking the return value nor passing in a functional callback for notification of when the data has actually been written. Indeed, this would explain the behavior I saw.
The text was updated successfully, but these errors were encountered:
I initially filed this as an issue against my client, which uses this framework. At the time of filing that issue I'd encountered the bug multiple times, but only ever saw it reproduce when a very long input line was broken up before being sent. As I note in that issue description, I suspected it might be in this framework because I don't recall ever writing the code to break lines apart.
Upon further investigation I found that I do not break those lines apart (here & here are the call sites for IRC.Client functions that send messages, directly passing along the full message line).
That led me to dig into the IRC.Client code, and there I found clearly where the line break-up is taking place.
Digging in further I then came upon the eventual
Connection.writeLine()
function tasked with actually emitting lines onto the connected socket. This method calls the underlyingnet.Socket.write()
method without checking the return value nor passing in a functional callback for notification of when the data has actually been written. Indeed, this would explain the behavior I saw.The text was updated successfully, but these errors were encountered: