gitbucketで再起動に失敗してDBエラーが起きた話

公開日: : IT全般

とあるAdvent calendarを書くことになったのですが、そもそもブログを更新してなかったので書き溜めてたネタを消化していこうと思います。

タイトルですが、大人の都合でGitHubを使えない職場において、代用品としてGitLabやGitBucketを利用することは多いと思います。

私が前いた職場もVM上にGitBucketを建てて利用していましたが、これまた大人の都合でVM再起動することが多く、何気なく再起動したらお亡くなりになってしまったので、復旧方法についてまとめておきます。

事象

エラーログに下記のような文言が出て、Tomcat上でGitBucketのアプリケーションを何度再起動しても失敗してしまいました。


org.h2.jdbc.JdbcSQLException: データベースが使用中です: null. 可能な解決策: 他の接続を全て閉じる; サーバモードを使う

Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-190]

at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) ~[h2-1.4.190.jar:1.4.190]

~~~~~

at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696) [mchange-commons-java-0.2.11.jar:0.2.11]

Caused by: java.lang.IllegalStateException: The file is locked: nio:/root/.gitbucket/data.mv.db [1.4.190/7]

上記のエラーの場合は、Linuxのシステム的にH2DBのDBファイルをロックした状態になっているようなので、ファイル握ってるプロセスを1回killすることで直る可能性があります。

対処方法

それでは、まずはどのプロセスが握っているのかを確認しましょう

・プロセスの確認

fuser -u /root/.gitbucket/data.mv.db

プロセスIDとユーザを確認し、問題がなければロック状態を解除します。

具体的にはプロセスごとkillしてしまうため…killが危険そうなプロセスだった場合は…システム管理者と相談してください!!

・プロセスのkill(要注意!!!)

fuser -k /root/.gitbucket/data.mv.db

再びGitBucketのアプリケーションをAPサーバ上で再起動し、復旧すれば成功です。

まとめ

ちなみにVMならスナップショット毎日取っておけば、もっと楽に復旧出来ると思います。

(今回の場合はちゃんとスナップショット取れてなかったので、なんとか復旧するハメに…)

関連記事

no image

svnを使っている作業場でgitを普及させるためにやったこと

今回は、ある作業場でgitを普及させたい!という思いから、私が個人的に調査したこと、伝えたことを紹介

記事を読む

no image

ExcelでActiveXコントロールを挿入すると「オブジェクトを挿入できません」とエラーが出る。

とあるExcelファイルであるマクロを実行しようとしたのですが、 ActiveXオブジェクトの

記事を読む

no image

jenkinsのジョブでIllegalArgumentExceptionが起きた

Jenkinsのジョブで、 java.lang.IllegalArgumentException:

記事を読む

no image

chromeで「このウェブページにアクセスできません」が出たときの対処法

自宅以外の環境でchrome使おうとして、検索した瞬間に「このウェブページにアクセスできません」と出

記事を読む

no image

javaでzip作る時の圧縮レベルの話

いわゆる無圧縮zipファイルをjavaで作ることがあったので、覚え書きです。 ついでに圧縮レベ

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

no image
学生時代に1ミリも知らなかったJavaの開発風景

※この記事は、苫小牧高専 Advent Calendar 2016 -

no image
gitbucketで再起動に失敗してDBエラーが起きた話

とあるAdvent calendarを書くことになったのですが、そもそ

no image
機械学習について簡単におさらいした

機械学習について、実際あんまりよくわかってなくね?ってなったので

no image
svnを使っている作業場でgitを普及させるためにやったこと

今回は、ある作業場でgitを普及させたい!という思いから、私が個人的に

no image
jenkinsのジョブでIllegalArgumentExceptionが起きた

Jenkinsのジョブで、 java.lang.IllegalArgu

→もっと見る

PAGE TOP ↑