7.0 KiB
rippled Server Won't Start (Troubleshooting)
This page explains possible reasons the rippled server does not start successfully, and how to fix them.
These instructions assume you have installed rippled on a supported platform.
File Descriptors Limit
On some Linux variants, you may get an error message such as the following when trying to run rippled:
WARNING: There are only 1024 file descriptors (soft limit) available, which
limit the number of simultaneous connections.
This occurs because the system has a security limit on the number of files a single process may open, but the limit is set too low for rippled. To fix the problem, root access is required. Increase the number of files rippled is allowed to open with the following steps:
-
Add the following lines to the end of your
/etc/security/limits.conffile:* soft nofile 5200 * hard nofile 10240 -
Check that the number of files that can be opened is now
10240:ulimit -HnThe command prints the hard limit on the number of open files, which should be 10240.
-
Try starting
rippledagain.systemctl start rippled -
If
rippledstill does not start, open/etc/sysctl.confand add the following line to the bottom of the file:fs.file-max = 65536
Failed to open /etc/opt/ripple/rippled.cfg
If rippled crashes on startup with an error such as the following, it means that rippled cannot read its config file:
Loading: "/etc/opt/ripple/rippled.cfg"
Failed to open '"/etc/opt/ripple/rippled.cfg"'.
Terminating thread rippled: main: unhandled St13runtime_error 'Can not create "/var/opt/ripple"'
Aborted (core dumped)
Possible solutions:
-
Check that
/etc/opt/ripple/rippled.cfgexists and therippleduser has read permissions to the file. (Assuming you use therippleduser to run therippledprocess, and you want to use the default location for the config file.) -
Create a config file that can be read by the
rippleduser to$HOME/.config/ripple/rippled.cfg(where$HOMEpoints to therippleduser's home directory).Tip: The
rippledrepository contains an examplerippled.cfgfile which is provided as the default config when you do an RPM installation. If you do not have the file, you can copy it from there. -
Specify the path to your preferred config file using the
--confcommandline option.
Failed to open validators file
If rippled crashes on startup with an error such as the following, it means it can read its primary config file, but that config file specifies a separate validators config file (typically named validators.txt), which rippled cannot read.
Loading: "/home/rippled/.config/ripple/rippled.cfg"
Terminating thread rippled: main: unhandled St13runtime_error 'The file specified in [validators_file] does not exist: /home/rippled/.config/ripple/validators.txt'
Aborted (core dumped)
Possible solutions:
-
Check that the
[validators.txt]file exists and therippleduser has permissions to read it.Tip: The
rippledrepository contains an examplevalidators.txtfile which is provided as the default config when you do an RPM installation. If you do not have the file, you can copy it from there. -
Edit your
rippled.cfgfile and modify the[validators_file]setting to have the correct path to yourvalidators.txt(or equivalent) file. Check for extra whitespace before or after the filename. -
Edit your
rippled.cfgfile and remove the[validators_file]setting. Add validator settings directly to yourrippled.cfgfile. For example:[validator_list_sites] https://vl.ripple.com [validator_list_keys] ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734
Cannot create database path
If rippled crashes on startup with an error such as the following, it means the server does not have write permissions to the [database_path] from its config file.
Loading: "/home/rippled/.config/ripple/rippled.cfg"
Terminating thread rippled: main: unhandled St13runtime_error 'Can not create "/var/lib/rippled/db"'
Aborted (core dumped)
The paths to the configuration file (/home/rippled/.config/ripple/rippled.cfg) and the database path (/var/lib/rippled/db) may vary depending on your system.
Possible solutions:
-
Run
rippledas a different user that has write permissions to the database path printed in the error message. -
Edit your
rippled.cfgfile and change the[database_path]setting to use a path that therippleduser has write permissions to. -
Grant the
rippleduser write permissions to the configured database path.
State DB Error
The following error can occur if the rippled server's state database is corrupted (possibly as the result of being shutdown unexpectedly):
2018-Aug-21 23:06:38.675117810 SHAMapStore:ERR state db error:
writableDbExists false archiveDbExists false
writableDb '/var/lib/rippled/db/rocksdb/rippledb.11a9' archiveDb '/var/lib/rippled/db/rocksdb/rippledb.2d73'
To resume operation, make backups of and remove the files matching /var/lib/rippled/db/state* and contents of the directory /var/lib/rippled/db/rocksdb
Terminating thread rippled: main: unhandled St13runtime_error 'state db error'
The easiest way to fix this problem is to delete the databases entirely. You may want to back them up elsewhere instead. For example:
mv /var/lib/rippled/db /var/lib/rippled/db-bak
Or, if you are sure you don't need the databases:
rm -r /var/lib/rippled/db
Tip: It is generally safe to delete the rippled databases, because any individual server can re-download ledger history from other servers in the XRP Ledger network. If you are using clustering, be sure your servers each have a unique [node_seed] configured first; if not, servers may not be recognized as part of the cluster after you restart them.
Online Delete is Less Than Ledger History
An error message such as the following indicates that the rippled.cfg file has contradictory values for [ledger_history] and online_delete.
Terminating thread rippled: main: unhandled St13runtime_error 'online_delete must not be less than ledger_history (currently 3000)
The [ledger_history] setting represents how many ledgers of history the server should seek to back-fill. The online_delete field (in the [node_db] stanza) indicates how many ledgers of history to keep when dropping older history. The online_delete value must be equal or larger than [ledger_history] to prevent the server from deleting historical ledgers that it is also trying to download.
To fix the problem, edit the rippled.cfg file and change or remove either the [ledger_history] or online_delete options.