[netatalk-ja:0262] Re: OS9からコピーした項目が消える

HAT hat @ fa2.so-net.ne.jp
2013年 8月 15日 (木) 21:48:15 JST


HATです。

なんとなくnetatalkのバグのような気がします。

> ファイルサーバとしてCentOS6.0にnetatalkを導入して動作確認をしているの
> ですが
> 少しわからない部分があります。OS9からファイルをコピーすると、一見何も
> 問題ないように見えるのですが
> コピーしたフォルダを開くと一瞬ファイルが見えるのですが、すぐにフォルダ
> の項目が空になります。

いわゆるroundtrip問題ですね。

1. サーバがクライアントにファイルの情報を送ってくる
2. クライアントがそれを表示する
3. クライアントがファイルの詳しい情報を得る為にサーバに依頼する
4. サーバがそのようなファイルはないと返答する
5. クライアントで見えなくなる

> ログを見ながらOS9からファイルのコピーをしていると、以下のようなエラーが
> ログに出ていました。
> 以下がログの内容です。
> 
> Aug 15 10:57:09.894621 afpd[21899] {auth.c:226} (N:AFPDaemon): AFP2.2 Login by nas
> Aug 15 10:57:17.591788 cnid_dbd[21904] {charcnv.c:1002} (E:Default): Conversion failed ( UTF8 to CH_UCS2 )
> Aug 15 10:57:17.591916 cnid_dbd[21904] {pack.c:91} (E:CNID): idxname: conversion error
> Aug 15 10:57:17.592172 cnid_dbd[21904] {dbif.c:896} (E:CNID): error deleting key/value from cnid2.db: DB_SECONDARY_BAD: Secondary index inconsistent with primary
(略)

どうやらCNIDデータベースに登録するときに文字コード変換のエラーが出てます。
データベースに正常に登録できていないので、

1. サーバがクライアントにファイルのCNIDを送ってくる
2. クライアントがそれを表示する
3. クライアントがファイルの詳しい情報を得る為にCNIDをサーバ送る
4. サーバがそのようなCNIDはないと返答する
5. クライアントで見えなくなる

という現象が起きているように思えます。

> 環境はCentOS6.0 i686。クリーンインストールしたものに、netatalk3.0.4を
> srpmで導入しました。
> OSから入れなおし、同じくsrpmで導入したnetatalk3.0.5でも発生しています。
> ubuntu13にnetatalk3.0.4でも発生しました。

OSに依存しないということはnetatalkのバグでしょうねえ。

> エラーが出ているのはEPSファイルです。(ひょっとしてEPSだけかも)

ログレベルをmaxdebugにして送ってもらうという方法もあるんですが、
解析に苦労します。
その問題のファイルを送って頂けないでしょうか。
OSに依存しないだろうから、たぶん誰でも再現できます。
Applications (Mac OS 9):ユーティリティ:Disk Copy
を使って、MacOS拡張のディスクイメージ(拡張子img)を作り、その問題のファイルを
保存して送ってもらえないでしょうか。

> ファイル名に問題が?とも思いましたが、エラーが出るファイルを半角英数に
> リネームしてみても改善されず
> 問題が出ていないファイルを問題が出たファイル名と同じにしても問題は発生し
> ません。

3.0.xがリリースされてから1年以上たってから発覚したということは、
たぶんOS9のときだけ発生するバグじゃないでしょうか。
どこかの段階でMAC_JAPANESEとUTF8-MACXを取り違えているとか。

> ファイルを一旦Photoshopで開き、別名で保存してもやはり同じなので、ファイ
> ルが壊れているのではないと思います。

Photoshopは呪われてますね。

> 以下は、afpd -Vの内容です

特に問題ないですね。

> afp.confは以下の通りです。

普通ですね。

-- 
HAT


netatalk-ja メーリングリストの案内