看板 DFBSD_bugs 關於我們 聯絡資訊
:Thomas Nikolajsen <thomas.nikolajsen@mail.dk> added the comment: : :The file system is 20GB. : :I know this is rather small for a HAMMER FS. :It is just a root file system, for a x86_64 setup, :had to 'steal' from swap partition (still have 12GB for 8 GB mem) :it is not full at all. :Disklabel was already setup with i386 DragonFly system; :btw setting up dual boot i386/x86_64 works out quite easily w/ dloader ;-) : :show-undo output is put on leaf: :http://leaf.dragonflybsd.org/~thomas/issue1984 : :Feb 9 21:58:32 octopus kernel: HAMMER: Warning: UNDO area too small! :Feb 9 21:58:32 octopus kernel: HAMMER: Warning: UNDO area too small! :.. :priority: -> bug Ok, I'm fairly certain that it is an UNDO/REDO FIFO overflow due to the mechanics of how HAMMER operates when this warning is active. Right now when HAMMER is forced to do mini-flushes inside the main flush due to the UNDO area being too small it still doesn't flush the volume header until the more encompassing meta-flush is done. I'm certain this is causing the FIFO to overflow and blowing up the recovery code. A 20GB HAMMER filesystem only reserves a 100MB UNDO/REDO FIFO. Even a 200GB HAMMER filesystem only reserves a 232MB UNDO/REDO FIFO. The real problem here is that the required size for the UNDO/REDO FIFO is related more to the system's ram and buffer cache configuration than to the filesystem size. I think I'm going to have to change newfs_hammer to create a minimum 500MB UNDO/REDO FIFO. I will also have to change the flush mechanics to avoid the mini-flushes in the first place. -Matt Matthew Dillon <dillon@backplane.com>