Bug #1169

削除に失敗するとレコードが取得できない

Added by Kouhei Sutou over 6 years ago. Updated over 4 years ago.

Status:新規Start date:11/15/2011
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

h2. 問題

以下のように存在するはずのレコードを取得できないことがある。

http://gyazo.com/29b9ddaa0faa0fb7f9142e9b46845fef

この問題が発生するのはレコード削除に失敗した場合のようだ。

http://twitter.com/supistar/status/136235425827274754

PerlのDBD::mysqlからstatus_id指定でレコードの一括削除処理をしてるのですが、
処理時に一部削除できていないレコードが発生+そのレコードに対して
先日と同じ現象が発生するのをつきとめました。

h2. 期待する状態

レコード削除に失敗した場合でもレコードを取得できる。

h2. 解決方法

削除が失敗したときにデータベースが壊れている?

SHOW CREATE TABLE twitter_supistar;の結果やレコード削除時のエラーメッセージなどを手がかりに調べてみる。

no-hit.png (81.1 KB) Kouhei Sutou, 11/15/2011 09:36 pm

History

#1 Updated by Kouhei Sutou over 6 years ago

スキーマを提供してもらった。(ありがとうございます!) http://pastebin.com/azYHs4UJ

mysql> show create table twitter_supistar \G;
*************************** 1. row ***************************
       Table: twitter_supistar
Create Table: CREATE TABLE `twitter_supistar` (
  `status_id` bigint(20) NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `screen_name` varchar(32) DEFAULT NULL,
  `text` text,
  PRIMARY KEY (`status_id`),
  KEY `created_at` (`created_at`)
) ENGINE=groonga DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

ERROR:
No query specified

#2 Updated by daijiro MORI over 4 years ago

  • Target version deleted (1.1x)

Also available in: Atom PDF