This commit is contained in:
		
					parent
					
						
							
								6d9f525f64
							
						
					
				
			
			
				commit
				
					
						abd4e1192f
					
				
			
		
					 1 changed files with 50 additions and 0 deletions
				
			
		
							
								
								
									
										50
									
								
								doc/bugs/interrupting_migration_causes_problems.mdwn
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								doc/bugs/interrupting_migration_causes_problems.mdwn
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,50 @@
 | 
			
		|||
Killing a migration from WORM to SHA256 with ^C breaks things; future attempts to do the migration fail:
 | 
			
		||||
 | 
			
		||||
    #!/bin/bash
 | 
			
		||||
    
 | 
			
		||||
    BASE=/tmp/migrate-bug
 | 
			
		||||
    
 | 
			
		||||
    set -x
 | 
			
		||||
    
 | 
			
		||||
    chmod -R +w $BASE
 | 
			
		||||
    rm -rf $BASE
 | 
			
		||||
    mkdir -p $BASE
 | 
			
		||||
    cd $BASE
 | 
			
		||||
    
 | 
			
		||||
    # create annex
 | 
			
		||||
    git init .
 | 
			
		||||
    git annex init
 | 
			
		||||
    
 | 
			
		||||
    # make a big (sparse) file and add it
 | 
			
		||||
    dd if=/dev/zero of=bigfile bs=1 count=0 seek=1G
 | 
			
		||||
    git annex add --backend WORM bigfile
 | 
			
		||||
    git commit -m 'added bigfile'
 | 
			
		||||
    
 | 
			
		||||
    # look at status
 | 
			
		||||
    git annex status
 | 
			
		||||
    
 | 
			
		||||
    # now migrate it, but kill migration during checksum
 | 
			
		||||
    # Simulate ^C by making a new process group and sending SIGINT
 | 
			
		||||
    setsid git annex migrate --backend SHA256 bigfile &
 | 
			
		||||
    PID=$!
 | 
			
		||||
    sleep 1
 | 
			
		||||
    kill -INT -$PID
 | 
			
		||||
    wait
 | 
			
		||||
    
 | 
			
		||||
    # look at status
 | 
			
		||||
    git annex status
 | 
			
		||||
    
 | 
			
		||||
    # this migration fails
 | 
			
		||||
    git annex migrate --backend SHA256 bigfile
 | 
			
		||||
    
 | 
			
		||||
    # but fsck says everything's OK
 | 
			
		||||
    git annex fsck
 | 
			
		||||
 | 
			
		||||
The error:
 | 
			
		||||
 | 
			
		||||
    migrate bigfile 
 | 
			
		||||
    git-annex: /tmp/migrate-bug/.git/annex/objects/K9/V1/WORM-s1073741824-m1321566308--bigfile/WORM-s1073741824-m1321566308--bigfile: createLink: already exists (File exists)
 | 
			
		||||
    failed
 | 
			
		||||
    git-annex: migrate: 1 failed
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue