Bug 1255741 - nunit fails to build on ppc64le
Summary: nunit fails to build on ppc64le
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: nunit
Version: 23
Hardware: ppc64le
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Timotheus Pokorra
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F-ExcludeArch-ppc64le, PPC64LETracker 1185763
TreeView+ depends on / blocked
 
Reported: 2015-08-21 12:31 UTC by Rafael Fonseca
Modified: 2016-07-07 10:31 UTC (History)
5 users (show)

Fixed In Version: nunit-2.6.4-12.fc25
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-07-07 10:31:33 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

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


Note You need to log in before you can comment on or make changes to this bug.