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?
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
(and here accessing the first mount point, it hangs...)
Maybe someone with knowledge of the new emulation code can elaborate a
bit about what the effect of the changes are. I don't think this is
documented anywhere.
HTH,
/P
Home |
Main Index |
Thread Index |
Old Index