diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index 3d2fd4f41e..14605b3a79 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -16,6 +16,7 @@ - [Backup/Restore] Fix `Cannot read properties of undefined (reading 'id')` error when restoring via an XO Proxy (PR [#7026](https://github.com/vatesfr/xen-orchestra/pull/7026)) - [Google/GitHub Auth] Fix `Internal Server Error` (xo-server: `Cannot read properties of undefined (reading 'id')`) when logging in with Google or GitHub [Forum#7729](https://xcp-ng.org/forum/topic/7729) (PRs [#7031](https://github.com/vatesfr/xen-orchestra/pull/7031) [#7032](https://github.com/vatesfr/xen-orchestra/pull/7032)) - [Jobs] Fix schedules not being displayed on first load [#6968](https://github.com/vatesfr/xen-orchestra/issues/6968) (PR [#7034](https://github.com/vatesfr/xen-orchestra/pull/7034)) +- [OVA Export] Fix support of disks with more than 8.2GiB of content (PR [#7047](https://github.com/vatesfr/xen-orchestra/pull/7047)) ### Packages to release diff --git a/packages/xo-server/package.json b/packages/xo-server/package.json index c937be0e17..e2f8852ee8 100644 --- a/packages/xo-server/package.json +++ b/packages/xo-server/package.json @@ -123,7 +123,7 @@ "stoppable": "^1.0.5", "subleveldown": "^6.0.1", "syslog-client": "^1.1.1", - "tar-stream": "^2.0.1", + "tar-stream": "^3.1.6", "tmp": "^0.2.1", "unzipper": "^0.10.5", "uuid": "^9.0.0", diff --git a/packages/xo-server/src/xapi/index.mjs b/packages/xo-server/src/xapi/index.mjs index 0633a43d78..ee4859b4b5 100644 --- a/packages/xo-server/src/xapi/index.mjs +++ b/packages/xo-server/src/xapi/index.mjs @@ -22,7 +22,7 @@ import { decorateWith } from '@vates/decorate-with' import { defer as deferrable } from 'golike-defer' import { limitConcurrency } from 'limit-concurrency-decorator' import { parseDuration } from '@vates/parse-duration' -import { PassThrough } from 'stream' +import { PassThrough, pipeline } from 'stream' import { forbiddenOperation, operationFailed } from 'xo-common/api-errors.js' import { extractOpaqueRef, parseDateTime, Xapi as XapiBase } from '@xen-orchestra/xapi' import { Ref } from 'xen-api' @@ -743,9 +743,11 @@ export default class Xapi extends XapiBase { stream.resume() return } + const nodeStream = new PassThrough() + pipeline(stream, nodeStream, () => {}) const table = tables[entry.name] const vhdStream = await vmdkToVhd( - stream, + nodeStream, // tar-stream stream are not node stream table.grainLogicalAddressList, table.grainFileOffsetList, compression[entry.name] === 'gzip',