Skip to content

CA-426637: Drain the remaining bytes in metadata_handler - #7209

Open
changlei-li wants to merge 1 commit into
xapi-project:masterfrom
changlei-li:private/changleli/with_open_archive
Open

CA-426637: Drain the remaining bytes in metadata_handler#7209
changlei-li wants to merge 1 commit into
xapi-project:masterfrom
changlei-li:private/changleli/with_open_archive

Conversation

@changlei-li

Copy link
Copy Markdown
Contributor

When make_tar ova.xml, the tar file length is topically

  tar header (512) + xml + zero_pad to 512
  + end-of-archive marker (2 × 512) + padding to RECORDSIZE

In metadata_handler, the with_open_archive reads to zero_pad, then it skipps end-of-archive marker. The remaining padding is not consumed.
In some corner case, the server (XAPI) might close the connection when the client was still sending the padding part. Then the client would get a EPIPE error.
In this PR, content-length is used to drain the remaining bytes in metadata_handler.

When make_tar ova.xml, the tar file length is topically
```
  tar header (512) + xml + zero_pad to 512
  + end-of-archive marker (2 × 512) + padding to RECORDSIZE
```
In metadata_handler, the with_open_archive reads to zero_pad,
then it skipps end-of-archive marker. The remaining padding
is not consumed.
In some corner case, the server (XAPI) might close the
connection when the client was still sending the padding part.
Then the client would get a EPIPE error.
In this PR, content-length is used to drain the remaining bytes
in metadata_handler.

Signed-off-by: Changlei Li <changlei.li@citrix.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants