[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:13128] kernel 2.2.1 NFS (client) problem



菅谷@東北大です.
同じ研究室のものです.

masa@xxxxxxxxxxxxxxxxxxxxx (Masakazu Iwamura) writes:

> うちでは、NFS を使っているんですが(このマシンは client)、ソースをロー
> カルのディスクに移すとコンパイルできました。また、NFS を使っていても、
> server が Linux のマシンのときにもコンパイルできました。しかし、server 
> が SUN のマシンのときにはうまくいきません。

この件について捕捉します.Subject も変えました.

まず,最初に確認された現象は次の通りです.

・kernel 2.2.1 において gcc などをコンパイルした場合に Segmentation
  fault で落ちるような不正なバイナリが出来る事がある.
・kernel だけを 2.0.36 にして,同じ機械で同じように構築した場合には
  正しいバイナリが出来る.
・kernel 2.0 系列で構築したバイナリは kernel 2.2.1 で正しく動く.

これらの事から,libc か ld あたりの問題ではないかと私は思っていまし
た.

しかし,どのような場合に不正なバイナリが出来るのか知りたくていろいろ
調べているうちに,これが NFS がかかわる問題である事が分かりました.

・local disk で同じもの(たとえば,gcc_2.7.2.3-7.dsc)を構築した場合
  には,正しく構築できる.

私たちの研究室では,各人の home は Solaris 2.6, SunOS 4.1.4-JL 3 な
どの機械に分散して置かれていて,全ての機械で NFS マウントしています.
たまたま私と岩村君の home は Solaris 2.6 の機械にありました.

さて,現在分かっている事は以下の通りです.

・Solaris 2.6, Solaris 2.5.1 の disk を linux 2.2.1 でマウントしてそ
  のファイルシステム上で gcc_2.7.2.3-7.dsc などを構築すると,不正な
  バイナリが出来る.(gcc は構築中に作ったプログラムを使うので,そこ
  で止まる)
・NFS Server が SunOS 4.1.4-JL 3, HP-UX 9.07, Linux 2.0.33 の場合に
  は問題が無い.
・同じコンパイラを用いて local disk と nfs disk(Solaris 2.6, Solaris 
  2.5.1) でそれぞれコンパイルしたものを比較すると,できた実行型バイ
  ナリやオブジェクトのサイズが異なるものが見られる.
  更に詳細に比較すると,たまに 1byte 単位で *化ける* 事がある.また,
  最後が切れたり,逆にゴミが付け加わったりする事がある.
・cp や tar や dd などを用いてファイルのコピーを行った場合は,とくに
  問題は見られないようだ.(ただし,問題無いと結論を出せるほどはテス
  トしていない)

この Linux Box は Pentium II 450MHz x2(SMP) で,Ethernet は
Intel EtherExpress Pro 100 です.100Base-TX で Switching HUB に直結
しています.

nfs 関係のログですが,まず,

nfs warning: mount version older than kernel

というのが大量にでています.これは amd を使っている為で,/bin/mount 
で静的にマウントすればでません.しかし,/bin/mount で静的にマウント
しても症状は変わりません.よって無関係と思われます.

ii  amd             upl102-23      The 4.4BSD automounter.

また,

__nfs_fhget: inode 86320 busy, i_count=2, i_nlink=1
nfs_free_dentries: found foo/bar.o, d_count=0, hashed=1
nfs_dentry_delete: foo/bar.o: ino=86320, count=2, nlink=1

というのも幾らかでています.
しかし,gcc で不正なバイナリがでた事とは直接は関係ないようです.
# 時間とファイル名から判断して.
つまり,とくにログを吐いていない時でもファイルが壊れます.

パッケージの version は [debian-users:13079] にでていますが,引用し
ておきます.

Masakazu Iwamura <masa@xxxxxxxxxxxxxxxxxxxxx> writes:

> Desired=Unknown/Install/Remove/Purge
> | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
> |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
> ||/ Name            Version        Description
> +++-===============-==============-============================================
> ii  binutils        2.9.1.0.19a-2  The GNU assembler, linker and binary utiliti
> ii  gcc             2.7.2.3-7      The GNU C compiler.
> ii  g++             2.91.60-5      The GNU (egcs) C++ compiler.
> ii  libc6           2.0.7.19981211 GNU C Library: shared libraries
> ii  libc6-dbg       2.0.7.19981211 GNU C Library: Debugging and Profiling libra
> ii  libc6-dev       2.0.7.19981211 GNU C Library: Development libraries and hea
> ii  libc6-pic       2.0.7.19981211 GNU C Library: PIC archive library
> ii  ldso            1.9.10-1       The Linux dynamic linker, library and utilit
> ii  libg++2.8.2     2.91.60-5      The GNU C++ extension library - runtime vers
> ii  libg++2.8.2-dev 2.91.60-5      The GNU C++ extension library - development 
> ii  libg++272       2.7.2.8-0.1    The GNU C++ libraries (libc6 version).
> ii  libstdc++2.9    2.91.60-5      The GNU stdc++ library (egcs version)
> ii  libstdc++2.9-de 2.91.60-5      The GNU stdc++ library (development files)

引続き情報をお待ちしています.

-- 
 菅谷 至寛 | 東北大学 工学部 通信工学科 阿曽研究室
           | E-mail: sugaya@xxxxxxxxxxxxxxxxxxxxx