Comments

  • toby
    posted October 8, 2009 in Go > General Discussion

    I'll install the new release on a second server and then move it into production. However I doubt that the upgrade will fix the degradation of performance over time which is our main concern.

    At the same time the degradation in performance started we see occasional jobs pages listing "no project".

    Certain jobs spend can spend several minutes scheduled or assigned, when there are plenty of resourced agents free.

    I have attached the server logs which include this error:

    2009-10-05 20:36:57,032 ERROR [main] H2EventListener:26 - Exception thrown from database on sql statement: CREATE PRIMARY KEY ON PUBLIC.BUILDS(ID)

    org.h2.jdbc.JdbcSQLException: Unique index or primary key violation: PRIMARY_KEY_7 ON PUBLIC.BUILDS(ID); SQL statement:

    Indicating to me a fairly serious db problem.
  • toby
    posted October 6, 2009 in Go > General Discussion

    1) 

    Cruise Server Version: 1.3.1(8123-42c322408f74)
    JVM version: 14.0-b16
    OS Information: Linux 2.6.18-92.el5
    Usable space in artifacts repository: 34691 Mb
    Database schema version: 41
    License expiry date: 2010-05-01
    Number of remote agents Cruise is licensed for: 100
    Number of users Cruise is licensed for: 30
    Cruise edition: Professional

    2) cpu is about 75% 

    3) database:

    total 508M

    -rw-rw-r-- 1 cruise cruise 2.2M Oct  6 11:05 cruise.68.log.db

    -rw-rw-r-- 1 cruise cruise 417M Oct  6 11:05 cruise.data.db

    -rw-rw-r-- 1 cruise cruise 225M Oct  6 11:05 cruise.index.db

    -rw-rw-r-- 1 cruise cruise   99 Oct  5 20:37 cruise.lock.db

    -rw-rw-r-- 1 cruise cruise  40M Oct  6 10:52 cruise.trace.db

    4) we have about 35 agents connected. they are also hosted on vms

    Thanks

    toby


  • toby
    posted August 20, 2009 in Go > Feature Requests

    we have our main branch Caplin-Trader-Main. Every two weeks we release. To release we create a branch of main called CaplinTrader-1.4.6 for example. The we setup a new pipeline in cruise for CaplinTrader-1.4.6 to build the branch of code. There is often a round of bug fixes or feature removals so people do check into the branch.

    Every successful build we run a pipeline containing performance tests which can take their feed from either the branch or main, but for these tests to run it needs to know which one triggered it. We currently have to manually change the name of this var in the code every time we branch.

    The value of the dependency label is very useful to us but the fact the name changes means we would have to keep modifying code to keep up with the name changes. which is annoying and unecessary.

    does this make things any clearer?

  • toby
    posted August 3, 2009 in Go > General Discussion

    Thank you for adding the solaris installer to the download list. It wasn't there when you released 1.3

  • toby
    posted February 27, 2009 in Go > Bug Reports

    This error has just reoccurred. I installed the Cruise Server Version: 1.2(6278-05138ca7feda) you sent me. Hopefully we have some logs that highlight the problem. What Qiao, what do you want me to send in?

    thanks

    toby

  • toby
    posted February 11, 2009 in Go > General Discussion

    the agent reuses the same client each time it build a job, so the client string must be stored on the agent somewhere, right?

  • toby
    posted February 11, 2009 in Go > General Discussion

    a bit hacky but managed to get changelist number from the console log on the server

    url = ‘http://’config[‘cruiseserverurl’]’/cruise/files/’config[‘pipeline’]’/’config[‘pipelinecounter’]’/installer/LATEST/makeInstaller/cruise-output/console.log’
    f = urllib.urlopen(url)
    consoleLog = f.read()

  • toby
    posted February 11, 2009 in Go > Bug Reports

    Thanks for the reply Qiao, i have just sent a email with the necessary files

  • toby
    posted February 6, 2009 in Go > General Discussion

    thanks for confirming that.
    As Tim (tlittle) points out the docs could do with an update. This was my first stumbling block and will be many other peoples too

  • toby
    posted February 5, 2009 in Go > General Discussion

    I am a little confused as well.
    perforce says the following:
    Views consist of multiple mappings. Each mapping has two parts.
    italics
    The left-hand side specifies one or more files in the depot and has the form: //depotname/file_specification

    The right-hand side specifies one or more files in the client workspace and has the form: //clientname/file_specification
    italics

    it seems to me that the docs doesn’t explain the right hand side of the view very well.
    I am used to setting the right hand side to a particular client, but i guess cruise creates the right hand side depending on what agent is running the job. It seems that ‘cruiseclient’ can be anything.

    it is possible to specify multiple views eg:
    <view>
    <![CDATA[//DHTML/main/build/... //cruiseclient/main/build/...
    //DHTML/main/acceptance-tests2/... //cruiseclient/main/acceptance-tests2/...
    //DHTML/main/client/... //cruiseclient/main/client/...
    //DHTML/main/libraries/... //cruiseclient/main/libraries/...
    //DHTML/main/python-utils/... //cruiseclient/main/python-utils/...
    //DHTML/main/Widgets/... //cruiseclient/main/Widgets/...
    //DHTML/4.5-Release/SL4B/... //cruiseclient/4.5-Release/SL4B/...]]>
    </view>

  • toby
    posted February 6, 2009 in Go > Bug Reports

    Thanks for the reply Qiao

    The python script i am using takes the artifact list in json served by cruise and then iterates over it downloading each file and mirroring the folder structure.

    def getFiles(artifacts, filePaths): for artifact in artifacts: for path in filePaths: if artifact[‘url’].find(path) > 0: if artifact[‘type’] == ‘file’: print ‘Getting file ’, artifact[‘url’] # map the url to a file path based on common root path target = convertUrlToPath(artifact[‘url’]) # get the numbe rof letters in the file name and add one for the slash filenameLen = len(os.path.basename(target)) +1 # Now we know the length of the filename and slash trim this from path target = target[0:-filenameLen] #shouldn’t need to check if the dir exists as it should always hit the parent folder first int he json print ‘Change dir ’, target os.chdir(target) try: f = urllib.urlretrieve(artifact[‘url’]) dest = os.path.join( os.getcwd(), artifact[‘name’]) shutil.copy(f0, dest) print ‘SUCCESS copied to ’, dest except: print ‘Error: Could not download file: ’,artifact[‘url’]

    elif artifact['type'] == 'folder':
        #need to turn the cruise url into a suitable file path
        target = convertUrlToPath(artifact['url'])
    
    1. now we know what directory we need make sure it exists if not os.path.exists(target): mkdir(target)
    os.chdir(target)
    getFiles(artifact['files'], filePaths)
    

    Like i said i don’t have any precise timings on the download speed of each file. I will add this in a bit.

    My colleague has been looking at using fetchartifact and is experiencing similar issues. I have asked him to post up his findings at some point today.

    thanks

    toby

  • toby
    posted February 5, 2009 in Go > Bug Reports

    Thanks Jez

    I’ll send a email off now

  • toby
    posted February 5, 2009 in Go > General Discussion

    ah i see the docs have been updated.

    Thanks Qiao

  • toby
    posted February 5, 2009 in Go > General Discussion

    Thanks, i was close with my first guess on the stage counter.

    as for perforce I’ll just have to wait for version 2.0 i guess. Until then i am looking at posting the property back to cruise from the build script via the property api

  • toby
    posted February 5, 2009 in Go > Bug Reports

    Here is my server info:
    Cruise Server Version: 1.2(6244-435fc6c2823d)
    JVM version: 11.0-b16
    OS Information: Linux 2.6.9-67.0.15.plus.c4.VMware
    Usable space in artifacts repository: 34287 Mb
    Database schema version: 29
    License expiry date: Fri Feb 27 00:00:00 GMT 2009
    Number of agents Cruise is licensed for: 5

    As you can see we are using 1.2 and as i mentioned we do use VM’s, but have not had file transfer issues when using file shares or other methods (ftp).

    I need to do some more precise timings which i will do when i get my pipeline working.
    We don’t have any anti virus on our Linux machines.