redmine: knowledgeプラグインの画像アップロード時のエラーを解消。

半年ぐらいの問題が解決しました。

環境

  • redmine 4.2.4
  • Linux Mint 20.03
  • Apache 2.4.54
  • mysql 8.0.31
  • redmine_knowledgebase 4.1.1
  • ruby 2.70-p0
  • redmineディレクトリ /var/lib/redmine
  • redmineログディレクトリ /var/log/redmine

事象:

  1. knowledgebaseプラグインを用いて記事を発行します。
  2. 画像をアップロードします。
  3. 「作成」をクリックすると 500 internal server errorになります。

エラーになるものの、元のページに戻ると記事は作成されているため割と放置していました。

とはいえ、記事を発行するたびにエラーが発生するのはストレスフル。今回、その事象を解決までこぎ着けます。

調査

production.logを発行します。

tail -f /var/log/redmine/production.log

上記ログを流しながら、現象を再現させます。

その結果、以下のログに突き当たりました。

Completed 500 Internal Server Error in 1091ms (ActiveRecord: 869.6ms)

ActionView::Template::Error (undefined method `thumbnail_path' for #<#<Class:0x0000564f87f6a428>:0x0000564f87600360>
Did you mean?  thumbnail_tag
               thumbnail_url):
    1: <h1><%= l(:label_new_article) %>: <%= link_to(h(@article.title), @article_url) %>
    2: (<%=h @article.category.title %>)</h1>
    3: 
    4: <% if thumb = get_article_thumbnail_url_absolute( @article ) %>
    5:   <p><img src="<%= thumb %>" alt="[Thumbnail]"></p>
    6: <% end %>
    7: 

このエラーで検索したところ、そのものズバリの記事が書かれています。

https://github.com/alexbevi/redmine_knowledgebase/pull/394/commits/fe9d5952058649d457cec8118f50e4ee14690b40

これを元に解決させていきます。

手順

全て管理者権限で実施しています。

ディレクトリに移動します。

cd /var/lib/redmine/plugins/redmine_knowledgebase/app/helpers

修正するファイルのバックアップを取ります。

cp -pi /var/lib/redmine/plugins/redmine_knowledgebase/app/helpers/knowledgebase_helper.rb /hoge/knowledgebase_helper.rb.org

差分の通りファイルを修正します。

vi /var/lib/redmine/plugins/redmine_knowledgebase/app/helpers/knowledgebase_helper.rb
ファイル差分

(上述したバージョンであれば184行目)

     thumb = get_article_thumbnail( article )

     if thumb
-      return "#{Setting.protocol}://#{Setting.host_name}#{thumbnail_path(thumb)}"
+      return polymorphic_url(thumb, :host => Setting.host_name, :protocol => Setting.protocol)
     else
       return ''
     end

修正したファイルを反映させます。

cd /var/lib/redmine
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
systemctl restart apache2.service

対応後の修正を確認

  1. knowledgebaseプラグインを用いて記事を発行します。
  2. 画像をアップロードします。
  3. 「作成」をクリックしてもエラーが発生しないことを確認します。

続・ペンケースの彩り。

「こういうことをやりたい」と思うときほど、モノは見つかるものです。

LAMYの色をもう少し増やしてみたいと思っていた矢先に東京駅で発見。

新幹線とコラボしたLAMYのセット。しかも万年筆型とこちらの希望をバッチリと合致していました。

ボディカラーもそれぞれコラボした車両と同じ色となっていて、軸には車両やストライプが描かれています。

この追加により、

ペンケースは更にカラフルなものになりました。

ボードゲーム『インディアン・サマー』開封と収納。

プレイ写真が非常に気になったことと、ソロプレイに対応しているボードゲームということもあって入手しました。

タイル配置ゲームにしては『アグリコラ』と同じような大きさ。

中は分厚いタイル群です。

  • サマリー
  • スタートプレイヤーマーカー
  • 各種トークン

まで全てがタイルという潔いコンポーネントはそうそうありません。

穴が空いているタイルが大半を占めるため、タイル抜きは結構な時間を要しました。

ルールブックをざっと見てゲームに必要なものにまとめていきます。

内訳は以下の通り。

  • 紅葉タイル:布巾着
  • 宝物(ベリー/どんぐり/キノコ/羽根):Case and case 4分割
  • リスタイル:Case and case 2分割
  • サマリー/スタプレ/ベリー茂み(分割した状態):Case and case 2分割
  • 動物タイル:TCGケース

となりました。

最初のプレイ結果はこんな形。プレイレポートや感想は後ほど。

“ツリー”と“床”。-百均グッズの撮影用小物(その29)-

布のツリー

百均にて入手した「背景用布」。教会とツリーのライトアップが描かれていて、かなりの大きさです。

なので、1/7のフィギュアに合わせることが容易。このシリーズは他の季節にも出してもらいたいです。

カードのツリー

ジブン手帳を購入した際に手に入れていたのがこのクリスマスツリーを模したカード。

これは先の1/7よりは1/12にサイズ感がぴったりです。

カード自体に電飾が施されているのでエフェクトを掛けやすくなりました。

このとき作成した「クリスマス仕様のトレリス」と合わせてみます。

ツリーに足りないところを補ってくれました。

「床」用シール

「なにかに使えそう」だと思って百均で手に入れていたこのリメイクテープもまた、新たな撮影用小物として役立ちました。

マスキングテープと同じような粘着力を持つこれは適当な素材に貼り付けることで床となります。

こうして撮影したのがこれです。これのおかげで床も一緒に撮影することが可能になり、今まで見られなかった構図が楽しめるようになりました。

ボードゲーム『Fairy Concerto』開封と整理。

このとき一緒に購入したゲーム、Fairy Concerto。早速の開封です。

箱の面積は小さいものの、わりと厚め。その理由は

みっしりと詰まった木駒。これらを整理していきます。

カードはTCGサイズとハーフサイズ。百均のトレーディングカードケース2つに収まりました。

得点計算の時に使われる名誉コマは別に取り分けておきます。

  • カード類
  • 名誉コマ
  • ゲーム中に使うコマ(布袋入り)

が綺麗にまとまりました。

ケースの都合上、少し蓋が浮きますが及第点です。

Nextcloudのバージョンアップ。

WordPressと変わらない操作感でバージョンアップを行うことができました。

操作手順

NextcloudのWeb画面にログインし、「Administration settings」をクリックします。

更新できることを確認します。

アップデーターを開きます。

「アップデーターを開く」をクリックします。

アップデートを開始します。

「Start update」をクリックします。

どの段階まで進んだかを示してくれる親切設計でした。(写真を大量に保管しているのでバックアップ作成はかなりの時間がかかりました)

メンテナンスモードを解除します。

「Disable maintenance mode and continue in the web based updater」をクリックします。

「アップデートを開始」をクリックします。

何も問題がなければ、Nextcloudの管理者にログインされた状態でページが切り替わります。

アップデート後の後処理を行います。

アップデート対象に「Themes」が含まれていたので、背景が真っ白になっていました。これを修正するため再び「Administation settings」に進み、テーマをクリックします。

Background and login imageをクリックして任意の画像に置き換えます。

この後、「概要」をクリックすることで

「最新版です」となっていることを確認しました。

先取りの背景。-百均グッズの撮影用小物(その28)-

セリアで売られている木枠「トレリス」を用いた背景を増やします。

今回用意したのはクリスマスに映えそうな造花を用意していきました。ピック型やワイヤーが備えられたものを中心に用意しています。

いつものようにつる系の造花を全体に張り巡らせて下地を作ります。赤いベリー系はワイヤーとなっているので、飾りと固定を同時にこなしてくれる名脇役です。

また、テーマ的に必要だったのでライトも作っている途中で組み込みます。

無事に完成。ビニールワイヤを新たに追加することなく、造花そのもののワイヤーで固定できたのが今回よくできた点です。

完成した背景を用いたのがこちら。華やかな雰囲気を先取りです。

資源、差し替え。(ボードゲーム『アグリコラ』アップグレードトークン)

『Aqua Garden』などをリリースしているショップで注文しました。ボードゲーム『アグリコラ』の資源トークンです。

  • 木材
  • レンガ
  • 石材
  • 野菜

の6品目。特に、

「形が同じだった葦と麦」「色が同じの石と猪」の判別がつきやすくなっています。

オーガナイザーにもしっかりフィット。

また、資源そのものも撮影に併せられるクォリティです。

Elasticsearchバージョンアップ後、サービス起動せず全文検索できない件について

前提

Linux Mint 20.3でGrowiを運用しています。

現象

aptによるアップデート後、Growiで全文検索ができない現象が発生しました。

状況把握

[root@chisato.lyco.reco ~]# systemctl status elasticsearch.service 
● elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sun 2022-10-30 19:06:41 JST; 1 day 1h ago
       Docs: https://www.elastic.co
    Process: 983 ExecStart=/usr/share/elasticsearch/bin/systemd-entrypoint -p ${PID_DIR}/elasticsearch.pid --quiet (code=exited, status=1/FAILURE)
   Main PID: 983 (code=exited, status=1/FAILURE)

10月 30 19:06:41 chisato.lyco.reco systemd-entrypoint[983]:         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:637)
10月 30 19:06:41 chisato.lyco.reco systemd-entrypoint[983]:         at java.base/java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:928)
10月 30 19:06:41 chisato.lyco.reco systemd-entrypoint[983]:         at java.base/java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java>
10月 30 19:06:41 chisato.lyco.reco systemd-entrypoint[983]:         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1158)
10月 30 19:06:41 chisato.lyco.reco systemd-entrypoint[983]:         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
10月 30 19:06:41 chisato.lyco.reco systemd-entrypoint[983]:         at java.base/java.lang.Thread.run(Thread.java:1589)
10月 30 19:06:41 chisato.lyco.reco systemd-entrypoint[983]:         at java.base/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:186)
10月 30 19:06:41 chisato.lyco.reco systemd[1]: elasticsearch.service: Main process exited, code=exited, status=1/FAILURE
10月 30 19:06:41 chisato.lyco.reco systemd[1]: elasticsearch.service: Failed with result 'exit-code'.
10月 30 19:06:41 chisato.lyco.reco systemd[1]: Failed to start Elasticsearch.

→ この後、

systemctl restart elasticsearch.service 

を行っても起動しません。この事象を解決したときのメモです。

原因調査

cat /var/log/elasticsearch/elasticsearch.log 
(中略)
java.lang.IllegalArgumentException: Plugin [analysis-icu] was built for Elasticsearch version 7.17.6 but version 7.17.7 is running

を発見しました。ElasticSearchをバージョンアップしたのに、動いてるプラグインが対応しきれなかったためエラーになったようです。

対処

以下のコマンドを実行しました。

/usr/share/elasticsearch/bin/elasticsearch-plugin remove analysis-icu
/usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
/usr/share/elasticsearch/bin/elasticsearch-plugin remove analysis-kuromoji
/usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
# 問題を起こしているプラグインの削除→再インストールを実施

systemctl restart elasticsearch.service

対処確認

 systemctl status elasticsearch.service 
● elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-10-31 21:23:02 JST; 23s ago
       Docs: https://www.elastic.co
   Main PID: 5424 (java)
      Tasks: 94 (limit: 9199)
     Memory: 768.5M
     CGroup: /system.slice/elasticsearch.service
             ├─5424 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true>
             └─5617 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

10月 31 21:22:38 chisato.lyco.reco systemd[1]: Starting Elasticsearch...
10月 31 21:23:02 chisato.lyco.reco systemd[1]: Started Elasticsearch.

で、正常に起動したことを確認できました。

再開と再会。(ジブン手帳2023導入)

再導入:ジブン手帳

様々なケースを懸案していた結果、これに落ち着きました。

ジブン手帳。

実は9年も前に使っていたものだったりします。

切り替えた理由

ほぼ日手帳を完全に日記帳として運用している。

この理由が最大のもので、スケジュールをオフラインで確認したいケースが多々生まれてきました。

手書きの機会を増やしたい。

LAMYを揃えたことで、「手書きの楽しさ」がいや増していき、それならいっそのことと思った次第です。

一週間の情報が一瞥できる機能。

  • 一週間バーチカル
  • 起床時間と睡眠時間を記録できる24時間のタイムライン
  • 天気、食べたもの、気分の記入欄

と、かゆいものに手が届きます。これらの利点はなぜやめてしまったかレベルです。

革のカバーとの再会

この革のカバー、当時、すごく奮発したことを思い出しました。ずっと放置していて傷が目立ち、手入れもおざなりでしたのにしっかり形が残ってくれていたことに感謝。

まずは保護のため、ツバメノートのマルチケースに収納することにしました。

手入れを復活させたり、本格的に運用していくためのルールを定めたりとやることが色々です。

Page 96 of 246

Powered by WordPress & Theme by Anders Norén