Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: overnight crash
On Tue, Sep 24, 2019 at 02:52:16PM +0100, Patrick Welche wrote:
> Something is still not right. newfs'd /usr/obj, built release, untarred
> sets over /.
>
> Little script:
>
> export RUMP_SERVER=unix://zsock
> rump.halt 2> /dev/null
> rump_server -lrumpvfs -lrumpdev_disk -lrumpkern_solaris -lrumpfs_zfs -lrumpdev -lrumpdev_rnd -d key=/dk,hostpath=zfs.img,size=100m ${RUMP_SERVER}
> export LD_PRELOAD=/usr/lib/librumphijack.so
> export RUMPHIJACK=blanket=/dev/zfs:/dk:/storage,sysctl=yes,modctl=yes
> zpool create storage /dk
> zpool list
> zfs list
> echo hello | rump.dd of=/storage/hello
> ls -l /storage
> zfs list
> zfs snapshot storage@hello
> echo bar | rump.dd of=/storage/bar
> ls -l /storage
> zfs list
> zfs list -t snapshot
> zfs diff storage@hello
>
> which should (not) just give me a zfs.core from the last line, now coredumps
> everywhere, again with
>
> #0 0x00007f7ff48ae8a5 in __compat_fstatvfs1 (fd=5, buf=0x7f7fffbff380, flags=2) at /usr/src/lib/libc/compat/sys/compat_statvfs.c:99
> 99 int error = __fstatvfs190(fd, &sb, flags);
>
> k$ modstat | grep compat_90
> compat_90 exec builtin - 1 - -
> compat_netbsd32_90 exec builtin - 0 - compat_netbsd32,compat_90
>
> I thought rump loaded kernel modules - what else needs changing?
This turns out to be a locale issue!
with
rump_server unix://sock
export LC_CTYPE=en_GB.UTF-8
export RUMP_SERVER=unix://sock
export LD_PRELOAD=/usr/lib/librumphijack.so
the following code dumps core:
#include <locale.h>
#include <unistd.h>
int main()
{
sleep(10);
setlocale(LC_ALL, "");
return 0;
}
(the sleep is there to attach gdb...)
With LC_TYPE=C it works, with LC_TYPE=en_GB.UTF-8 but outside of rump, it works.The issue only appears when using rump and a non-C locale.
Cheers,
Patrick
Home |
Main Index |
Thread Index |
Old Index