# Creating second gvinum plex locks disk access



## bcornell (May 3, 2010)

I recently upgraded to FreeBSD 8-RELEASE-p2 generic kernel.  The server has a mirrored vinum volume (2 plexes) with concatenated subdisks.  The volume worked fine after the upgrade.

I then replaced the controller with a Addonics SATA2 controller and used the new siis kernel driver.  Just prior to replacing the controller I removed one of the plexes.  After replacing the controller I added the second plex but it does not synchronize properly.

Instead the plex shows progress synchronizing but the subdisks do not (stay at 0% and no byte count - output below:

```
gvinum -> l
4 drives:
D a                     State: up	/dev/ada0s1a	A: 404/715404 MB (0%)
D c                     State: up	/dev/ada2s1a	A: 299/1430799 MB (0%)
D b                     State: up	/dev/ada1s1a	A: 404/715404 MB (0%)
D d                     State: up	/dev/ada3s1a	A: 299/1430799 MB (0%)

1 volume:
V data                  State: up	Plexes:       2	Size:       2095 GB

2 plexes:
P data.p1             C State: S 0%	Subdisks:     2	Size:       2095 GB
P data.p0             C State: up	Subdisks:     2	Size:       2095 GB

4 subdisks:
S data.p1.s0            State: stale	D: b            Size:        698 GB
S data.p1.s1            State: I 0%	D: d            Size:       1396 GB
S data.p0.s1            State: up	D: c            Size:       1396 GB
S data.p0.s0            State: up	D: a            Size:        698 GB
gvinum -> l -v data.p1.s1
Subdisk data.p1.s1:
		Size:    1499987968000 bytes (1430500 MB)
		State: initializing
		Initialized:                0 bytes (0%)
		Plex data.p1 at offset 0 (0  B)
		Drive d (d) at offset 135680 (132 kB)
		Flags: 0
```

Further, any process that attempts to access the volume (e.g. directory listing, file access, etc) locks.  Listing the process with ps shows it is in disk (D) state.  The volume cannot be unmounted, even forcibly.  Nothing is logged to the console.

The first time this occurred I let the server run until gvinum said the plex was synced and then did a restart (shutdown -r).  The kernel was not able to flush the disk buffers and all mount points were dirty on boot.  Not surprisingly the second plex was down and showed stale.

I removed the second plex, rebuilt, and started it.  Same symptoms occurred, but this time I removed the second plex and all processes waiting for access to the volume continued and completed normally.  So the symptoms appear similar to a dead lock but again nothing in the logs.

Obviously this is related to the controller change.  Are there known issues with this driver or is there additional configuration required?

Thanks for any insight.


----------

