Bug 1255741

Summary: nunit fails to build on ppc64le
Product: [Fedora] Fedora Reporter: Rafael Fonseca <rdossant>
Component: nunitAssignee: Timotheus Pokorra <pokorra.mailinglists>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 23CC: claudiorodrigo, dan, hannsj_uhl, mono, pokorra.mailinglists
Target Milestone: ---   
Target Release: ---   
Hardware: ppc64le   
OS: Linux   
Whiteboard:
Fixed In Version: nunit-2.6.4-12.fc25 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-07-07 10:31:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1051573, 1185763    

Description Rafael Fonseca 2015-08-21 12:31:09 UTC
Description of problem: nunit fails to build with the following error message:

/usr/lib/mono/4.5/Microsoft.Common.targets: error : Tool exited with code: 1. Output: Error: Exception has been thrown by the target of an invocation.
Inner exception: A null reference or invalid value was found [GDI+ status: InvalidParameter]
				Tool /usr/lib/mono/4.5/resgen.exe execution started with arguments: /useSourcePath /compile "TestTree.resx,obj/Debug/NUnit.UiKit.TestTree.resources" 
				Tool /usr/lib/mono/4.5/resgen.exe execution started with arguments: /useSourcePath /compile "TextOutputSettingsPage.resx,obj/Debug/NUnit.UiKit.TextOutputSettingsPage.resources" 
				Tool /usr/lib/mono/4.5/resgen.exe execution started with arguments: /useSourcePath /compile "TipWindow.resx,obj/Debug/CP.Windows.Forms.TipWindow.resources" 
				Tool /usr/lib/mono/4.5/resgen.exe execution started with arguments: /useSourcePath /compile "TreeBasedSettingsDialog.resx,obj/Debug/NUnit.UiKit.TreeBasedSettingsDialog.resources" 
/usr/lib/mono/4.5/Microsoft.Common.targets: error : Tool exited with code: 1. Output: Error: Exception has been thrown by the target of an invocation.
Inner exception: A null reference or invalid value was found [GDI+ status: InvalidParameter]
			Task "GenerateResource" execution -- FAILED
			Done building target "GenerateResources" in project "/builddir/build/BUILD/nunitv2-2.6.4/src/GuiComponents/UiKit/nunit.uikit.dll.csproj".-- FAILED
		Done building project "/builddir/build/BUILD/nunitv2-2.6.4/src/GuiComponents/UiKit/nunit.uikit.dll.csproj".-- FAILED
	Task "MSBuild" execution -- FAILED
	Done building target "ResolveProjectReferences" in project "/builddir/build/BUILD/nunitv2-2.6.4/src/GuiRunner/nunit-gui/nunit-gui.csproj".-- FAILED
Done building project "/builddir/build/BUILD/nunitv2-2.6.4/src/GuiRunner/nunit-gui/nunit-gui.csproj".-- FAILED
Build FAILED.
Errors:
/builddir/build/BUILD/nunitv2-2.6.4/src/GuiRunner/nunit-gui/nunit-gui.csproj (default targets) ->
/usr/lib/mono/4.5/Microsoft.Common.targets (ResolveProjectReferences target) ->
/builddir/build/BUILD/nunitv2-2.6.4/src/GuiComponents/UiKit/nunit.uikit.dll.csproj (default targets) ->
/usr/lib/mono/4.5/Microsoft.Common.targets (GenerateResources target) ->
	/usr/lib/mono/4.5/Microsoft.Common.targets: error : Tool exited with code: 1. Output: Error: Exception has been thrown by the target of an invocation.
Inner exception: A null reference or invalid value was found [GDI+ status: InvalidParameter]
	/usr/lib/mono/4.5/Microsoft.Common.targets: error : Tool exited with code: 1. Output: Error: Exception has been thrown by the target of an invocation.
Inner exception: A null reference or invalid value was found [GDI+ status: InvalidParameter]
	 0 Warning(s)
	 2 Error(s)
Time Elapsed 00:00:07.7548090
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.qjZa6L (%build)


