-
Notifications
You must be signed in to change notification settings - Fork 564
Description
We're running in to a seemingly rare bug where the ConvertResourcesCases task will fail during various file operations. These appear to have some sort of threading, race, or timing aspect, as the exact error or reproduction is not consistent.
I've managed to narrow things down slightly on a single test machine where this seems to be happening more frequently. Using the steps below, I can somewhat consistently cause this task to fail when attempting to process items from lp/*/jl, all of which correspond to various Xamarin.Android.Support.* NuGet references in these templates. I managed to reproduce a couple of times on my local machine as well with these steps.
Given the results we have seen so far, this appears to be a regression introduced somewhere in xamarin-android/d15-9 + mono/2018-06 + monodevelop/release-7.7
Steps to Reproduce
- Create a new Android App -> Max Compatibility project in VS Mac. This should include version 27.0.2 of
Xamarin.Android.Support.Compat. - Click on Build -> Build All. The initial build should succeed).
- Right click on Packages -> Update. A minor version bump for these packages should be available (e.g. 27.0.2 -> 27.0.2.1).
- Click on Build -> Build All. This build attempt is failing for me during
ConvertResourcesCasespretty consistently on a mac mini running Sierra.
Expected Behavior
ConvertResourcesCases successfully completes on build and subsequent build attempts after changing various references or project options.
Actual Behavior
ConvertResourcesCases fails intermittently when attempting certain file operations. The "culprit" file in question varies from repro to repro, and the exception does not always reflect the state of my intermediate output directory (e.g. FileNotFoundException thrown when the file does exist).
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: The "ConvertResourcesCases" task failed unexpectedly.
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: System.IO.FileNotFoundException: Could not find file "/Users/xamarinqa/agent/_work/r15/a/XQA.VSMac/XQA.VisualStudioMac/TestResults/f6a9104b/TestAndroidEnableAOTEnterprise/Temp/DroidApp/DroidApp/obj/Release/lp/6/jl/res/layout/notification_template_custom_big.xml"
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: File name: '/Users/xamarinqa/agent/_work/r15/a/XQA.VSMac/XQA.VisualStudioMac/TestResults/f6a9104b/TestAndroidEnableAOTEnterprise/Temp/DroidApp/DroidApp/obj/Release/lp/6/jl/res/layout/notification_template_custom_big.xml'
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x00259] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-06/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/FileStream.cs:274
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: The "ConvertResourcesCases" task failed unexpectedly.
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: System.IO.IOException: Could not create file "/var/folders/44/n482q3wx171dnj8b6165rync0000gn/T/tmp5964ed16.tmp" or "/Users/xamarinqa/Projects/TestFin/TestFin/obj/Debug/lp/6/jl/res/values-en-rIN/values-en-rIN.xml". File already exists.
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: at System.IO.File.Copy (System.String sourceFileName, System.String destFileName, System.Boolean overwrite) [0x00193] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-06/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/File.cs:111
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: at Xamarin.Android.Tools.Files.CopyIfChanged (System.String source, System.String destination) [0x00027] in <85b0a2338aa04872b3b64fcf0b67c0bd>:0
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: The "ConvertResourcesCases" task failed unexpectedly.
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: System.IO.FileNotFoundException: /var/folders/zz/xvp_v21d0_qgnjn2xd4kqsrh0000gn/T/tmp3b73f1d.tmp does not exist
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: File name: '/var/folders/zz/xvp_v21d0_qgnjn2xd4kqsrh0000gn/T/tmp3b73f1d.tmp'
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets(1666,2): error MSB4018: at System.IO.File.Copy (System.String sourceFileName, System.String destFileName, System.Boolean overwrite) [0x00193] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-06/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/File.cs:111
Version Information
Log File
https://gist.github.com/pjcollins/f758cbbca74519af957fcaca5f4dc957
http://xqa.blob.core.windows.net/gist/log-0ae5db3450514d0d8dfc2f41a17141fc.txt
https://gist.github.com/pjcollins/c987b9044fbb556cf68dcbc3c7d22495
VS bug #660461