ec-cube2 icon indicating copy to clipboard operation
ec-cube2 copied to clipboard

EC-CUBE official repository version 2

Results 167 ec-cube2 issues
Sort by recently updated
recently updated
newest added

再読込によって削除が反映される。 削除 → ツリー取得 → 画面表示となるべき処理順が、ツリー取得 → 削除 → 画面表示となっているか。

bug

大前提として、session.auto_start=1 で動作した場合に発生する性質であり、発生する環境は限定的だと考えられる。これまでに見た記憶はない。実際に生じるか確認していない。(以下、生じる仮定で書く。) SC_Helper_Session::__construct() の抜粋 ```php public function __construct() { $this->objDb = new SC_Helper_DB_Ex(); if (session_status() !== PHP_SESSION_ACTIVE) { session_set_save_handler(array(&$this, 'sfSessOpen'), array(&$this, 'sfSessClose'), ``` 多分、セッションが開かれていると、session_set_save_handler が実行されず、PHP デフォルトのファイルセッションで動作する。 ### 改修案 勝手に開かれたセッションを破棄する ```...

### 概要(Overview) 不具合の内容は http://svn.ec-cube.net/open_trac/ticket/571 に記載の通り。 過去にこの問題に取り組んだ際は、PHP が排他制御する前提で考えていた。しかし、複数サーバー構成だと、そもそも PHP がカバーできる性質ではないと気付き、EC-CUBE 側が対処すべき不具合と考えを改めた。 (前提として、dtb_session に保存している理由は、APサーバー複数構成時のセッション情報の共有と理解している。他にもあると、それを考慮して再考が必要かも。) ### APサーバー構成パターン毎に整理 #### 単一サーバー 通常は、dtb_session を使わず、ファイル保存で足りる。それにより、PHP の標準機能である flock による排他制御が適用される。しかし、保存先がデフォルトのままだと、別のアプリケーションがセッション情報を読み書きし得て、それは危険かも。data/ 配下に保存する対応が良さそうに思う。 #### 複数サーバーで、LB でクライアントの振り分けを固定している 基本的には「単一サーバー」と同じ。 加えて、data/ が NFS だったりすると、flock...

bug
enhancement

## 概要(Overview) トランザクション内で DB エラーを生じた場合にセッション変数が dtb_session に保存されない。 HTTP セッション全体を1トランザクションで処理していれば問題ないが、実際には複数のトランザクションを扱うので、DB エラーを生じたトランザクションの前にコミットされたデータと矛盾を生じ得る。(というか、実運用で生じた。dtb_shipment_item が0行の受注が、数万分の1程度の頻度で存在し、原因を分析してたどり着いた。) dtb_session 書き込みの段階で、トランザクションを開いたままの場合には、ロールバックを行えば保存できそう (未検証)。しかし、それではトランザクション内のセッション変数の変更まで保存されてしまい、新たな矛盾を生じる。後述の再現手順の「2」まで保存される。 なお、トランザクション外でデータベースエラーを生じた場合、dtb_session に書き込まれる。これは基本的には問題ない。ただし、セッション変数との矛盾を生じうる処理においては、本件解決後は1回の変更のみでも、トランザクション内でセッション変数の変更と一緒に処理するのが (整合性の観点では) 望ましくなると思う。(上述の実運用での不具合では、この「一緒に処理する」対応も必要そう。) ## 期待する内容(Expect) or 要望 (Requirement) 下の再現手順で「1」は保存されるべき。 「2」は保存されなくて良い。(現状維持) 「3」は通常実行されない認識。(現状維持。エラーを無視して続行するルートがあった気もするが、通常の処理では使っていなかったと思う。) 以下の対応案を思いつく。 ### A案 -...

bug

カテゴリ最大階層になると商品並び換えができない。 https://github.com/EC-CUBE/ec-cube2/blob/0d0f7a2a65ccda5c15caa03ab20499712173a412/data/Smarty/templates/admin/products/product_rank_tree_fork.tpl#L28 `!=` ではなく `

@see https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=25241&forum=9&post_id=101812#forumpost101812

```diff public function lfInitParam(&$objFormParam, &$arrCSVFrame) { // 固有の初期値調整 $arrCSVFrame = $this->lfSetParamDefaultValue($arrCSVFrame); // CSV項目毎の処理 foreach ($arrCSVFrame as $item) { - if ($item['status'] == CSV_COLUMN_STATUS_FLG_DISABLE) continue; + if ($item['status'] == CSV_COLUMN_STATUS_FLG_DISABLE &&...

bug

LC_Page_Admin_Order_Edit::lfCheckError() が、SC_Helper_Purchase::isAddPoint() を参照していない模様。 SC_Helper_Purchase::isAddPoint() を下記のようにカスタマイズした状態で、対応状況を「キャンセル」に変更すると、入力エラー「最終保持ポイントがマイナス表示にならないように調整して下さい。」を誤検出することがあった。 ```php // ポイントを即時加算するカスタマイズ function isAddPoint($status) { if ($status == null) { return false; } switch ($status) { case ORDER_CANCEL: // キャンセル return false; default: break;...

bug

dtb_csv.status は `1` または `2` のみのはず。 ```php /** CSV入出力列設定有効無効フラグ: 有効 */ define('CSV_COLUMN_STATUS_FLG_ENABLE', 1); /** CSV入出力列設定有効無効フラグ: 無効 */ define('CSV_COLUMN_STATUS_FLG_DISABLE', 2); ``` `0` が存在する模様。 初期登録データの誤りではないか。(未検証)

bug:Low

「システム設定>マスターデータ管理」画面の「ID」の桁数チェックが漏れているようで、DB 処理でオーバーフローする。 > Native message: ERROR: value "1234567890" is out of range for type smallint 管理者向け画面なので、深刻な影響は無いように思う。 当該画面が対象とする多くのテーブルの ID は、smallint だが、例外が見受けられる。 - mtb_permission.id は text - mtb_country.id は int4 テーブル定義を参照して、int2 int4...

bug:Low