[haiku-bugs] Re: [Haiku] #10312: Kernel runs out of address space in checkfs

  • From: "pulkomandy" <trac@xxxxxxxxxxxx>
  • Date: Tue, 13 Jan 2015 16:48:14 -0000

#10312: Kernel runs out of address space in checkfs
--------------------------------+----------------------------
   Reporter:  kallisti5         |      Owner:  axeld
       Type:  bug               |     Status:  new
   Priority:  high              |  Milestone:  R1/beta1
  Component:  File Systems/BFS  |    Version:  R1/Development
 Resolution:                    |   Keywords:
 Blocked By:                    |   Blocking:
Has a Patch:  0                 |   Platform:  All
--------------------------------+----------------------------

Comment (by pulkomandy):

 Panic is easily reproductible here with an identical stack trace. I had a
 look at the {{{block_cache}}} KDL command. There are 3 block caches (1 per
 mounted volume I guess?).

 {{{
 BLOCK CACHE: 0x8280aa80
  fd:           0
  max_blocks:   1572864
  block_size:   2048
  next_transaction_id: 41
  buffer_cache: 0x82c6ba18
  busy_reading: 0, no waiters
  busy_writing: 0, no waiters
  8018 blocks total, 1 dirty, 0 discarded, 0 referenced, 0 busy, 8017 in
 unused.


 BLOCK CACHE: 0xd300d248
  fd:           34
  max_blocks:   1572864
  block_size:   2048
  next_transaction_id: 226
  buffer_cache: 0xd40cb688
  busy_reading: 0, no waiters
  busy_writing: 0, no waiters
  807 blocks total, 0 dirty, 0 discarded, 0 referenced, 0 busy, 807 in
 unused.


 BLOCK CACHE: 0xd4076190
  fd:           33
  max_blocks:   24588800
  block_size:   2048
  next_transaction_id: 64
  buffer_cache: 0xd40cb548
  busy_reading: 1, no waiters
  busy_writing: 0, no waiters
  311080 blocks total, 20 dirty, 0 discarded, 0 referenced, 1 busy, 311060
 in unused.
 }}}

 I notice the first one has fd 0, but I assume this is not a problem
 (probably the root FS is mounted first and gets the first FD number?)

 The third one is relevant. While it is not too busy at this point (only 20
 dirty blocks), there is a big number of unused blocks and a very high
 max_blocks. Still, 311060 * 2048 is only 622MB, not enough to run out of
 memory. The max_blocks appears to allow allocating 24 million blocks,
 which at 2K by block would be enough to run out of 32-bit address space
 (4.8GB). Shouldn't we limit this value somehow?

 avail lists about 6.25GB RAM free on this 8GB system.

 I'm not sure what else I should be looking for?

--
Ticket URL: <https://dev.haiku-os.org/ticket/10312#comment:6>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: