Subject: kern/12914: mount_union gets panic: kernel diagnostic assertion "access_type == VM_PROTO_READ ||
To: None <gnats-bugs@gnats.netbsd.org>
From: None <makoto@ki.nu>
List: netbsd-bugs
Date: 05/12/2001 11:50:13
>Number:         12914
>Category:       kern
>Synopsis:       mount_union gets "access_type == VM_PROTO_READ ||(pg->flags & PG_RDONLY) == 0" failed:
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri May 11 19:50:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Makoto Fujiwara
>Release:        1.5O(2000/12/23) 1.5S(2001/03/23) 1.5U(2001/04/14) 1.5V(2001/05/09)
>Organization:
www.ki.nu
>Environment:
	macppc (iBook, G4, StarMax )
Architecture: powerpc
Machine: macppc
>Description:
	Having binary code to execute resides below the union mounted
	file system creates panic, such like

|  panic: kernel diagnostic assertion "access_type == VM_PROTO_READ ||
|         (pg->flags & PG_RDONLY) == 0" failed:
| file "/usr/src/sys/uvm/uvm_fault.c", line 1687
| Stopped in pid (vi) at cpu_Debugger+0x10: lwz r0,r1, 0x14,
| db> trace
| at panic+e8
| at __assert+2c
| at uvm_fault+124e
| at trap+23c
| at ddblow+e0
| end+ffba3108
| db> 
         The same thing happens (at least) 1.5O, 1.5S 1.5U 1.5V
         1.5K had no problem.
         Machine varies either iBook, PowerMac G4, StarMax 3000/240

>How-To-Repeat:

	(1) Install 1.5S with regular partition with one extra empty partion,
	    from /pub/NetBSD/arch/macppc/snapshot/20010323
	(2) mount empty partiotion with -t union <above> onto any directory 
            containing executables. ( /usr, /usr/bin, /usr/X11R6/bin 
            /usr/sbin etc)
            say, 
            mount -t union /U /usr/bin

        (3) for example,

....   /etc/fstab may look like:
-----------------
/dev/wd0d /usr  	ffs     rw 1 2
/dev/wd0h /U    	ffs     rw 1 4
/U        /usr  	union   rw 0 0
-----------------
....    df shows:
/dev/wd0d                  194983   166653     18580      89%    /usr
/dev/wd0h                 1857124   906851    857416      51%    /U
<above>:/U                2023777  1073504    857416      55%    /usr

        (4) execute any binary below union-mounted partition. ( ex. find )
>Fix:
	unknown.

>Release-Note:
>Audit-Trail:
>Unformatted: