藤原@勉強会です。

度々自己フォロー。

At Fri, 26 Nov 2010 15:27:41 +0900,
FUJIWARA Katsunori wrote:

> 結局、「BE で復旧できるから大丈夫だよね!?」という楽観をベースに、自宅
> サーバとして稼働中の 111b マシンで image-update をしたのですが、以下の
> ような例外浮揚で見事に失敗してしまいました .... orz
> 
> ========================================
> ....
>   File "/usr/lib/python2.4/vendor-packages/pkg/actions/__init__.py", line 
> 159, in fromstr
>     action = types[atype](data=data, **attr_dict)
>   File "/usr/lib/python2.4/vendor-packages/pkg/actions/file.py", line 60, in 
> __init__
>     self.attrs["path"] = self.attrs["path"].lstrip(
> AttributeError: 'list' object has no attribute 'lstrip'
> ========================================
> 
> 駄目元で、ほぼ同じ状態の職場デスクトップを image-update したところ、こ
> ちらは publisher 変更無し(= 111b のデフォルトのまま)でも無事 134b への
> 更新が成功という不思議な状態です。
> 
> 
> 上記のエラーが pkg コマンドの内部エラーっぽいので、defect に登録したところ:
> 
>     path 属性が複数ある(= 想定外)パッケージがあるんじゃなかろうか?
>     我々のパッケージには無い筈だけど。
> 
>     https://defect.opensolaris.org/bz/show_bug.cgi?id=17479#c1
> 
> というコメントがありました。
> 
> そういえば、自宅の 111b マシンは、以前の Linux 自宅サーバの HDD からデー
> タを回収するために、Belenix 由来の ext2/ntfs 読み出しツールを追加インス
> トールしていた気が....
> 
> それ以外は基本的に標準 publisher からの導入しかしていないので、これを
> pkgrm してから再度 image-update を実施してみる予定。

結局、pkg の Python ソースに手を入れて、原因となっているパッケージを特
定したところ、ext2fs/ntfs 系ツールとは全然関係ありませんでした。

SUNWsfman というオープンソース系ツールのマニュアルパッケージの
manifest ファイルが、ディスク上で内部的に破壊されていたのが原因でした。

manifest ファイルが壊れている割に、file 情報を抽出した manifest.file ファ
イルは整合性がとれている、という感じなので、たまたま壊れたっぽい感じで
す。

ただ、壊れ方がバッファメモリのリークとかでアレしちゃっている感じなので、
SUNWipkg の更新等で過去のものになっているのかもしれません。

# ファイルシステムの問題の可能性もありますが ....

manifest を復旧させてから image-update を実施したところ、無事 134 に更
新できました。

汎用性のない結末でごめんなさい(笑)

--------------------
[FUJIWARA Katsunori]      [email protected]([email protected])

_______________________________________________
ug-jposug mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/ug-jposug

メールによる返信