Hi,
thanks for the hints, I added this locally, it seems to work when I run the
ooxml-schemas target. I am not a Python expert, but the changes seemed easy
enough, see attached diffs.
I had to split it into two files as the metadata directory is an
svn-external.
Regards... Dominik.
On Fri, Oct 21, 2016 at 5:31 PM, Stefan Bodewig <[email protected]> wrote:
> Hi Dominik
>
> On 2016-10-20, Dominik Stadler wrote:
>
> > Since some time one of the steps in the POI builds inside Gump is
> failing,
> > see below. We think it is related to the 1 hour timeout that is applied
> by
> > default.
>
> Yes, looks that way.
>
> > The step compiles a big number of files, but finishes in a few minutes
> > usually. Our builds on the Apache Jenkins instance usually take up to 40
> > minutes for the complete build which includes a number of additional
> steps,
> > so we are not sure why it is taking so long here, maybe the machine is
> > quite limited on memory/CPU?
>
> Yes, vmgump is a pretty limited. We are in the process of replacing it,
> but it may take a while until we get there.
>
> > Is there a simple way to try to increase the timeout for this specific
> > build?
>
> This is not implemented, although most of the infrastructure would be
> there.
>
> In case anybody with some working Python knowledge can spare a bit of
> time: https://svn.apache.org/repos/asf/gump/live/ holds the code.
>
> All builders create an instance of gump.util.process.Cmd and the timeout
> value could be configured via a constructor arg. For POI it would be
> enough to add an optional timeout property to
> gump.core.model.builder.Ant (likely Builder would be the better place)
> and use that from gump.core.build.Ant.getAntCommand - the builder
> instance is project.ant.
>
> I'm not sure how quick I'd be able to make the changes myself, I'm
> switching between a couple of tasks (including the new VM for gump)
> right now.
>
> Stefan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
Index: /opt/apache/gump-live/metadata/dtd/project.dtd
===================================================================
--- /opt/apache/gump-live/metadata/dtd/project.dtd (Revision 1766220)
+++ /opt/apache/gump-live/metadata/dtd/project.dtd (Arbeitskopie)
@@ -96,6 +96,7 @@
basedir CDATA #IMPLIED
verbose CDATA #IMPLIED
debug CDATA #IMPLIED
+ timeout CDATA #IMPLIED
vm CDATA #IMPLIED >
<!ATTLIST nant
Index: /opt/apache/gump-live/metadata/project/poi.xml
===================================================================
--- /opt/apache/gump-live/metadata/project/poi.xml (Revision 1766220)
+++ /opt/apache/gump-live/metadata/project/poi.xml (Arbeitskopie)
@@ -75,7 +75,7 @@
</project>
<project name="ooxml-schemas" groupId="org.apache.poi">
- <ant target="compile-ooxml-xsds">
+ <ant target="compile-ooxml-xsds" timeout="10800">
<sysproperty name="ant.build.clonevm" value="true"/>
</ant>
Index: /opt/apache/gump-live/python/gump/core/build/ant.py
===================================================================
--- /opt/apache/gump-live/python/gump/core/build/ant.py (Revision 1766220)
+++ /opt/apache/gump-live/python/gump/core/build/ant.py (Arbeitskopie)
@@ -101,6 +101,12 @@
# The ant build file (or none == build.xml)
buildfile = ant.getBuildFile()
+ # Optional 'timeout'
+ if ant.hasTimeout:
+ timeout = ant.getTimeout()
+ else:
+ timeout = setting.TIMEOUT
+
# Optional 'verbose' or 'debug'
verbose=ant.isVerbose()
debug=ant.isDebug()
@@ -119,7 +125,7 @@
# Run java on apache Ant...
cmd=Cmd(javaCommand,'build_'+project.getModule().getName()+'_'+project.getName(),
- basedir,{'CLASSPATH':classpath})
+ basedir,{'CLASSPATH':classpath}, timeout)
# These are workspace + project system properties
cmd.addNamedParameters(sysproperties)
Index: /opt/apache/gump-live/python/gump/core/model/builder.py
===================================================================
--- /opt/apache/gump-live/python/gump/core/model/builder.py (Revision 1766220)
+++ /opt/apache/gump-live/python/gump/core/model/builder.py (Arbeitskopie)
@@ -236,6 +236,10 @@
self.target = self.getDomAttributeValue('target')
# Import the buildfile
self.buildfile = self.getDomAttributeValue('buildfile')
+ # Import the timeout
+ self.timeout = self.getDomAttributeValue('timeout')
+ if self.timeout is not None:
+ self.timeout = float(self.timeout)
def hasTarget(self):
if self.target:
@@ -253,6 +257,14 @@
def getBuildFile(self):
return self.buildfile
+ def hasTimeout(self):
+ if self.timeout:
+ return True
+ return False
+
+ def getTimeout(self):
+ return self.timeout
+
def dump(self, indent = 0, output = sys.stdout):
""" Display the contents of this object """
Builder.dump(self, indent, output)
@@ -261,6 +273,8 @@
output.write(i+'Target: ' + self.getTarget() + '\n')
if self.hasBuildFile():
output.write(i+'BuildFile: ' + self.getBuildFile() + '\n')
+ if self.timeout():
+ output.write(i+'Timeout: ' + self.getTimeout() + '\n')
class Ant(BaseAnt):
""" An Ant command (within a project) """
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]