Search Unity

"There is no data folder" failure in Clarc (Unity 3D) on large XFS partition on Linux

Discussion in 'Editor & General Support' started by shmerl, Nov 2, 2014.

  1. shmerl

    shmerl

    Joined:
    Nov 2, 2014
    Posts:
    9
    Sorry, I'm not sure how users can report bugs in your issue tracker, so I'm posting it here.

    Some time ago I bought Clarc game which uses Unity 3D on GOG. However on my system (current Debian testing x86_64) it fails to run producing such error:

    I straced it (see details described here: https://www.gog.com/forum/clarc/there_is_no_data_folder_error_on_linux ) and there is definitely something weird going on. Others reported similar issues with other Unity 3D games (such as Shadowrun returns).

    What was common in those cases is the partition where the game was run from. It was a large (1+ TB) partition with XFS filesystem. In my case it's 1.9 TB, others reported a similar problem on 2.6 TB with XFS.

    I reported this bug to the developers of Clarc but got no response from them at all. Can you please look into it, since it appears to be a Unity 3D bug?

    Thanks!
     
    Last edited: Nov 3, 2014
  2. shmerl

    shmerl

    Joined:
    Nov 2, 2014
    Posts:
    9
    I just tested it with smaller XFS partition using a loop device like this (assuming ~/tmp/image was already created before):

    Code (csharp):
    1. dd if=/dev/zero of=/tmp/loop.img bs=1024K count=800
    2. mkfs.xfs /tmp/loop.img
    3. sudo mount /tmp/loop.img ~/tmp/image -o loop
    4. sudo chown $USER:USER ~/tmp/image
    Then I copied clarc game into ~/tmp/image (with my user's permissions) and launched it from there, and it worked! So it's clearly some bug in Unity related to XFS partition size.

    At least there is a workaround, but please fix this in the engine itself.
     
    Last edited: Feb 23, 2015
    Miscellaneous likes this.
  3. Tak

    Tak

    Unity Technologies

    Joined:
    Mar 8, 2010
    Posts:
    936
    shmerl: I'd love to see a player log from a failure case ( ~/.config/unity3d/$Company/$Game/Player.log )

    EDIT: Actually, I just looked at your strace from the GOG forum. What seems likely, based on that and what the code is doing, is that when we get the status for mainData, S_ISREG is returning the wrong result. I'll try to get hold of a multiTB drive and investigate.

    EDIT²: So if you post your player log anyway, I'll publish a player for that version with the fix, to ensure that what fixes the issue here fixes it there...
     
    Last edited: Nov 4, 2014
  4. shmerl

    shmerl

    Joined:
    Nov 2, 2014
    Posts:
    9
    The log isn't created when the game exits with an error, but it's created when it runs from the loop device. Here is a snippet from it which lists engine version 4.3.4f1 (e444f76e01cd).

    Code (csharp):
    1. Selecting FBConfig
    2. GLX_FBCONFIG_ID=263
    3. GLX_BUFFER_SIZE=32
    4. GLX_DOUBLEBUFFER=1
    5. GLX_RED_SIZE=8
    6. GLX_GREEN_SIZE=8
    7. GLX_BLUE_SIZE=8
    8. GLX_ALPHA_SIZE=8
    9. GLX_DEPTH_SIZE=24
    10. GLX_STENCIL_SIZE=8
    11. GLX_SAMPLES_ARB=0
    12. GLX_SAMPLE_BUFFERS_ARB=0
    13. GLX_CONFIG_CAVEAT=NONE
    14.  
    15. Desktop is 1920 x 1200 @ 60 Hz
    16. GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX: 2097152
    17. OpenGL:
    18.   Version:  OpenGL 4.4 [4.4.0 NVIDIA 343.22]
    19.   Renderer: GeForce GTX 680/PCIe/SSE2
    20.   Vendor:  NVIDIA Corporation
    21.   VRAM:  2048 MB
    22.   Extensions: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture
    23. <....> a lot of GL extensions <...>
    24. GLX_EXT_framebuffer_sRGB GLX_NV_multisample_coverage GLX_ARB_get_proc_address
    25. Setting maxVSyncInterval to 4
    26. Total system RAM: 16021 MiB
    27. Initialize engine version: 4.3.4f1 (e444f76e01cd)
    28. Creating user config folder: /home/user/.config/unity3d
    29. AudioManager: Using PulseAudio: Default Output Device
    30. Begin MonoManager ReloadAssembly
    31. Platform assembly: /home/user/tmp/image/clarc/game/CLARC_LINUX_Data/Managed/UnityEngine.dll (this message is harmless)
    32. Loading /home/user/tmp/image/clarc/game/CLARC_LINUX_Data/Managed/UnityEngine.dll into Unity Child Domain
    33. Platform assembly: /home/user/tmp/image/clarc/game/CLARC_LINUX_Data/Managed/Assembly-CSharp-firstpass.dll (this message is harmless)
    34. Loading /home/user/tmp/image/clarc/game/CLARC_LINUX_Data/Managed/Assembly-CSharp-firstpass.dll into Unity Child Domain
    35. Platform assembly: /home/user/tmp/image/clarc/game/CLARC_LINUX_Data/Managed/Assembly-CSharp.dll (this message is harmless)
    36. Loading /home/user/tmp/image/clarc/game/CLARC_LINUX_Data/Managed/Assembly-CSharp.dll into Unity Child Domain
    37. Platform assembly: /home/user/tmp/image/clarc/game/CLARC_LINUX_Data/Managed/Assembly-UnityScript.dll (this message is harmless)
    38. Loading /home/user/tmp/image/clarc/game/CLARC_LINUX_Data/Managed/Assembly-UnityScript.dll into Unity Child Domain
    39. Platform assembly: /home/user/tmp/image/clarc/game/CLARC_LINUX_Data/Managed/JsonFx.Json.dll (this message is harmless)
    40. Loading /home/user/tmp/image/clarc/game/CLARC_LINUX_Data/Managed/JsonFx.Json.dll into Unity Child Domain
    41. - Completed reload, in  0.028 seconds
    42. Compositing window manager detected - disabling vsync for performance
    43. Default vsync count 0
    44. requesting resize 1920 x 1200
    45. requesting fullscreen 1920 x 1200 at 0 Hz
    46. Desktop is 1920 x 1200 @ 60 Hz
    47. Platform assembly: /home/user/tmp/image/clarc/game/CLARC_LINUX_Data/Managed/System.dll (this message is harmless)
    48. The referenced script on this Behaviour is missing!
    Will I have to notify Clarc developers about it so they would rerelease it with that patch, or there is a way to replace Unity for the game directly? They weren't responsive before.
     
    Last edited: Nov 5, 2014
  5. Tak

    Tak

    Unity Technologies

    Joined:
    Mar 8, 2010
    Posts:
    936
    Ok, here's a patched version of 4.3.4. Please save it into your game directory as CLARC_LINUX.xfs and verify that it resolves the issue for you.


    Yes, they'd have to release a patched version - there's no way for Unity to automatically update games installed on people's machines. :)
     
  6. shmerl

    shmerl

    Joined:
    Nov 2, 2014
    Posts:
    9
    Thanks, it worked!

    I was asking if you can provide the new binary / lib which I can use as a workaround, and you did! Of course you can't push patches to installed versions :) I'll notify CLARC developers about it, but at least for now affected users have a way to play the game without resorting to loop devices.

    Just out of curiosity, what exactly was the bug about? Was it something XFS specific or something related to big partitions, or both?
     
  7. Tak

    Tak

    Unity Technologies

    Joined:
    Mar 8, 2010
    Posts:
    936
    Some file operations were causing overflows (which were sometimes not reported by the OS and resulted in random incorrect behavior) - it was our problem, but we hadn't run into it on ext4 or other FSs so far.
     
  8. WorthlessBums

    WorthlessBums

    Joined:
    Nov 28, 2012
    Posts:
    1
    I'm using Unity 5.0.0b9 and running into what appears to be the same issue on Ubuntu 14.04.1 LTS. Is this an outstanding issue in Unity 5? Is there a proper solution or workaround for this?
     
    Miscellaneous likes this.
  9. shmerl

    shmerl

    Joined:
    Nov 2, 2014
    Posts:
    9
    The workaround was posted above. I.e. use another partition or simply create a loop device.
     
  10. Miscellaneous

    Miscellaneous

    Joined:
    Sep 24, 2013
    Posts:
    39
    Using 5.2, problem still remains.... Compiling on Mac for Linux with Headless Mode flag (Linux is a 240G ext4 drive) .... Any real solution/fix to this problem??? (not all have access to the Linux System too apply the workaround)
     
    Last edited: Oct 25, 2015
  11. MuseGames

    MuseGames

    Joined:
    Mar 19, 2008
    Posts:
    98
    Apologies for the necromancy, but: is this still a known issue?

    I've gotten a user report that seems to be same thing on Unity 5.5.3.
     
  12. uhours

    uhours

    Joined:
    Aug 30, 2017
    Posts:
    1
    This is happening to me, or at least something similar. I have a 1TB HDD, with a 543.2G /home formatted to ext4. shmerl's workaround works (but truncate is faster than dd).