mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Fix content holes in Actions task logs file (#25560)
Fix #25451. Bugfixes: - When stopping the zombie or endless tasks, set `LogInStorage` to true after transferring the file to storage. It was missing, it could write to a nonexistent file in DBFS because `LogInStorage` was false. - Always update `ActionTask.Updated` when there's a new state reported by the runner, even if there's no change. This is to avoid the task being judged as a zombie task. Enhancement: - Support `Stat()` for DBFS file. - `WriteLogs` refuses to write if it could result in content holes. --------- Co-authored-by: Giteabot <teabot@gitea.io>
This commit is contained in:
		@@ -111,6 +111,19 @@ func TestDbfsBasic(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	_, err = OpenFile(db.DefaultContext, "test2.txt", os.O_RDONLY)
 | 
			
		||||
	assert.Error(t, err)
 | 
			
		||||
 | 
			
		||||
	// test stat
 | 
			
		||||
	f, err = OpenFile(db.DefaultContext, "test/test.txt", os.O_RDWR|os.O_CREATE)
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	stat, err := f.Stat()
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	assert.EqualValues(t, "test.txt", stat.Name())
 | 
			
		||||
	assert.EqualValues(t, 0, stat.Size())
 | 
			
		||||
	_, err = f.Write([]byte("0123456789"))
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	stat, err = f.Stat()
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	assert.EqualValues(t, 10, stat.Size())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestDbfsReadWrite(t *testing.T) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user