mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	ZTS: Fix snapshot_009_pos, snapshot_010_pos
Mitigate the likelihood of the newly created volumes being busy when the 'zfs destroy -r' is issued by waiting for udev to settle. Since this is not a iron clad fix I've added the test case to the known list of possible failures and referenced issue #7961. Finally, in the case this test does fail fix the cleanup logic so subsequent tests won't incorrectly fail. Reviewed-by: Giuseppe Di Natale <guss80@gmail.com> Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: John Kennedy <john.kennedy@delphix.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #7961 Closes #7962
This commit is contained in:
		
							parent
							
								
									424fd7c3e0
								
							
						
					
					
						commit
						838bd5ff35
					
				| @ -264,6 +264,8 @@ maybe = { | |||||||
|     'rsend/rsend_024_pos': ['FAIL', '5665'], |     'rsend/rsend_024_pos': ['FAIL', '5665'], | ||||||
|     'rsend/send-c_volume': ['FAIL', '6087'], |     'rsend/send-c_volume': ['FAIL', '6087'], | ||||||
|     'snapshot/clone_001_pos': ['FAIL', known_reason], |     'snapshot/clone_001_pos': ['FAIL', known_reason], | ||||||
|  |     'snapshot/snapshot_009_pos': ['FAIL', '7961'], | ||||||
|  |     'snapshot/snapshot_010_pos': ['FAIL', '7961'], | ||||||
|     'snapused/snapused_004_pos': ['FAIL', '5513'], |     'snapused/snapused_004_pos': ['FAIL', '5513'], | ||||||
|     'tmpfile/setup': ['SKIP', tmpfile_reason], |     'tmpfile/setup': ['SKIP', tmpfile_reason], | ||||||
|     'threadsappend/threadsappend_001_pos': ['FAIL', '6136'], |     'threadsappend/threadsappend_001_pos': ['FAIL', '6136'], | ||||||
|  | |||||||
| @ -642,7 +642,7 @@ function destroy_snapshot | |||||||
| 	typeset snap=${1:-$TESTPOOL/$TESTFS@$TESTSNAP} | 	typeset snap=${1:-$TESTPOOL/$TESTFS@$TESTSNAP} | ||||||
| 
 | 
 | ||||||
| 	if ! snapexists $snap; then | 	if ! snapexists $snap; then | ||||||
| 		log_fail "'$snap' does not existed." | 		log_fail "'$snap' does not exist." | ||||||
| 	fi | 	fi | ||||||
| 
 | 
 | ||||||
| 	# | 	# | ||||||
|  | |||||||
| @ -52,18 +52,15 @@ function cleanup | |||||||
| 	typeset snap | 	typeset snap | ||||||
| 
 | 
 | ||||||
| 	for ds in $ctr/$TESTVOL1 $ctr/$TESTCLONE; do | 	for ds in $ctr/$TESTVOL1 $ctr/$TESTCLONE; do | ||||||
| 		datasetexists $ds && \ | 		destroy_dataset $ds "-rf" | ||||||
| 			log_must zfs destroy -f $ds |  | ||||||
| 	done | 	done | ||||||
| 
 | 
 | ||||||
| 	for snap in $ctr/$TESTFS1@$TESTSNAP1 \ | 	for snap in $ctr/$TESTFS1@$TESTSNAP1 \ | ||||||
| 		$snappool $snapvol $snapctr $snapctrvol \ | 		$snappool $snapvol $snapctr $snapctrvol \ | ||||||
| 		$snapctrclone $snapctrfs | 		$snapctrclone $snapctrfs | ||||||
| 	do | 	do | ||||||
| 		snapexists $snap && \ | 		snapexists $snap && destroy_dataset $snap "-rf" | ||||||
| 			log_must zfs destroy -rf $snap |  | ||||||
| 	done | 	done | ||||||
| 
 |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| log_assert "Verify snapshot -r can correctly create a snapshot tree." | log_assert "Verify snapshot -r can correctly create a snapshot tree." | ||||||
| @ -91,6 +88,7 @@ else | |||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| log_must zfs snapshot -r $snappool | log_must zfs snapshot -r $snappool | ||||||
|  | log_must block_device_wait | ||||||
| 
 | 
 | ||||||
| #verify the snapshot -r results | #verify the snapshot -r results | ||||||
| for snap in $snappool $snapfs $snapvol $snapctr $snapctrvol \ | for snap in $snappool $snapfs $snapvol $snapctr $snapctrvol \ | ||||||
|  | |||||||
| @ -49,15 +49,13 @@ function cleanup | |||||||
| { | { | ||||||
| 	typeset snap | 	typeset snap | ||||||
| 
 | 
 | ||||||
| 	datasetexists $ctrvol && \ | 	destroy_dataset $ctrvol "-rf" | ||||||
| 		log_must zfs destroy -f $ctrvol |  | ||||||
| 
 | 
 | ||||||
| 	for snap in $ctrfs@$TESTSNAP1 \ | 	for snap in $ctrfs@$TESTSNAP1 \ | ||||||
| 		$snappool $snapvol $snapctr $snapctrvol \ | 		$snappool $snapvol $snapctr $snapctrvol \ | ||||||
| 		$snapctrclone $snapctrfs | 		$snapctrclone $snapctrfs | ||||||
| 	do | 	do | ||||||
| 		snapexists $snap && \ | 		snapexists $snap && destroy_dataset $snap "-rf" | ||||||
| 			log_must zfs destroy -rf $snap |  | ||||||
| 	done | 	done | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| @ -85,6 +83,7 @@ else | |||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| log_must zfs snapshot -r $snappool | log_must zfs snapshot -r $snappool | ||||||
|  | log_must block_device_wait | ||||||
| 
 | 
 | ||||||
| #select the $TESTCTR as destroy point, $TESTCTR is a child of $TESTPOOL | #select the $TESTCTR as destroy point, $TESTCTR is a child of $TESTPOOL | ||||||
| log_must zfs destroy -r $snapctr | log_must zfs destroy -r $snapctr | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Brian Behlendorf
						Brian Behlendorf