プロジェクト

全般

プロフィール

Bug(バグ) #3258

完了

2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合がある

Chiharu Nakajima さんが約12年前に追加. 約9年前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
対象バージョン:
開始日:
2012-11-12
期日:
進捗率:

100%

予定工数:
3.6 で発生するか:
Yes (はい)
3.8 で発生するか:
No (いいえ)

説明

概要

2 系で退会したはずのメンバのコメントが 3 系で新規登録したメンバによって書かれたかのような処理が行われる.

再現方法

日記コメントの場合.他のデータも紐付く可能性があるが未調査.

  1. 2.14 をインストール
  2. 初期メンバ A を登録(SNS メンバ数 1)
  3. メンバ B を追加(SNS メンバ数 2)
  4. メンバ C を追加(SNS メンバ数 3)
  5. メンバ A で日記 d を書く
  6. 日記 d に対して メンバ C がコメント x を書く
  7. メンバ C が退会する(SNS メンバ数 2)
  8. 3.6.3 へアップグレード
  9. 日記 d を閲覧する -> コメント x のメンバが非表示であることを確認する
  10. メンバ D を追加(SNS メンバ数 3)
  11. 日記 d を閲覧する -> コメント x が メンバ D によって書かれたことになっている

確認バージョン

バージョンアップ前: OpenPNE 2.14
バージョンアップ後: OpenPNE 3.6.3

CentOS 5.8
MySQL 5.0.95

原因

メンバのデータを表すテーブルの auto_increment の値が 2.14 のときのものと一致していないため,新規登録した場合に 2 系ですでに使われていた メンバID に数字が割り当てられてしまう.

mysql> show table status where name = "c_member";
+----------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
| Name     | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time | Collation       | Checksum | Create_options | Comment |
+----------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
| c_member | MyISAM |      10 | Dynamic    |    2 |             64 |         128 | 281474976710655 |         3072 |         0 |              4 | 2012-06-11 01:28:50 | 2012-06-11 01:28:50 | NULL       | utf8_general_ci |     NULL |                |         | 
+----------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
1 row in set (0.00 sec)

mysql> show table status where name = "member";
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+----------------------------------------------------------------------------------+
| Name   | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time | Check_time | Collation       | Checksum | Create_options | Comment                                                                          |
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+----------------------------------------------------------------------------------+
| member | InnoDB |      10 | Compact    |    2 |           8192 |       16384 |               0 |        32768 |         0 |              3 | 2012-06-11 01:28:50 | NULL        | NULL       | utf8_unicode_ci |     NULL |                | Saves informations of members; InnoDB free: 1845248 kB; (`invite_member_id`) REF | 
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-----------------+----------+----------------+----------------------------------------------------------------------------------+
1 row in set (0.00 sec)


関連するチケット 1 (0件未完了1件完了)

関連している OpenPNE 3 - Bug(バグ) #3074: 2 系で退会したメンバのデータが 3 系で新規登録したメンバに紐付いてしまう場合があるInvalid(無効)2012-06-11

操作

他の形式にエクスポート: Atom PDF