Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: wapbl panic on new system with too much memory!

On Tue, 6 Sep 2016, Michael van Elst wrote: (Paul Goyette) writes:

Basically, I cloned the hard drive of my other machine using dd, and
then put the copy in the new machine, and booted.  It comes up fine in
single-user mode.  However, shortly after typing ^D to the single-user
shell, it fails a KASSERT at sys/kern/vfs_wapbl.c line 1088.  The
following is manually transcribed:

Does this make a difference?

--- vfs_wapbl.c 19 May 2016 18:32:29 -0000      1.78
+++ vfs_wapbl.c 6 Sep 2016 10:27:37 -0000
@@ -1096,9 +1096,9 @@
       LIST_INSERT_HEAD(&wl->wl_bufs, bp, b_wapbllist);
-       mutex_exit(&wl->wl_mtx);

       bp->b_flags |= B_LOCKED;
+       mutex_exit(&wl->wl_mtx);

static void

Hard to tell if it makes a difference, since the problem is no longer present. Building with the above change was done on one of the four wapbl file systems, so perhaps the changes have now hidden the bug?

In any case, if the bp->b_flags access needs to be protected by the mutex, a cursory grep shows that there are some other places that might need similar treatment, in wapbl_do_io(), wapbl_resize_buf(), and wapbl_write_blocks().

| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:      |
| (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at   |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at |

Home | Main Index | Thread Index | Old Index