[pgsql-jp: 33474] Re: pgpoolでsecondary

nishio @ aileck.co.jp nishio @ aileck.co.jp
2004年 7月 2日 (金) 15:03:00 JST


西尾です。

> あのパッチは7.4のルートにだけ変更が行われています.ですから,実際には
> 7.3.6を使っているんだったら状況は変わりません.

そうでしたか。了解しました。

> 問題はここですね.ここではsecondaryは"D",すなわち行データを引き続き送
> ろうとしているのに,master側ではもうデータがないことになっています.つ
> まり,masterとsecondaryの検索件数が一致していないことになります.こう
> いうことは普通は起きないはずなのですが,何か想定外の現象が起きているよ
> うに思えます.できれば実行したSQL文と実データを見せてもらえれば何か分
> かると思うのですが.あるいは同じような現象を再現できる方法を教えていた
> だけるとか.

まず、エラーが発生するタイミングですが、マスタ、セカンダリでデータの並び
(順番)が異なると発生しているようです。都度都度データの並びを確認しました
がエラーが発生する前までは、同一でした。
また、この状態の発生に対しては再現性は分かりませんでした。
ただ、この状態が発生するまでに行った作業は、CSVをPHP経由でアップロードし
たものをpostgresへ登録するという内容です。
CSVは月単位で出力されているので、1月、2月、・・・・12月という順番で登録
しています。
特定のデータで発生するわけでもなく、ある時は何のエラーもなく登録が完了す
る事もあります。

データを登録するたびに、登録データを確認するPHPスクリプトを表示する際に

Warning: PostgresSQL query failed: server closed the connection unexpectedly 
This probably means the server terminated abnormally before or while 
processing the request. in db_pgsql.inc on line 67
Database error: Invalid SQL: SELECT * FROM syuko_list WHERE store_id='001'
PostgreSQL Error: 1 (server closed the connection unexpectedly This probably 
means the server terminated abnormally before or while processing the request. )
Session halted.

というエラーメッセージが表示されます。
このときの、pgpoolのログは、

... snip ...

DEBUG: pid 1066: AsciiRow: len:1 data:
log: pid 1066: AsciiRow: 10 th field size does not match between master(22) and secondary(9)
DEBUG: pid 1066: AsciiRow: len:18 data: バルコゾルカプセ
レog: pid 1066: AsciiRow: 11 th field size does not match between master(1157361664) and se
condary(22)
ERROR: pid 1066: AsciiRow: out of memory
DEBUG: pid 1066: Query: ABORT
ERROR: pid 1066: pool_process_query: kind does not match between backends master() secondary(ォ
DEBUG: pid 1066: pool_connection_pool_timer: called

となり、前回とほぼ同様の内容です。(TERATERM上で表示しているせいか所々化けてますが)

この状態で、マスタ、セカンダリ上で"SELECT COUNT(*) FROM syuko_list WHERE store_id='001'"を問い
合わせるとどちらも、同じ件数が返ってきます。

ちなみにデータの並びは、
・マスタ
  store_id |   s_date   | m_code | s_num |     standard     | num_per_box | num_per_mp | uni
t | s_other_code | s_other  | s_price |      drug_name       | mer_code | unknown1 | unknow
n2 | mhw_code
----------+------------+--------+-------+------------------+-------------+------------+----
--+--------------+----------+---------+----------------------+----------+----------+-------
---+----------
... snip ...

001      | 2004-01-31 | 401010 |    73 | ビンイリ 40g×50   |             |         40 | g
  | T001         | 池田医院               |    196.4 | サリメチックS
                 |          |          |          |
 001      | 2004-01-31 | 401668 |   136 | チューブ 20g×10   |             |         20 | g
  | T001         | 池田医院               |      674 | ヒルドイド
                 |          |          |          |
 001      | 2004-01-31 | 401949 |    92 | PTP 2g×300          |             |         28
| g   | T001         | 池田医院               |      910 | 強力ポステリザン(軟膏)
                      |          |          |          |
 001      | 2004-01-31 | 401976 |    40 | ハコイリ 1個×50      |             |         18 | 個
   | T001         | 池田医院               |   1567.8 | ボルタレンサポ50mg
                  |          |          |          |
 001      | 2004-01-31 | 402150 |    26 | ハコイリ 6枚×160     |             |         66 | 枚
   | T001         | 池田医院               |   2118.6 | モーラス 10cm×14cm
                  |          |          |          |
 001      | 2004-01-31 | 403725 |    19 | ハコイリ 7枚×100     |             |         49 | 枚
   | T001         | 池田医院               |     1960 | モーラステープ 7cm×10cm
                  |          |          |          |
 001      | 2004-01-31 | 403820 |   115 | HS 100g×100         |             |        300
| g   | T001         | 池田医院               |      267 | MS温シップ「タイホウ」
                      |          |          |          |
 001      | 2004-01-31 | 505761 |   619 | 瓶 1キト×2           |             |          3 |
キト | T001         | 池田医院               |     6825 | ヒューマカート3/7注 300単位
                  |          |          |          |
(21877 rows)


・セカンダリ
 
... snip ...

 001      | 2004-01-24 | 207376 |    30 | バラ 500g×2       |             |         93 |
g   | T001         | 池田医院               |    669.6 | PL顆粒
                    |          |          |          |
 001      | 2004-01-24 | 207427 |    36 | バラ 1000g×1      |             |         63 |
g   | T001         | 池田医院               |    403.2 | ビオフェルミン
                    |          |          |          |
 001      | 2004-01-24 | 208018 |    46 | ビンイリ 500mL×1   |             |        200 | mL
  | T001         | 池田医院               |      700 | フスコデシロップ
                 |          |          |          |
 001      | 2004-01-24 | 208195 |    50 | PTP 1T×1000         |             |         36
| T   | T001         | 池田医院               |    230.4 | プリンペラン錠 5mg
                      |          |          |          |
 001      | 2004-01-24 | 208481 |    78 | PTP 1T×1000         |             |         42
| T   | T001         | 池田医院               |    352.8 | プロルモン錠 20mg
                      |          |          |          |
 001      | 2004-01-24 | 208730 |    57 | PTP 1T×1000         |             |         98
| T   | T001         | 池田医院               |   1587.6 | ヘルベッサー錠 30mg
                      |          |          |          |
 001      | 2004-01-24 | 209114 |    22 | PTP 1T×1000         |             |         63
| T   | T001         | 池田医院               |    403.2 | マックターゼ錠S
                      |          |          |          |
 001      | 2004-01-24 | 209133 |     4 | バラ 1000g×1      |             |      193.5 |
g   | T001         | 池田医院               |  1451.25 | マナミンGA顆粒
                    |          |          |          |
(21877 rows)

となっています。
ちなみに、この状態で、"psql -p 9999 -n test"で接続し、
	"SELECT * FROM syuko_list WHERE store_id='001'"
を問い合わせると、

message type 0x44 arrived from server while idle
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.

となり、
	"SELECT * FROM syuko_list WHERE store_id='001' ORDER BY m_code"
では、エラーもなく、表示されます。

関係ないかもしれませんが、気になる点といえば、CSVファイル中で一部半角
カタカナが使ってあり、それをそのまま登録している点でしょうか。





pgsql-jp メーリングリストの案内