Project

General

Profile

気づき #926

Redmineアップデート時の落とし穴(試行)

Added by 奈良 裕記 4 months ago. Updated 3 months ago.

Status:
新規
Priority:
通常
Assignee:
-
Category:
-
Target version:
-
Start date:
03/15/2019
Due date:
% Done:

0%

Estimated time:

Description

Redmineアップデート時の落とし穴がいくつかありますが、使い易い形でまとまっていないので集約してみます。
追加情報ありましたら本記事にコメントください。

関連URL+抜粋で構いません。

・Redmineのバージョンアップ後に画面の表示が崩れる場合がある(3.0)
・チケットのコピーができなくなった(3.0)
・PluginのMigrationが失敗するようになった(3.X)
・標準のMigrationが定義済として失敗する。(*)
・LDAP認証を使用している場合、4.0へのバージョンアップ後にログインできなくなることがある。(4.0)
  https://redmine.tokyo/issues/926#note-9


(テンプレ)
■発生バージョン

■現象

■原因

■対処

■関連情報


Redmineのバージョンアップ後に画面の表示が崩れる場合がある

■発生バージョン

Redmine3.0

■現象

Redmine3.Xのバージョンアップ後、画面の表示が崩れる場合がある
https://hosting.redmine.jp/support/faq/broken-layout/
アップデート前後でRedmineのURLが変更されていれば発生しない。(テスト環境など)

■原因

バージョンアップ前のスタイルシートがブラウザでキャッシュされているのが直接的な原因

RAILS4.2仕様変更の対応関連
RAILS4では、assetpipelineを利用する方向に変更されているが、Redmineでは使用していない。

■対処

Redmine3.4.0にて対処されたが、Redmineの標準テーマではStyleSheetをimportしているために修正されない。
http://www.redmine.org/issues/24617

下記のいずれかを実行する必要がある
1.ブラウザのリロード操作
2.Webサーバ側で Cache-Control header.を追加し、キャッシュしない様に指定する

1.ブラウザのリロード操作

https://hosting.redmine.jp/support/faq/broken-layout/

ブラウザの再読み込み(リロード)を行う
【1を行っても改善しない場合】ブラウザのスーパーリロードを行う
【2を行っても改善しない場合】ブラウザでキャッシュの削除を行う

2.Webサーバ側で Cache-Control header.を追加し、キャッシュしない様に指定する

Cache-Control header.追加(Apacheの例) 
http://www.redmine.org/issues/24617#note-12

<filesMatch "application\.css$">
<ifModule mod_headers.c>
Header set Cache-Control "max-age=60, must-revalidate"

application.css imported by themes not covered by cache control versioning
http://www.redmine.org/issues/29625

Rename public/stylesheets/application.css to e.g. application_v2.css
Also apply the cache control hack in the mentioned ticket.

■関連情報

Redmine 2.x→3.xへVerUpした時に画面レイアウトが崩れる症状に対する対応方法
http://forza.cocolog-nifty.com/blog/2017/02/redmine-2x3xver.html

(関連情報まとめ)
Redmine のVerUp時に画面レイアウトが崩れる場合がある
https://redmine.tokyo/issues/301

ある工場の Redmine バージョンアップ P9以降 (2.5.1->3.3.2で発生した事例)
https://www.slideshare.net/netazone/redmine-73627831


チケットのコピーができなくなった

■発生バージョン

Redmine3.0.0

■現象

チケットのコピーができなくなった。(チケット画面、右ボタンBulk操作共に不可)

■原因

Redmine3.0.0の下記修正による

User with only Move Issue rights in the project can still create issues using mass copy!
http://www.redmine.org/issues/18855#note-4

The :move_issues permission is removed (r13981) and replaced with a :copy_issues permissionn (r13985).
When allowed to copy issues, use can copy them to projects on which he has the :add_issues permission.

■対処

ロール・権限に「チケットのコピー」という項目が増え、ロールに権限追加が必要となった。
デフォルトではOFFになっているので、必要なロールでONにする必要がある。
(手動またはRailsConsole操作)

■関連情報

Redmine 3.2.1でチケットのコピーができなくなった(追記あり:2016-06-30)
https://tamulab.jp/redmine-3-2-1-ticket-copy/

Redmine 3.0 で、チケットをコピーした際に、ステータスを変更できない場合がある(解決方法あり)
http://blog.enjoyxstudy.com/entry/2015/04/06/000000

↓からは読み取れない
Redmine 3.0のCHANGELOG (新機能のみ・日本語訳付き)
http://blog.redmine.jp/articles/3_0/changelog/
↓サブジェクトから変更を類推するのは無理
User with only Move Issue rights in the project can still create issues using mass copy!
http://www.redmine.org/issues/18855#note-4


