どなたかお分かりになる方がおりましたら、ご教示いただけますでしょうか。
【使用環境】
サーバ:WindowsServer2012 R2
インストール:
・bitnami-redmine-4.0.3-2-windows-x64-installer
→Redmine 4.0.3.stable
→Ruby version 2.5.3-p105 (2018-10-18) [x64-mingw32]
→Rails version 5.2.2.1
→Database adapter Mysql2
クライアント
・InternetExplorer11
プラグイン
・View Customize plugin
・Redmine Absolute Dates plugin
・My Page Blocks plugin
・Redmine Absolute Dates plugin
【事象】
Redmineの一般ユーザーでチケットを取得/更新し、「送信」ボタンを押下したところ、
「このチケットを編集中に他のユーザーが更新しました」とメッセージが表示され、
他のユーザー欄に自分の名前が表示される。
【調べて分かったこと】
・ApacheのAccessログを確認すると、同時刻に同じ端末から同じ内容のPOSTが二つ記録されている
・Redmineのproductionログを確認すると、POSTされた更新内容が同じ内容
・管理者権限のRedmineユーザーでは、この事象が発生しない
・一般ユーザーで高頻度で発生する
【被疑箇所】
■View Customizeで、下記の内容を入れてます
パス:/issues
位置:チケット入力欄の下
種別:JavaScript
--------------------------------------------------------
$(function() {
$('#issue-form').submit(function() {
・・・いろいろな必須チェックや色付けなどの処理・・・
$('#issue-form').off('submit'); $('#issue-form').submit(); //再度送信 }); });
--------------------------------------------------------
・このスクリプトを削除すると、事象が出なくなりました。
・$('#issue-form').off('submit') の前にスリープを3秒いれると
出にくくなりました。
(1秒だとほぼ毎回、2秒だと8回に1回程度発生)
・「必須チェックや色付けなどの処理」を削除して、上記スクリプト
だけにしても発生
・$('#issue-form').off('submit'); を削除すると、必須チェックによって
チケット編集画面に戻ったとき、「送信」ボタンが押下不可能となる
・$('#issue-form').submit(); を削除すると、そもそも最初の
「送信」ボタンが押下不可能となる。
【どうしたいのか】
カスタマイズスクリプトの中で実施する必須チェックや色付けは必須機能のため、
この被疑スクリプトを削除することができません。
他ユーザーの表示が自分の名前なので、本当に他ユーザーが編集したものと
切り分けが付けられるのと、3秒のスリープを入れることで同事象が発生
しにくくなるため、暫くはなんとか切り抜けられそうです。
しかし最終的には、スリープなしで事象を回避させる必要があるため、
どなたか、お分かりになる方がおりましたら、ご教示お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/16 12:13
2020/02/17 15:37