Error running updating drive with `hyperdrive import`
Opened this issue · 5 comments
Just trying to update a drive with some updated a hyperdrive that was created with the original hyperdrive daemon, and getting the following error:
drive name shortened, as it's a development drive
Importing /Users/Paul/Projects/FederatedWiki/development/client/client into ad8cb16...ca (Ctrl+c to exit)...
Importing | ======================================== | 100% | 25/25 Files(node:9183) UnhandledPromiseRejectionWarning: PathAlreadyExists: Path /plugins already exists.
at /Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hyperdrive/index.js:636:45
at Get._callback (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/mountable-hypertrie/index.js:308:16)
at Get._update (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hypertrie/lib/get.js:75:8)
at onnode (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hypertrie/lib/get.js:113:10)
at onnode (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hypertrie/index.js:334:5)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:9183) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node proc)
(node:9183) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Importing | ======================================== | 100% | 55/55 Files
The /plugins directory was part of the original import when the drive was created, and the contents have not changes since the last update back in August. And the drive contains a lot more than 55 files!
Running with --trace-warnings
gives a little extra information, if that helps.
Importing /Users/Paul/Projects/FederatedWiki/development/client/client into ad8cb16...ca (Ctrl+c to exit)...
Importing | ======================================== | 100% | 21/21 Files(node:9162) UnhandledPromiseRejectionWarning: PathAlreadyExists: Path /plugins already exists.
at /Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hyperdrive/index.js:636:45
at Get._callback (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/mountable-hypertrie/index.js:308:16)
at Get._update (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hypertrie/lib/get.js:75:8)
at onnode (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hypertrie/lib/get.js:113:10)
at onnode (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hypertrie/index.js:334:5)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
at emitUnhandledRejectionWarning (internal/process/promises.js:168:15)
at processPromiseRejections (internal/process/promises.js:247:11)
at processTicksAndRejections (internal/process/task_queues.js:94:32)
(node:9162) PathAlreadyExists: Path /plugins already exists.
at /Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hyperdrive/index.js:636:45
at Get._callback (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/mountable-hypertrie/index.js:308:16)
at Get._update (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hypertrie/lib/get.js:75:8)
at onnode (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hypertrie/lib/get.js:113:10)
at onnode (/Users/Paul/.nvm/versions/node/v14.15.1/lib/node_modules/@hyperspace/hyperdrive/node_modules/hypertrie/index.js:334:5)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
(node:9162) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
at emitDeprecationWarning (internal/process/promises.js:180:11)
at processPromiseRejections (internal/process/promises.js:249:13)
at processTicksAndRejections (internal/process/task_queues.js:94:32)
Importing | ======================================== | 100% | 55/55 Files
I wonder, in the readme...
This module replaces the functionality of the hyperdrive-daemon. If you've previously used that daemon, running Hyperspace for the first time will migrate your content in ~/.hyperdrive to be compatible with this service.
But, running hyperspace
hasn't migrated the storage over to ~/.hyperspace
I notice that beaker starts hyperspace with the no-migrate
option, is this interfering with hyperspace performing the migration, even when Beaker and its associated hyperspace service are not running?
@paul90 Thanks for reporting this -- definitely looks like a bug.
Hyperspace actually isn't moving any cores that were previously in ~/.hyperdrive
into ~/.hyperspace
right now. That part of the migration's being skipped in Hyperspace, so I doubt that's the culprit.
Have you tried the new hyp
CLI tool? There's a hyp sync
command in there that's more recent (the import/export features in this module are a bit more dated).
Mind letting me know if hyp sync
does the import correctly?
I had wondered about using hyp sync
as a replacement.
But, when I used hyp diff
it reported that every file in the archive had changed - when in reality only a single file has been changed since the last import. I also notice that hyp diff
appears to be ignoring .datignore
, and is wanting to add .hyperdrive-import-key
, and other files that should be ignored.
It also looks as if hyp
doesn't play nicely with mounted drives (a mounted .ui
folder in this case), with hyp diff
reported in that contents of the mounted /.ui/
folder will be deleted.
So, it doesn't look as if hyp sync
will work correctly. I will try cloning the drive later to see if hyp sync
does something different from what hyp diff
is reporting it will do.
No, hyp sync
does not work, at least not safely. Glad I used beaker to copy the drives, and change the mounted drive, before testing this.
For the drive with the mount, the contents of the mounted drive were deleted as well as the mount point. I will create an issue against the cli for this, and for there being no ignore file support.
It also appears to have updated all the files - though this might be due to an issue with original hyperdrive daemon import with files showing, in beaker at least, the date of the import rather than their creation date from the file system.
Any progress to report on getting this fixed?