NetBSD-Users archive

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

Re: Substantial COMPAT_LINUX changes in netbsd-5?



In article <4B4F9CBC.8080102%nordu.net@localhost>,
Fredrik Pettai  <pettai%nordu.net@localhost> wrote:
>On 1/14/10 6:16 PM, Hauke Fath wrote:
>> All,
>> 
>> after upgrading a few i386 servers to netbsd-5, wip/tsm (5.2.2, now 5.2.5)
>> terminates with an OOM error:
>
>[...]
>
>I also hit problems running the Veritas Netbackup client for Linux after
>upgrading to netbsd-5 (from netbsd-4).
>
>> Any idea what changes in COMPAT_LINUX shipped with netbsd-5 might be
>> responsible?
>
>First, the suse(100)_base package has an "error" then running netbsd-5,
>since linking outside the emulation root is not permitted. See:
>http://mail-index.netbsd.org/pkgsrc-users/2009/05/26/msg009936.html
>The symlink /emul/linux/etc/mtab should point to /proc/mounts instead of
>/emul/linux/... The NetBackup client use /etc/mtab, which then fails if
>it isn't corrected.
>
>Second, the filesystems never worked to backup unless they where mounted
>inside the emulation root. So I NFS-mounted them under
>/emul/linux/netbackup/... instead.
>However, the df command (which Netbackup also uses during backups) shows
>the real path (which is /usr/pkg/emul/...), so I mimiced the directory
>tree under /emul/linux/... (usr/pkg/emul/linux), and a netbackup symlink
>at the top, pointing back to /netbackup.
>
>After that, we at least got a full backup to work, but the incremental
>backups still fails. It doesn't feel stable ATM. I just noticed that the
>df command seems to get "blocked" during a incremental backup try.
>
>-bash-4.0$ ktruss df
> 18137      1 ktruss   emul(netbsd)
> 18137      1 ktruss   fktrace                     = 0
> 18137      1 ktruss   fcntl(0x4, 0x3, 0)          = 1
> 18137      1 ktruss   fcntl(0x4, 0x4, 0x1)        = 0
> 18137      1 ktruss   execve("/home/pettai/bin/df", 0xbfbfed28,
>0xbfbfed30) Err#2 ENOENT
> 18137      1 df       emul(netbsd)
> 18137      1 df       execve("/bin/df", 0xbfbfed28, 0xbfbfed30) JUSTRETURN
> 18137      1 df       mmap(0, 0x8000, 0x3, 0x1002, 0xffffffff, 0, 0, 0)
>= 0xbbbe9000
> 18137      1 df       open("/libexec/ld.elf_so", 0, 0) = 3
> 18137      1 df       read(0x3, 0xbfbfec18, 0x80) = 55
>       "libm.so.0\tmachdep.fpu_present\t1:libm387.so.0,libm.so.0\n"
> 18137      1 df       close(0x3)                  = 0
> 18137      1 df       open("/etc/ld.so.conf", 0, 0) = 3
> 18137      1 df       __fstat30(0x3, 0xbfbfe534)  = 0
> 18137      1 df       mmap(0, 0x1000, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbe8000
> 18137      1 df       munmap(0xbbbe8000, 0x1000)  = 0
> 18137      1 df       mmap(0, 0xf0000, 0x5, 0x2, 0x3, 0, 0, 0) = 0xbbaf9000
> 18137      1 df       mmap(0xbbbd1000, 0x8000, 0x3, 0x12, 0x3, 0,
>0xd7000, 0) = 0xbbbd1000
> 18137      1 df       mmap(0xbbbd9000, 0x10000, 0x3, 0x1012,
>0xffffffff, 0, 0, 0) = 0xbbbd9000
> 18137      1 df       close(0x3)                  = 0
> 18137      1 df       __sysctl(0xbfbfec5c, 0x2, 0xbbbe7960, 0xbfbfec64,
>0, 0) = 0
> 18137      1 df       issetugid()                 = 0
> 18137      1 df       getvfsstat(0, 0, 0x2)       = 12
> 18137      1 df       __sysctl(0xbfbfe7a8, 0x2, 0xbbbe0f74, 0xbfbfe7b0,
>0, 0) = 0
> 18137      1 df       __sysctl(0xbfbfe6e8, 0x2, 0xbbbe7dc0, 0xbfbfe6f0,
>0, 0) = 0
> 18137      1 df       readlink("/lib/libc.so.12", 0xbfbfe7b5, 0x400)
>Err#2 ENOENT
> 18137      1 df       break(0x8100000)            = 0
> 18137      1 df       mmap(0, 0x100000, 0x3, 0x14001002, 0xffffffff, 0,
>0, 0) = 0xbb900000
> 18137      1 df       getvfsstat(0xbb901000, 0x7124, 0x2) = 12
> 18137      1 df       statvfs1("/etc/malloc.conf", 0xbb901000, 0x1) = 0
> 18137      1 df       statvfs1("/", 0xbb9018b4, 0x1) = 0
> 18137      1 df       statvfs1("/var", 0xbb902168, 0x1) = 0
> 18137      1 df       statvfs1("/usr", 0xbb902a1c, 0x1) = 0
> 18137      1 df       statvfs1("/tmp", 0xbb9032d0, 0x1) = 0
> 18137      1 df       statvfs1("/home", 0xbb903b84, 0x1) = 0
> 18137      1 df       statvfs1("/kern", 0xbb904438, 0x1) = 0
> 18137      1 df       statvfs1("/proc", 0xbb904cec, 0x1) = 0
> 18137      1 df       statvfs1("/usr/pkg/emul/linux/proc", 0xbb9055a0,
>0x1) = 0
> 18137      1 df       statvfs1("/usr/pkg/emul/linux/netbackup",
>0xbb905e54, 0x1) = 0
> 18137      1 df       statvfs1("/usr/pkg/emul/linux/netbackup/var",
>0xbb906708, 0x1) = 0

I think that the namei changes that handle the emulated root could be at
fault here, or NFS. Have you tried using a loopback mount?

christos



Home | Main Index | Thread Index | Old Index