Jump to content
  • 0

Can't install oculus games to pool


yerep

Question

Hey guys,

Using DrivePool and loving it, however it seems that Oculus is unable to write to the pool to install games. I get the following error (from Oculus logs):

 

[Debug] [14/05/2018 21:47:33] Starting up OVRLibraryService v1.16.0.0.
[Debug] [14/05/2018 21:47:33] Starting up.
[Debug] [14/05/2018 21:47:33] IPC connection opened.
[Debug] [14/05/2018 21:47:33] App libraries for this user: [21398abf-36d1-4949-82a9-2dc9358f0bd9, 47743d8f-1b96-4260-ae83-8bf22c5ab743, 5ef47725-c013-4e27-890a-03846d32855f, CORE_DATA]
[Debug] [14/05/2018 21:47:33] OVRLibraryService starting in direct mode.  Arguments: [library, install-chunked-package, 5ef47725-c013-4e27-890a-03846d32855f, \\?\Volume{97ef64b6-5cc9-405b-bb76-6a4eef7c95d5}\Oculus\Downloads\oculus-first-contact\12\oculus-first-contact.zip, \\?\Volume{97ef64b6-5cc9-405b-bb76-6a4eef7c95d5}\Oculus\Downloads\oculus-first-contact\12\oculus-first-contact.sig]
[Debug] [14/05/2018 21:47:33] IPC thread running; waiting for Oaf to connect.
[Debug] [14/05/2018 21:47:33] IPC connection established!
[Debug] [14/05/2018 21:47:33] Creating NTFS transaction.
[Debug] [14/05/2018 21:47:33] Operation failed.  Rolling back changes.
[Error] [14/05/2018 21:47:33] Error starting chunked install!
Daybreak.OVRLibraryService.Libraries.LibrarianException: Error clobbering zombie temp folder. ---> Daybreak.Core.Io+IoException: Error creating directory '\\?\Volume{97ef64b6-5cc9-405b-bb76-6a4eef7c95d5}\Oculus\tmp'. ---> System.ComponentModel.Win32Exception: This object is not allowed to be opened in a transaction
   --- End of inner exception stack trace ---
   at Daybreak.Core.Io.CreateDirectory(Nullable`1 transaction, String path)
   at Daybreak.Core.Io.RecursivelyCreateDirectory(Nullable`1 transaction, String directory)
   at Daybreak.OVRLibraryService.Libraries.LibrarianOperation.ExtractPackages[T](IntPtr transaction, IEnumerable`1 zips, String tempDir)
   --- End of inner exception stack trace ---
   at Daybreak.OVRLibraryService.Libraries.LibrarianOperation.ExtractPackages[T](IntPtr transaction, IEnumerable`1 zips, String tempDir)
   at Daybreak.OVRLibraryService.Libraries.LibraryController.<>c__DisplayClass9_0.<InstallChunkedPackage>b__0(IntPtr transaction)
   at Daybreak.Core.TxF.PerformBlockInTransaction[T](Func`2 block, Nullable`1 existingTransaction)
   at Daybreak.OVRLibraryService.Libraries.LibraryController.InstallChunkedPackage(IEnumerable`1 zips, ChunkedProgressUpdater updater, OafCancellationHandler oafCancellationHandler, IChunkDownloader chunkDownloader)
[Warning] [14/05/2018 21:47:33] Oaf IPC connection lost!
[Debug] [14/05/2018 21:47:33] IPC connection destroyed.
[Debug] [14/05/2018 21:47:33] Exiting with code 6 (ErrorDeletingTempDirectory).

 

Steam/Uplay can install to the pool OK, so I assume this is an Oculus specific problem. It installs on non pooled drives fine. Are there any settings I can play with to get this to work?

 

Thanks

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Install the game to your Oculus drive, move the folder to your DrivePool drive, create a Symbolic link on the Oculus drive where you moved the folder from that points to the folder on the DrivePool drive.  It's worth a try, since I doubt Oculus requires hardlinks for installed software.

If you don't want to do it by hand, you can try software like Junction Link Magic.

Link to comment
Share on other sites

  • 0

Thanks very much for this suggestion, this does actually make the game launch. However, I expect that when it tries to update it'll run into the same issue, so undoing and redoing junction links every time isn't really scalable with the number of updates i'd have to do this for.

Is there anything else you know of I can try? Any of Drivepool's advanced options maybe? Given the error from the Oculus log, it seems to me that the issue points to an issue with the Drivepool emulation of NTFS? 

Link to comment
Share on other sites

  • 0

Drivepool to my understanding uses a proprietary file system, the CoveFS.  It should be fully compatible with NTFS standards, but Oculus is trying to create a temp folder structure, which is where the error in your output comes in:

Quote

Daybreak.OVRLibraryService.Libraries.LibrarianException: Error clobbering zombie temp folder. ---> Daybreak.Core.Io+IoException: Error creating directory '\\?\Volume{97ef64b6-5cc9-405b-bb76-6a4eef7c95d5}\Oculus\tmp'. ---> System.ComponentModel.Win32Exception: This object is not allowed to be opened in a transaction

The technical why of this error isn't something I can explain; I'd think Alex or Christopher could.  You may be right about Oculus updates, in which case I'd suggest creating that "tmp" directory yourself by hand, which might solve future issues.  The symlink you made may cover it however, since the OS generally doesn't care about symlinks vs hardlinks for normal file/folder structures.

Do you have a game on Oculus that would typically install, and then need an update after, like perhaps an optional DLC or addon that you could test after moving/symlinking it's main install?  That might be a good test, until you get a better answer from the team here.

Link to comment
Share on other sites

  • 0
34 minutes ago, Jaga said:

Drivepool to my understanding uses a proprietary file system, the CoveFS.  It should be fully compatible with NTFS standards, but Oculus is trying to create a temp folder structure, which is where the error in your output comes in:

Not quite.  It's essentially a reverse proxy for the file system.  The commands and processed and forwarded to the underlying drives. 

45 minutes ago, yerep said:

 Is there anything else you know of I can try? Any of Drivepool's advanced options maybe? Given the error from the Oculus log, it seems to me that the issue points to an issue with the Drivepool emulation of NTFS? 

My (100% blind) guess here is that Oculus is using hardlinks.  That would definitely error out, as we do not support those on the pool. 

But if you could, enable tracing, and reproduce:
http://wiki.covecube.com/StableBit_DrivePool_2.x_Log_Collection

 

Also, if you want a super hacky hack.... install it to "x:\poolpart.xxxxx\Oculus", and then run from the pool. :)

Link to comment
Share on other sites

  • 0
3 minutes ago, Christopher (Drashna) said:

Not quite.  It's essentially a reverse proxy for the file system.  The commands and processed and forwarded to the underlying drives. 

Good to know, learn something new every day!

 

4 minutes ago, Christopher (Drashna) said:

Also, if you want a super hacky hack.... install it to "x:\poolpart.xxxxx\Oculus", and then run from the pool. :)

Now that is an awesome idea.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...