For better URLs, the content folder has been renamed 'docs' and all other files have been moved up a level. Also, non-docs images have been moved to the static folder at the top level where they belong. Many relative paths had to be fixed to make this work.
13 KiB
html, parent, seo, labels
| html | parent | seo | labels | |||
|---|---|---|---|---|---|---|
| server-wont-start.html | troubleshoot-the-rippled-server.html |
|
|
rippledサーバーが起動しない
このページでは、rippledサーバーが起動しない際に考えられる原因とその修正方法を説明します。
以下の手順では、サポートされているプラットフォームにrippledがインストールされていることを前提としています。
ファイル記述子の制限
一部のLinuxバリアントでは、rippledを実行しようとすると以下のようなエラーメッセージが出力されることがあります。
WARNING: There are only 1024 file descriptors (soft limit) available, which
limit the number of simultaneous connections.
これは、セキュリティの点からシステムで1つのプロセスが開くことができるファイルの数に制限があるが、その制限がrippledにとっては少なすぎる場合に発生します。この問題を修正するには、ルートアクセス権限が必要です。以下の手順に従い、rippledが開くことができるファイルの数を増やします。
-
次の行を
/etc/security/limits.confファイルの終わりに追加します。* soft nofile 65536 * hard nofile 65536 -
開くことができるファイルの数のハード制限が現在
65536であることを確認します。ulimit -Hnこのコマンドの出力は
65536になるはずです。 -
rippledをもう一度起動します。systemctl start rippled -
それでも
rippledが起動しない場合は、/etc/sysctl.confを開き、以下のカーネルレベル設定を付加します。fs.file-max = 65536
/etc/opt/ripple/rippled.cfgを開くことができない
rippledが起動時にクラッシュし、以下のようなエラーが出力される場合は、rippledが構成ファイルを読み取ることができません。
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)
考えられる解決策:
-
構成ファイル(デフォルトのロケーションは
/etc/opt/ripple/rippled.cfg)が存在しており、rippledプロセスを実行するユーザー(通常はrippled)にこのファイルの読み取り権限があることを確認します。 -
rippledユーザーが読み取ることができる構成ファイルを$HOME/.config/ripple/rippled.cfgに作成します($HOMEはrippledユーザーのホームディレクトリを指しています)。ヒント:
rippledリポジトリには、RPMのインストール時にデフォルトの構成として提供されるrippled.cfgサンプルファイルが含まれています。このファイルがない場合は、上記のリンク先からコピーできます。 -
--confコマンドラインオプションを使用して、使用する構成ファイルのパスを指定します。
バリデータファイルを開くことができない
rippledが起動時にクラッシュし、以下のようなエラーが出力される場合は、rippledはプライマリ構成ファイルを読み取ることはできても、この構成ファイルに指定されている別のバリデータ構成ファイル(通常はvalidators.txt)を読み取ることができません。
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)
考えられる解決策:
-
[validators.txt]ファイルが存在し、rippledユーザーにこのファイルの読み取り権限があることを確認します。ヒント:
rippledリポジトリには、RPMのインストール時にデフォルトの構成として提供されるvalidators.txtサンプルファイルが含まれています。このファイルがない場合は、上記のリンク先からコピーできます。 -
rippled.cfgファイルを編集し、[validators_file]設定を変更して、validators.txtファイル(またはこれに相当するファイル)の正しいパスを指定します。ファイル名の前後に余分な空白があるかどうかを確認します。 -
rippled.cfgファイルを編集し、[validators_file]設定を削除します。バリデータ設定をrippled.cfgファイルに直接追加します。例:[validator_list_sites] https://vl.ripple.com [validator_list_keys] ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734
データベースパスを作成できない
rippledが起動時にクラッシュし、以下のようなエラーが出力される場合は、その構成ファイルの[database_path]への書き込み権限がサーバーにありません。
Loading: "/home/rippled/.config/ripple/rippled.cfg"
Terminating thread rippled: main: unhandled St13runtime_error 'Can not create "/var/lib/rippled/db"'
Aborted (core dumped)
構成ファイルのパス(/home/rippled/.config/ripple/rippled.cfg)とデータベースのパス(/var/lib/rippled/db)は、システムによっては異なる可能性があります。
考えられる解決策:
-
エラーメッセージに出力されているデータベースパスへの書き込み権限を持つ別のユーザーとして
rippledを実行します。 -
rippled.cfgファイルを編集し、[database_path]設定を変更して、rippledユーザーに書き込み権限があるパスを使用します。 -
rippledユーザーに対し、設定されているデータベースパスへの書き込み権限を付与します。
状態DBエラー
rippledサーバーの状態データベースが破損している場合に、以下のエラーが発生する可能性があります。これは、予期しないシャットダウンが行われた場合、またはデータベースのタイプをRocksDBからNuDBに変更したが構成ファイルのpath設定と[database_path]設定を変更しなかった場合に発生する可能性があります。
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'
この問題を修正する最も簡単な方法は、データベース全体を削除することです。あるいは、データベースを任意の場所にバックアップすることもできます。例:
mv /var/lib/rippled/db /var/lib/rippled/db-bak
あるいは、データベースが必要ではないことが判明している場合は以下のようにします。
rm -r /var/lib/rippled/db
ヒント: 一般にrippledデータベースは安全に削除できます。これは、個々のサーバーはXRP Ledgerネットワーク内の他のサーバーからレジャー履歴を再ダウンロードできるためです。
あるいは、構成ファイルでデータベースのパスを変更できます。例:
[node_db]
type=NuDB
path=/var/lib/rippled/custom_nudb_path
[database_path]
/var/lib/rippled/custom_sqlite_db_path
オンライン削除の値がレジャー履歴の値よりも少ない
以下のようなエラーメッセージが出力される場合、rippled.cfgファイルの[ledger_history]とonline_deleteに矛盾する値が指定されています。
Terminating thread rippled: main: unhandled St13runtime_error 'online_delete must not be less than ledger_history (currently 3000)
[ledger_history]設定は、サーバーが埋め戻す履歴のレジャー数を表します。online_deleteフィールド([node_db]スタンザ)は、古い履歴を削除するときに維持する履歴のレジャー数を示します。サーバーがダウンロードしようとしている履歴レジャーを削除しないようにするため、online_deleteの値は[ledger_history]以上でなければなりません。
この問題を修正するには、rippled.cfgファイルを編集し、[ledger_history]オプションまたはonline_deleteオプションのいずれかを変更または削除します。([ledger_history]を省略すると、デフォルトの256レジャーバージョンに設定されるので、online_deleteを残して指定する場合は256よりも大きな値にする必要があります。online_deleteを省略すると、古いレジャーバージョンの自動削除が無効になります。)
node_sizeの値が正しくない
以下のようなエラーが出力される場合は、rippled.cfgファイルのnode_size設定の値が誤っています。
Terminating thread rippled: main: unhandled N5beast14BadLexicalCastE 'std::bad_cast'
node_sizeフィールドの有効なパラメーターはtiny、small、medium、large、hugeです。詳細は、ノードサイズを参照してください。
シャードパスが欠落している
以下のようなエラーが出力される場合は、rippled.cfgの履歴シャーディングの設定が不完全です。
Terminating thread rippled: main: unhandled St13runtime_error 'shard path missing'
設定に[shard_db]スタンザが含まれている場合、このスタンザにはpathフィールドが指定されている必要があります。このフィールドは、rippledがシャードストアーのデータを書き込むことができるディレクトリを指しています。このエラーが発生する場合は、pathフィールドが欠落しているか、誤った位置に指定されています。構成ファイルで余分な空白やスペルミスがないかどうかを確認し、シャード設定の例と比較してください。
サポート対象外のシャードストアータイプ: RocksDB
RocksDBは、履歴シャーディングのバックエンドとしてサポートされなくなりました。RocksDBシャードストアーを定義している既存の構成がある場合は、サーバーが起動に失敗します。{% badge href="https://github.com/XRPLF/rippled/releases/tag/1.3.1" %}新規: rippled 1.3.1{% /badge %}
この場合、log startupコマンドの直後にプロセスが終了し、出力ログの早い段階で次のようなメッセージが表示されます。
ShardStore:ERR Unsupported shard store type: RocksDB
この問題を修正するには、以下のいずれかを行ってからサーバーを再起動します。
- 代わりにNuDBを使用するようにシャードストアーを変更します。
- 履歴シャーディングを無効にします。
関連項目
- コンセプト:
- チュートリアル:
- リファレンス:
- rippled APIリファレンス
rippledコマンドラインの使用- [server_infoメソッド][]
- rippled APIリファレンス
{% raw-partial file="/docs/_snippets/common-links.md" /%}