Re: RFC: Use of VOP_ALLOCATE() by NFSV4.2 nfsd
On 10-10-2021 07:57, Rick Macklem wrote: This leads me to a couple of questions: - Is there a good reason for not using vop_stdallocate() for ZFS? Yes. posix_fallocate is supposed to guarantee that subsequent writes to the file will not fail with ENOSPC. But ZFS, being a copy-on-write file system, cannot possibly guarantee that. See SVN r325320. However, vop_stdallocate() just does VOP_WRITE()s to the area (with bytes of data all zeros). Wouldn't that satisfy the criteria? I had the same problem in Ceph, where a guaranteed writable space is required for keeping a log of modifications to the system. Not having this space might case loss of data. Writing al zero's is probably even worse on filesystems that have compression set. Almost nothing is allocated, and so no guarantee at all. Next trick wass to write random data, but then you run into the problem signaled by Alan and Warner. New writes will need free space, since the CoW nature. Solution was to actually create a specific zpool just for this. But that will not help you with NFS 4.2 I guess --WjW
Re: PATH: /usr/local before or after /usr ?
On 16-7-2021 18:46, Ian Lepore wrote: On Fri, 2021-07-16 at 09:01 -0600, Alan Somers wrote: FreeBSD has always placed /usr/local/X after /usr/X in the default PATH. AFAICT that convention began with SVN revision 37 "Initial import of 386BSD 0.1 othersrc/etc". Why is that? It would make sense to me that /usr/local/X should come first. That way programs installed from ports can override FreeBSD's defaults. Is there a good reason for this convention, or is it just inertia? -Alan I have a hierarchy on my machines rooted at /local and /local/bin is before /bin and /usr/bin in my PATH, so I can override system tools when I explicitly want to without suffering any problems of an unexpected override from installing a port or package. If you're using ports as a development environment to work on a new gstat replacement, you could do something similar and put PREFIX=/local in your port makefile while you're developing on it. +1 Cannot recall running into any issues over a long time. I'm only annoyed by having to fix access to installed ports when this reorder is not done... Perhaps just don't do this for root? --WjW
Re: Changes to backtrace() ??
On 2-7-2021 12:17, Tobias Kortkamp wrote: On Fri, Jul 02, 2021 at 11:52:14AM +0200, Willem Jan Withagen via freebsd-current wrote: Hi, Have there been changes in the backtrace() calls? I recently upgraded my current server, and now the Ceph backtrace test starts to fail It looks like it is implemented in the llvm code. So it could be that something is off in that code. lang/rust also fails to build on at least aarch64 after the LLVM12 import (the prebuilt bootstrap crashes). Very similar backtrace. See https://bugs.freebsd.org/256864 Yup, That trace looks very similar. Forgot to explicitly mention that my problem is with a very recent 14.0 FreeBSD quad-b.digiware.nl 14.0-CURRENT FreeBSD 14.0-CURRENT #1 main-n247587-33b8c039a96: Sun Jun 27 21:19:03 CEST 2021 r...@quad-b.digiware.nl:/usr/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG amd64 The one before that was from around early May, and that did not have the problem... I have a Jenkins builder/tester that checks all changes that get submitted. And only after the upgrade last weekend things started to go wrong. But I do not track changes to current so I have no clue as to what has changed there. --WjW
Changes to backtrace() ??
Hi, Have there been changes in the backtrace() calls? I recently upgraded my current server, and now the Ceph backtrace test starts to fail It looks like it is implemented in the llvm code. So it could be that something is off in that code. --WjW Program terminated with signal SIGSEGV, Segmentation fault. #0 libunwind::LocalAddressSpace::get32 (this=0x80b144828 , addr=408197395) at /usr/src/contrib/llvm-project/libunwind/src/AddressSpace.hpp:164 164 memcpy(, (void *)addr, sizeof(val)); (gdb) bt #0 libunwind::LocalAddressSpace::get32 (this=0x80b144828 , addr=408197395) at /usr/src/contrib/llvm-project/libunwind/src/AddressSpace.hpp:164 #1 libunwind::CFI_Parser::findFDE (addressSpace=..., pc=pc@entry=4578143, ehSectionStart=5219072, sectionLength=, fdeHint=, fdeHint@entry=0, fdeInfo=fdeInfo@entry=0x7fffd7a0, cieInfo=0x7fffd768) at /usr/src/contrib/llvm-project/libunwind/src/DwarfParser.hpp:233 #2 0x00080b141091 in libunwind::UnwindCursorlibunwind::Registers_x86_64>::getInfoFromDwarfSection ( this=this@entry=0x7fffdde0, pc=pc@entry=4578143, sects=..., fdeSectionOffsetHint=fdeSectionOffsetHint@entry=0) at /usr/src/contrib/llvm-project/libunwind/src/UnwindCursor.hpp:1566 #3 0x00080b13db40 in libunwind::UnwindCursorlibunwind::Registers_x86_64>::setInfoBasedOnIPRegister ( this=0x7fffdde0, isReturnAddress=true) at /usr/src/contrib/llvm-project/libunwind/src/UnwindCursor.hpp:1958 #4 0x00080b13d99b in libunwind::UnwindCursorlibunwind::Registers_x86_64>::step (this=0x7fffdde0) at /usr/src/contrib/llvm-project/libunwind/src/UnwindCursor.hpp:2103 #5 0x00080b13b345 in _Unwind_Backtrace (callback=0x80ace5fe0 , ref=0x7fffdf78) at /usr/src/contrib/llvm-project/libunwind/src/UnwindLevel1-gcc-ext.c:131 #6 0x00080ace5fa7 in backtrace (arr=, len=out>) at /usr/src/contrib/libexecinfo/unwind.c:69 #7 0x0045e698 in ceph::BackTrace::BackTrace(int) () #8 0x0045dd94 in foo() () #9 0x0045dfc8 in BackTrace_Basic_Test::TestBody() () #10 0x004ddaeb in void testing::internal::HandleSehExceptionsInMethodIfSupportedvoid>(testing::Test*, void (testing::Test::*)(), char const*) () #11 0x004c468a in void testing::internal::HandleExceptionsInMethodIfSupportedvoid>(testing::Test*, void (testing::Test::*)(), char const*) () #12 0x004a7d43 in testing::Test::Run() () #13 0x004a88f4 in testing::TestInfo::Run() () #14 0x004a8efb in testing::TestSuite::Run() () #15 0x004b44ca in testing::internal::UnitTestImpl::RunAllTests() () #16 0x004e220b in bool testing::internal::HandleSehExceptionsInMethodIfSupportedbool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) () #17 0x004c6a9a in bool testing::internal::HandleExceptionsInMethodIfSupportedbool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) () #18 0x004b408e in testing::UnitTest::Run() () #19 0x004850f1 in RUN_ALL_TESTS() () #20 0x004850cb in main ()
Re: Trying to build Current
On 15-4-2021 14:20, Emmanuel Vadot wrote: On Thu, 15 Apr 2021 10:51:39 +0200 Willem Jan Withagen via freebsd-current wrote: Hi, I actually went completely back to the basic setup with directories /usr/src and /usr/obj But even then I do not manage to buildworld. The process keeps bumping into missing bsm/audit. First case was when it tried to build the 64bit libc. I copied the bsm directory into /usr/obj/usr/src/amd64.amd64/tmp/usr/include/sys/ Which allowed it to continue. But then a bit further on it halts again in 32bit libc. Whcih I could fix the same way. --- fts.o --- In file included from /usr/src/lib/libc/gen/fts.c:40: In file included from /usr/obj/usr/src/amd64.amd64/obj-lib32/tmp/usr/include/sys/mount.h:38: /usr/obj/usr/src/amd64.amd64/obj-lib32/tmp/usr/include/sys/ucred.h:42:10: fatal error: 'bsm/audit.h' file not found #include ^ Even defining HISTORICAL_MAKE_WORLD did not help, but then I'm not doing 'make world' So why is this include file missing? Try with https://cgit.freebsd.org/src/commit/?id=f41efc453ab5563cde214cb19273d87e6e4aa2d4 applied. You probably have WITHOUT_AUDIT=yes in src.conf That seems to do the trick. Thanx, --WjW ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Trying to build Current
On 15-4-2021 14:20, Emmanuel Vadot wrote: On Thu, 15 Apr 2021 10:51:39 +0200 Willem Jan Withagen via freebsd-current wrote: Hi, I actually went completely back to the basic setup with directories /usr/src and /usr/obj But even then I do not manage to buildworld. The process keeps bumping into missing bsm/audit. First case was when it tried to build the 64bit libc. I copied the bsm directory into /usr/obj/usr/src/amd64.amd64/tmp/usr/include/sys/ Which allowed it to continue. But then a bit further on it halts again in 32bit libc. Whcih I could fix the same way. --- fts.o --- In file included from /usr/src/lib/libc/gen/fts.c:40: In file included from /usr/obj/usr/src/amd64.amd64/obj-lib32/tmp/usr/include/sys/mount.h:38: /usr/obj/usr/src/amd64.amd64/obj-lib32/tmp/usr/include/sys/ucred.h:42:10: fatal error: 'bsm/audit.h' file not found #include ^ Even defining HISTORICAL_MAKE_WORLD did not help, but then I'm not doing 'make world' So why is this include file missing? Try with https://cgit.freebsd.org/src/commit/?id=f41efc453ab5563cde214cb19273d87e6e4aa2d4 applied. You probably have WITHOUT_AUDIT=yes in src.conf I'm pretty sure that was one of the settings in src.conf. But the fan in the powersupply of my builder has crashed, and leaving my office smelling of melted plastic. ;( So I first need to find a replacement PSU. --WjW ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Trying to build Current
On 15-4-2021 12:44, Yuri Pankov wrote: Willem Jan Withagen via freebsd-current wrote: On 15-4-2021 11:47, Gary Jennejohn wrote: On Thu, 15 Apr 2021 10:51:39 +0200 Willem Jan Withagen via freebsd-current wrote: Hi, I actually went completely back to the basic setup with directories /usr/src and /usr/obj But even then I do not manage to buildworld. The process keeps bumping into missing bsm/audit. First case was when it tried to build the 64bit libc. I copied the bsm directory into __ /usr/obj/usr/src/amd64.amd64/tmp/usr/include/sys/ Which allowed it to continue. But then a bit further on it halts again in 32bit libc. Whcih I could fix the same way. --- fts.o --- In file included from /usr/src/lib/libc/gen/fts.c:40: In file included from /usr/obj/usr/src/amd64.amd64/obj-lib32/tmp/usr/include/sys/mount.h:38: /usr/obj/usr/src/amd64.amd64/obj-lib32/tmp/usr/include/sys/ucred.h:42:10: fatal error: 'bsm/audit.h' file not found #include ^ Even defining HISTORICAL_MAKE_WORLD did not help, but then I'm not doing 'make world' So why is this include file missing? Try running make includes first. This step is missing because you are NOT doing a buildworld. Well actual the commands were: rm -rf /usr/src /usr/obj mkdir -p /usr/src /usr/obj cd /usr/src git clone https://git.freebsd.org/src.git . make -j16 buildworld But I'll give it a shot anyways. Anything in /etc/make.conf and /etc/src.conf? I had the same idea, but only after I asked the question There was quite a lot of old cruft there Removed it all, and I'm trying fresh again. But Clang building, even with ccache takes quite some time. --WjW --WjW ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: Trying to build Current
On 15-4-2021 11:47, Gary Jennejohn wrote: On Thu, 15 Apr 2021 10:51:39 +0200 Willem Jan Withagen via freebsd-current wrote: Hi, I actually went completely back to the basic setup with directories /usr/src and /usr/obj But even then I do not manage to buildworld. The process keeps bumping into missing bsm/audit. First case was when it tried to build the 64bit libc. I copied the bsm directory into __ /usr/obj/usr/src/amd64.amd64/tmp/usr/include/sys/ Which allowed it to continue. But then a bit further on it halts again in 32bit libc. Whcih I could fix the same way. --- fts.o --- In file included from /usr/src/lib/libc/gen/fts.c:40: In file included from /usr/obj/usr/src/amd64.amd64/obj-lib32/tmp/usr/include/sys/mount.h:38: /usr/obj/usr/src/amd64.amd64/obj-lib32/tmp/usr/include/sys/ucred.h:42:10: fatal error: 'bsm/audit.h' file not found #include ^ Even defining HISTORICAL_MAKE_WORLD did not help, but then I'm not doing 'make world' So why is this include file missing? Try running make includes first. This step is missing because you are NOT doing a buildworld. Well actual the commands were: rm -rf /usr/src /usr/obj mkdir -p /usr/src /usr/obj cd /usr/src git clone https://git.freebsd.org/src.git . make -j16 buildworld But I'll give it a shot anyways. --WjW ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Trying to build Current
Hi, I actually went completely back to the basic setup with directories /usr/src and /usr/obj But even then I do not manage to buildworld. The process keeps bumping into missing bsm/audit. First case was when it tried to build the 64bit libc. I copied the bsm directory into /usr/obj/usr/src/amd64.amd64/tmp/usr/include/sys/ Which allowed it to continue. But then a bit further on it halts again in 32bit libc. Whcih I could fix the same way. --- fts.o --- In file included from /usr/src/lib/libc/gen/fts.c:40: In file included from /usr/obj/usr/src/amd64.amd64/obj-lib32/tmp/usr/include/sys/mount.h:38: /usr/obj/usr/src/amd64.amd64/obj-lib32/tmp/usr/include/sys/ucred.h:42:10: fatal error: 'bsm/audit.h' file not found #include ^ Even defining HISTORICAL_MAKE_WORLD did not help, but then I'm not doing 'make world' So why is this include file missing? --WjW ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"