-
Notifications
You must be signed in to change notification settings - Fork 564
[Xamarin.Android.Build.Tasks] Aapt task needs to ignore fakeLogOpen #1035
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Xamarin.Android.Build.Tasks] Aapt task needs to ignore fakeLogOpen #1035
Conversation
|
@jonathanpeppers, |
|
Also if anyone would like to test the Regex we are using to look for errors: https://dotnetfiddle.net/bkhhcQ |
|
I think this regex test is more useful: https://dotnetfiddle.net/Zppyb8 |
| var level = match.Groups["level"].Value; | ||
| var message = match.Groups ["message"].Value; | ||
| if (level.Contains ("warning")) { | ||
| if (singleLine.Contains ("fakeLogOpen") || level.Contains ("warning")) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think instead of singleLine.Contains ("fakeLogOpen") we should use message.Contains ("fakeLogOpen"), so that if we wind up with e.g. a filename of fakeLogOpen we don't inadvertently grab it and mishandle things.
Context: https://devdiv.visualstudio.com/DevDiv/_build/index?buildId=1137183 (search for APT0000 in Xamarin.Android-Tests.sln output) Our Windows builds on VSTS are randomly failing with: ``` 2017-11-14T00:49:35.1654201Z Executing package -f -m -M E:\A\_work\_temp\lrwwmk1i.il2\manifest\AndroidManifest.xml -J E:\A\_work\_temp\lrwwmk1i.il2 --custom-package mono.android_tests -F E:\A\_work\_temp\lrwwmk1i.il2\resources.apk.bk -S obj\Debug\res -S E:\A\_work\2\s\src\Mono.Android\Test\obj\Debug\lp\1\jl\res -I C:\Users\dlab\android-toolchain\sdk\platforms\android-26\android.jar --auto-add-overlay --max-res-version 26 (TaskId:87) 2017-11-14T00:49:35.2324246Z E:\A\_work\2\s\bin\Debug\lib\xamarin.android\xbuild\Xamarin\Android\Xamarin.Android.Common.targets(1373,2): error APT0000: fakeLogOpen(/dev/log_crash, O_WRONLY) failed [E:\A\_work\2\s\src\Mono.Android\Test\Mono.Android-Tests.csproj] 2017-11-14T00:49:35.2324246Z E:\A\_work\2\s\bin\Debug\lib\xamarin.android\xbuild\Xamarin\Android\Xamarin.Android.Common.targets(1373,2): error APT0000: fakeLogOpen(/dev/log_security, O_WRONLY) failed [E:\A\_work\2\s\src\Mono.Android\Test\Mono.Android-Tests.csproj] 2017-11-14T00:49:35.2324246Z E:\A\_work\2\s\bin\Debug\lib\xamarin.android\xbuild\Xamarin\Android\Xamarin.Android.Common.targets(1373,2): error APT0000: fakeLogOpen(/dev/log_security, O_WRONLY) failed [E:\A\_work\2\s\src\Mono.Android\Test\Mono.Android-Tests.csproj] 2017-11-14T00:49:35.2324246Z E:\A\_work\2\s\bin\Debug\lib\xamarin.android\xbuild\Xamarin\Android\Xamarin.Android.Common.targets(1373,2): error APT0000: fakeLogOpen(/dev/log_security, O_WRONLY) failed [E:\A\_work\2\s\src\Mono.Android\Test\Mono.Android-Tests.csproj] 2017-11-14T00:49:35.2333825Z Done executing task "Aapt" -- FAILED. (TaskId:87) ``` I was able to repro this locally with the following PowerShell script: ``` $successful='0' while ($successful -eq '0') { & git clean -dxf .\src\ .\bin\TestDebug\ & .\bin\Debug\bin\xabuild.exe .\src\Mono.Android\Test\Mono.Android-Tests.csproj /t:SignAndroidPackage /bl /noconsolelogger $successful = $lastExitCode } ``` Merely cleaning stuff and rebuilding over and over would cause the issue to crop up. What is also odd about the failure: - Running the `aapt.exe` command manually after the failure works - The exit code is 0 - If I change the Aapt task to ignore errors, the APK seems to be valid. Mono.Android-Tests still pass when I deploy and run them. So what I *think* should be done here is to just check for `fakeLogOpen` in the output, and treat this as a warning. This allows the build to go on, which seems to produce a valid APK. We may not know this is resolved until merged into master and we see a few builds succeed on VSTS.
94e1649 to
4477f69
Compare
|
You should probably file this upstream. There are no current developer tools bugs that mention |
Fixes: dotnet/java-interop#1031 Changes: dotnet/java-interop@2c8b0a8...fcc33ce * dotnet/java-interop@fcc33ce2: [java-source-utils] Add `$schema` to `CGManifest.json` (dotnet#1035) * dotnet/java-interop@58de60f2: [generator] Handle Java class with base class set to itself. (dotnet#1032)
Fixes: dotnet/java-interop#1031 Changes: dotnet/java-interop@2c8b0a8...fcc33ce * dotnet/java-interop@fcc33ce2: [java-source-utils] Add `$schema` to `CGManifest.json` (#1035) * dotnet/java-interop@58de60f2: [generator] Handle Java class with base class set to itself. (#1032)
Context: https://devdiv.visualstudio.com/DevDiv/_build/index?buildId=1137183
(search for APT0000 in Xamarin.Android-Tests.sln output)
Our Windows builds on VSTS are randomly failing with:
I was able to repro this locally with the following PowerShell script:
Merely cleaning stuff and rebuilding over and over would cause the issue
to crop up.
What is also odd about the failure:
aapt.execommand manually after the failure worksMono.Android-Tests still pass when I deploy and run them.
So what I think should be done here is to just check for
fakeLogOpenin the output, and treat this as a warning. This allows the build to go
on, which seems to produce a valid APK. We may not know this is resolved
until merged into master and we see a few builds succeed on VSTS.