Version-Release number of selected component (if applicable): 2.6.4-9


How reproducible: ppc-koji build nonunit on ppc64le

Comment 1 Rafael Fonseca 2015-08-21 12:36:11 UTC
Note that nunit blocks nant. nant blocks log4net. And log4net blocks smuxi [1].

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1185763

Comment 2 Timotheus Pokorra 2015-08-21 16:15:24 UTC
I think these are the commands to reproduce it outside of the whole build:

cd /builddir/build/BUILD/nunitv2-2.6.4/src/GuiComponents/UiKit
mkdir -p obj/Debug
mono /usr/lib/mono/4.5/resgen.exe /useSourcePath /compile "TestSuiteTreeView.resx,obj/Debug/NUnit.UiKit.TestSuiteTreeView.resources"

note that other resx files with format Microsoft ResX Schema Version 1.3 seem to work fine, eg https://github.com/nunit/nunitv2/blob/master/src/GuiComponents/UiKit/ConfigurationEditor.resx 
This resx only has an icon.

But this is the failing resx file: https://github.com/nunit/nunitv2/blob/master/src/GuiComponents/UiKit/TestSuiteTreeView.resx
Microsoft ResX Schema Version 2.0
and it has an ImageStream

So libgdiplus has problems with that.

I modified the spec file to see what output this generates: strace mono --verbose /usr/lib/mono/4.5/resgen.exe /useSourcePath /compile "TestSuiteTreeView.resx,obj/Debug/NUnit.UiKit.TestSuiteTreeView.resources"
You can see it here in a scratch build: http://ppc.koji.fedoraproject.org/kojifiles/work/tasks/4746/2714746/build.log 

look for "Error: Exception has been thrown"

stat("/usr/share/fonts/zvbi/caption.pcf.gz", {st_mode=S_IFREG|0644, st_size=3046, ...}) = 0
stat("/usr/share/fonts/zvbi/captioni.pcf.gz", {st_mode=S_IFREG|0644, st_size=3381, ...}) = 0
stat("/usr/share/fonts/zvbi/fonts.alias", {st_mode=S_IFREG|0644, st_size=71, ...}) = 0
stat("/usr/share/fonts/zvbi/fonts.dir", {st_mode=S_IFREG|0644, st_size=624, ...}) = 0
stat("/usr/share/fonts/zvbi/teletext1.pcf.gz", {st_mode=S_IFREG|0644, st_size=18631, ...}) = 0
stat("/usr/share/fonts/zvbi/teletext1i.pcf.gz", {st_mode=S_IFREG|0644, st_size=18759, ...}) = 0
stat("/usr/share/fonts/zvbi/teletext2.pcf.gz", {st_mode=S_IFREG|0644, st_size=21342, ...}) = 0
stat("/usr/share/fonts/zvbi/teletext2i.pcf.gz", {st_mode=S_IFREG|0644, st_size=21677, ...}) = 0
stat("/usr/share/fonts/zvbi/teletext4.pcf.gz", {st_mode=S_IFREG|0644, st_size=22774, ...}) = 0
stat("/usr/share/fonts/zvbi/teletext4i.pcf.gz", {st_mode=S_IFREG|0644, st_size=22576, ...}) = 0
close(7)                                = 0
close(6)                                = 0
mmap(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3fff92ba0000
fcntl(1, F_GETFL)                       = 0x1 (flags O_WRONLY)
ioctl(1, TCGETS, 0x3fffdc9403a0)        = -1 ENOTTY (Inappropriate ioctl for device)
fcntl(2, F_GETFL)                       = 0x1 (flags O_WRONLY)
fcntl(0, F_GETFL)                       = 0x10000 (flags O_RDONLY|0x10000)
write(1, "Error: Exception has been thrown"..., 65) = 65
write(1, "Inner exception: A null referenc"..., 93) = 93
close(3)                                = 0

hope this gives a starting point for someone else...
at the moment I don't know where to look next

Comment 3 Dan HorĂ¡k 2016-07-07 10:31:33 UTC
fixed in http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=3515495