Azure / Azure/azure-functions-host
VFS: GET during in-flight PUT request returns 2xx code, empty content
- Dominant language
- C#
- Stars
- 2k
- Forks
- 482
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 38
Description
#### Investigative information
This issue is in reference to internal incident 290963910.
#### Repro steps
Note: Portal team deployed a UI patch, so repro should be done programmatically.
1. Send PUT request to a VirtualFileSystem endpoint (e.g. `/admin/vfs/proxies.json`)
2. While PUT request in 2 is in-flight, send a GET request to the same endpoint.
#### Expected behavior
The request in step 2 should return a 200 response and the content of the file (preferred) OR a 4xx/5xx response and no content.
#### Actual behavior
The request in step 2 returns a 2xx response and empty content.
#### Known workarounds
Block GET requests from sending until PUT request completes - this is what portal team's UI patch does.
Contributor guide
Research direction
Start by reproducing the race against the VirtualFileSystem endpoint, such as /admin/vfs/proxies.json, with a PUT and overlapping GET. Trace the request handling for concurrent reads and writes. Done means the GET returns the file content or a 4xx/5xx response, never a 2xx response with empty content.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100