PluginのMigrationが失敗するようになった

■発生バージョン

Redmine3.4.*

■現象

Pluginを最新版に更新したら、Migrationに失敗するようになった。

■原因

Redmine4.X対応のため、一部Pluginのmasterブランチは3.X非対応となったため。

■対処

Redmine3.4対応のPluginバージョンを指定してダウンロードする。

■関連情報

Redmine 3.X用ブランチ指定プラグイン/テーマ
https://redmine.tokyo/issues/942


標準のMigrationが定義済として失敗する。

■発生バージョン

■現象

標準のMigrationが定義済として失敗する。
(DB Migration中で、table,column,indexを追加する時、二重定義としてmigrationが失敗する。)

■原因

Plugin,Patchなどで実装されていたcolumn,indexが標準に取り込まれた場合、
標準側のmigration処理で定義済かチェックして処理しないと、以前から使用していた環境ではMigrationが失敗する。

Redmine本体では通常発生しないが、プラグイン/パッチ等により発生する場合がある。

■対処

1. DBのMigration処理中で、定義済かチェックして処理する。(標準/PluginのDB migration処理中)
  https://redmine.tokyo/issues/844
  実施例 https://github.com/y503unavailable/redmine/blob/3.4-unofficialcooking/db/migrate/201806012311_add_issue_categories_sharing.rb

2. 発生時に、原因となったMigrationの処理内容を修正して済ます。
  または、migrationした事にして済ます。(非推奨)
  (schema_migrationsテーブルのversionに追加する。)

■関連情報

発生事例

Redmine3.4.0にて、issues.parent_idのindexが追加されたが、
先に追加していたPluginを利用していた時に二重定義のエラーとなった。
(どちらも性能向上目的でボトルネック箇所の改善)

Add an index on issues.parent_id (3.4.0)
http://www.redmine.org/issues/23987

Delete database index conflicting with Redmine 3.4
https://github.com/tkusukawa/redmine_work_time/commit/f9f8f86d39dd1385779614e0bc106ee6c423912d

Add index issues.parent_id, for improve response time.
https://github.com/tkusukawa/redmine_work_time/commit/47014fc80ad75e06b74bb5b4fb98a22713a1b200


History

#1

Updated by 奈良 裕記 4 months ago

  • Description updated (diff)
#2

Updated by 奈良 裕記 4 months ago

  • Description updated (diff)
#3

Updated by 奈良 裕記 4 months ago

  • Description updated (diff)
#4

Updated by 奈良 裕記 4 months ago

  • Description updated (diff)
#5

Updated by 奈良 裕記 4 months ago

  • Description updated (diff)
#6

Updated by 奈良 裕記 3 months ago

  • Description updated (diff)
#7

Updated by 奈良 裕記 3 months ago

  • Description updated (diff)
#8

Updated by 奈良 裕記 3 months ago

  • Description updated (diff)
#9

Updated by 前田 剛 3 months ago

■発生バージョン
4.0

■現象
LDAP認証を使用している場合、4.0へのバージョンアップ後にログインできなくなることがある。

■原因
Redmine 4.0で net-ldap のバージョンが上がり、デフォルトでSSLサーバ証明書の検証が行われるようになったため、LDAPサーバで自己署名証明書など検証に失敗する証明書を使用している場合はバージョンアップ後にログインできなくなる。

production.log には以下のような記録が残る。

An error occurred when authenticating XXXXX: SSL_connect returned=1 errno=0 state=error: certificate verify failed

■対処
Redmineにログインできるシステム管理者アカウント(LDAPを使用していないシステム管理者アカウント)がある状態であれば「管理」→「LDAP認証」画面にアクセスして、LDAPサーバの設定を「LDAPS」から「LDAPS (証明書の検証なし)」に変更する。

どのアカウントでもログインできない場合は、Railsコンソールで以下を実行して強制的に設定を変更する。

AuthSource.update_all('verify_peer = false')
■関連情報
#10

Updated by 奈良 裕記 3 months ago

  • Description updated (diff)

ありがとうございます。
LDAP認証の件を一覧にリンク追記しました。
チケットのコピー権限以外は、外部環境の変化に起因するものですね。

#11

Updated by 奈良 裕記 3 months ago

  • Description updated (diff)
#12

Updated by 奈良 裕記 3 months ago

  • Description updated (diff)
#13

Updated by 奈良 裕記 3 months ago

  • Description updated (diff)
#14

Updated by 奈良 裕記 3 months ago

  • Description updated (diff)

Also available in: Atom PDF