breaks with the concurrent collector due to trying to write to
This is handled by `mcs/class/corlib/System.IO.IsolatedStorage/IsolatedStorageFile.cs` which hasn’t been touched since January 2015. I think that Environment.UnixGetFolderPath might be broken by one of the changes related to the concurrent collector.
Here is the crash output: https://gist.github.com/Clancey/e5dca2e4888eab449f23c3d564a28dd3
This has now hit the stable channels
I did a little debugging, and its Environment.SpecialFolder.CommonApplicationData. This is wrong for OSX
I've troubles to see how this can be caused by the GC.
Does that problem still occur if you turn off the concurrent collector? You can do that by setting MONO_GC_PARAMS=major=marksweep
Also, can you give instructions on how to reproduce it exactly? (how to call Rosie and what to do in order to trigger that crash).
Hi guys this probably caused by the El Capitain feature System Integrity Protection https://support.apple.com/en-us/HT204899
Mono resolves the CommonApplicationData folder as /usr/share and in El Capitain and later with SIP turned on this path will not be writable, not even by root
if you want a mono version that works use https://download.mono-project.com/archive/4.4.0/macos-10-universal/MonoFramework-MDK-184.108.40.206.macos10.xamarin.universal.pkg
it has a patch for this specific macOS problem, but it has been reverted.
Moving to class libraries as it needs to be handled there.
I ran into this while trying to import SSL certificates on a build server. The mono installation is configured with prefix "/srv/local". However, mozroots and cert-sync were trying to write certificates to "/usr/share/.mono" instead of "/srv/local/share/.mono".
(In reply to Mike from comment #8)
> I ran into this while trying to import SSL certificates on a build server.
> The mono installation is configured with prefix "/srv/local". However,
> mozroots and cert-sync were trying to write certificates to
> "/usr/share/.mono" instead of "/srv/local/share/.mono".
You can use --user flag with cert-sync which will avoid the /usr/share folder as a workaround