Eco-logical edited this page Apr 17, 2017 · 1 revision

Verlihub How-to's

User Limits

The ulimit command provides control over the resources available to the shell and/or to processes started by it, on systems that allow such control. If you have a hub with thousands of users, they can be disconnected from the hub because of ulimit.

If you run the hub as root you can't set the ulimit to an unlimited value:

ulimit -n <users>

should be a number and if you set it to 20000, Linux will limit the max number of open connections to 20000.

If you are running the hub as normal user, you must tell the system to allow a soft and hard limit for that user. In this case you need to edit the file /etc/security/limits.conf and adding the following lines:

username soft nofile 20480 
username hard nofile 20480 

where username is the name of the user with whom you are running the hub. Then next time you login with that user and type ulimit -n command, you will see the new limit.

Updating Lua

If you have installed Lua 5.0.x library from source, current Makefile does not support uninstall target; that means you can't uninstall it automactly by typing:

make uninstall

Suppose Lua library is installed in default location (/usr/local), the following files are installed:

./bin/lua (the interpreter)

./bin/luac (the compiler)

liblua.a and liblualib.a in ./lib (the libraries)

lua.h and lualib.h in ./include. (include files)

To remove them type (as root):

cd /usr/local

rm bin/lua bin/luac lib/liblua.a lib/liblualib.a include/lua.h include/lualib.h

And it's done. Now you can upgrade to Lua 5.1.x library if you want.

GeoIP

This guide will help you to update GeoIP table automatically. Maxmind's GeoIP database is usually updated at the begining of each month. With crontab you can schedule automatic updates periodically using vh script.

Open crontab file with your favorite editor using:

crontab -e

Now append at the end of the file this line:

0 0 1 * * /usr/local/vh --geoip >/dev/null

or

@monthly /usr/local/vh --geoip >/dev/null

Change path to script based on you installation folder. Now crontab will update table every month. To disable it just remove or comment the added line.

Debug

Here a guide how to debug Verlihub in case it crashes.

First of all install the debugger tool gdb. Then start verlihub with:

gdb verlihub 2>&1 | tee ~/gdb-verlihub.txt

It will prompt you in gdb console something like this:

netcelli@amd ~ $ gdb verlihub 2>&1 | tee ~/gdb-verlihub.txt

GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu"...
(gdb)

Now start the process by typing "run" and press enter. GDB will start Verlihub in debug mode, that means you can see Verlihub logs in your console. Wait for a crash and in gdb console type:

(gdb) backtrace full
(gdb) info registers
(gdb) x/16i $pc
(gdb) thread apply all backtrace
(gdb) quit

This will save a lot of debug info in gdb-verlihub.txt file to understand why the process just crashed. Send that file to Git hub issues page.

Also since version 1.0.0 hub will attempt to send crash backtrace to Verlihub Crash Server via HTTP protocol, or in case of failure write it to error log file.

Translations

You can start translating Verlihub in your own language on Verlihub 1.0.0.0 @ Transifex. Click on the links to see status of the translation languages:

Core translation status | Plugins translation status

In order to apply existing locale to your hub, you need to put following line into dbconfig file:

locale=ru_RU.CP1251

This means that we are using Russian language ru in Russian Federation RU with CP1251 character encoding. Please read more about locales.

Then you need to generate that locale in your OS. Following example can be used on Debian and Ubuntu:

locale-gen ru_RU.CP1251
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251

Please use correct character encoding for each language used. Here you can find a list of available languages together with corresponding character encodings: LANGS

You can’t perform that action at this time.
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.
Press h to open a hovercard with more details.