-
Notifications
You must be signed in to change notification settings - Fork 0
Description
SpikeBot appears to reliably crash or deadlock when asked to "!explain :3".
Reproduction
The situation can be recreated by doing the following:
- Start SpikeBot.
- In any channel SpikeBot is participating in, send "!explain :3" verbatim.
Effect
SpikeBot is unresponsive after this command, and will generally ping timeout within the window given by the IRC server. The last line emitted is the "Positive:" karma description.
Speculation
It is unknown what influence the karma query ":3" has to do with this crash; according to source in modules/karma.js, there should be no difference in handling ":3" and any other string that could possibly be encountered by the karma module. ":3" does not, to my knowledge, have any negative karma, but line 136 should not be an issue in any case, especially since other non-negative karma topics appear elsewhere and do not cause this issue (regression test: find an unknown topic, add one karma, and explain it).
SpikeBot has only had this issue as of late; this corresponds roughly to the time in which RoBot has been able to communicate with SpikeBot. RoBot has been entirely refitted to deal with Unicode entirely (forced to UTF-8; most IRC clients parse this properly). It is unknown how Node.js (and JS in general) deals with Unicode strings, but it is a possible issue. RoBot, however, credits Skype usernames, which should not contain non-ASCII characters; Unicode may, however, be introduced by a user into a comment without restriction.
If this is an avenue of investigation, a search for non-ASCII Unicode glyphs under ":3" (particularly, its negative part, since positive prints) might be warranted. (The implementation of the "store" appears to be delegated to the "json-store" module, whose implementation is unknown.)