-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting Guide
From maintaining NuVotifier for some time, I receive a lot of the same questions. I try to answer them the best I can in this document.
Votifier v1 isn't smart enough to recover from errors. Most server list Votifier implementations ignore connection errors and report the vote as a success. Thus when using Votifier v1, there is no way to be sure that a vote is ever received by the receiving server.
Usually when NuVotifier doesn't report anything in the logs, the voting website is unable to connect to NuVotifier in the first place. The following things are usually to blame:
- NuVotifier did not enable. Please check your startup logs and refer to other entries in this FAQ to determine the fix.
- NuVotifier couldn't bind to the IP and port combination you chose. Check your start-up logs, determine if the IP and port is already in use, change them (or kill the offending process) and try again.
- NuVotifier is not bound to the correct IP - Check the bind ip parameter in the
NuVotifier configuration. If that doesn't work, try
0.0.0.0- this will tell NuVotifier to bind to ALL IPs it can. - You entered the port in incorrectly - double check the NuVotifier port in the configuration.
- You have a firewall in the way - If you are running on Windows, try to
temporarily disable the firewall. Linux has a couple of different of culprits,
including
iptablesandufw. - You are using a shared host. Try asking the shared host to open a port for Votifier use.
- You are home-hosting or behind a NAT and didn't port forward.
- Check your logs again. Check them very closely. Read each line and think about what it is telling you.
- Your server successfully received the vote, but nothing happened because you don't have a vote listener installed. Install one and try again.
It depends on what exception you got:
This means that the voting website 'closed' the TCP connection to NuVotifier before it could read the entire Vote message. NuVotifier can't fix this, because this is an implementation issue with voting lists. If you are receiving this exception, report this to the voting list in question, not NuVotifier.
If you are coming from a server list from a report of this error, consider implementing the Votifier v2 protocol - it is more secure, easier to implement, easier to diagnose, and is more resilient to network issues like this. Some implementations for popular languages already exist including PHP, Node.js, Golang, and Java.
This means that your computer's operating system closed the TCP connection to NuVotifier before it could read the entire Vote message. Usually this is due to a firewall - disable firewalls on your system and try again.
If you get this, then you are likely running Sponge and are forwarding votes from a proxy. You have an old version of NuVotifier (most likely 2.3.2.2) which made some incorrect assumptions about channel buffers. To fix the problem, you will need to download the latest version of NuVotifier.
Other errors don't show up commonly enough - report an issue with your configurations and server logs.
NuVotifier comes with two forwarding modes: proxy and pluginMessaging.
You should most likely use pluginMessaging as it has the most features
and is simple to set up, unless your network's topology is complex.
First, make sure you are using the correct forwarding mode for your setup - you
could save yourself a lot of headaches by using pluginMessaging instead of proxy
mode. If you are still having issues, see the following sections.
Plugin Messaging is a lot more straight forward than other forwarding methods. If it does not work, check the following things:
- Is the plugin messaging channel the same everywhere? Make sure it is lower case and includes a colon! (Previous NuVotifier versions defaulted to an invalid channel before 1.13 was released.)
- Is the server you are having issues with either on the blacklist or not on the whitelist?
A lot more can go wrong when using proxy. A lot of people do not set it up correctly. If you are using proxy mode, make absolutely sure you actually need proxy mode. (The general rule is that if you have to ask if you need it, you probably don't.) With that being said, here are some things you can check:
- For each backend server, diagnose connection issues according to simply not getting votes - usually the server is unable to bind to a port, or there is another issue related to firewalls, ports, and that sort of thing.
- Ensure you are using the v2 Votifier token generated by each server. This is
NOT the key found in the
rsa/folder. - Check ALL of your logs. One of them says something. It doesn't? You are lying. ONE OF THEM DOES. Check them again.
The answer is yes if the original Votifier supported it.
The only exception are legacy listener classes (those placed in the listeners
directory in the plugin folder). These listeners are legacy and almost none of
these listeners are still in active use.
Reloads are not supported by NuVotifier. Restart your server, and use
/nvreload in the console to reload the NuVotifier configuration.
NuVotifier by itself cannot lag your server, as its only main thread task is to call your vote listener. Your vote listener is likely taking a long time to process votes.