History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: CIB-2089
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: 3 3
Assignee: jason
Reporter: Leif Ames
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Pulse

Parsing CVS revision with multiple decimal points causes cron triggers to fail

Created: 27/Aug/09 03:10 PM   Updated: 01/Oct/09 06:26 AM
Component/s: Scm
Affects Version/s: None
Fix Version/s: 2.0.39, 2.1.8

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
Environment:
Windows XP SP2
Pulse 2.0.33, but this has also happened on older versions of 2.0.x
Server: Concurrent Versions System (CVS) 1.12.12 (client/server)


 Description  « Hide
CRON triggers occasionally fail with the error message

    * Unexpected error: multiple points
    * build stage :: default :: internal-build@[pending]
          o Recipe aborted

If I look through the server messages, I find a severe error in com.zutubi.pulse.master.BuildController :: handleEvent with the same timestamp as the failed build and the following text:

java.lang.NumberFormatException: multiple points
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1084)
at java.lang.Double.parseDouble(Double.java:510)
at java.text.DigitList.getDouble(DigitList.java:151)
at java.text.DecimalFormat.parse(DecimalFormat.java:1303)
at java.text.SimpleDateFormat.subParse(SimpleDateFormat.java:1542)
at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1264)
at java.text.DateFormat.parse(DateFormat.java:335)
at com.zutubi.pulse.core.scm.cvs.CvsRevision.<init>(CvsRevision.java:119)
at com.zutubi.pulse.core.scm.cvs.CvsClient.convertRevision(CvsClient.java:666)
at com.zutubi.pulse.core.scm.cvs.CvsClient.getChanges(CvsClient.java:470)
at com.zutubi.pulse.core.scm.cvs.CvsClient.getRevisions(CvsClient.java:541)
at com.zutubi.pulse.core.scm.cvs.CvsClient.getLatestRevision(CvsClient.java:573)
at com.zutubi.pulse.master.BuildController$4.process(BuildController.java:438)
at com.zutubi.pulse.master.BuildController$4.process(BuildController.java:434)
at com.zutubi.pulse.master.scm.ScmClientUtils.withScmClient(ScmClientUtils.java:63)
at com.zutubi.pulse.master.BuildController.getLatestRevision(BuildController.java:432)
at com.zutubi.pulse.master.BuildController.updateRevision(BuildController.java:416)
at com.zutubi.pulse.master.BuildController.initialiseRevision(BuildController.java:358)
at com.zutubi.pulse.master.BuildController.handleControllerBootstrap(BuildController.java:323)
at com.zutubi.pulse.master.BuildController.handleEvent(BuildController.java:260)
at com.zutubi.events.AsynchronousDelegatingListener$1.run(AsynchronousDelegatingListener.java:42)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at com.zutubi.pulse.master.security.PulseThreadFactory$DelegatingRunnable.run(PulseThreadFactory.java:33)
at java.lang.Thread.run(Thread.java:619)
)

This has been happening intermittently since I upgraded to Pulse 2.0. There are 2 builds that trigger at the same time on a CRON trigger--one on the Windows XP box running the pulse server, and one on a Macintosh build agent. When this error occurs, both builds fail after 0ms. If I trigger the build manually after such an error, it works fine.
Let me know if there are any additional log files that I should post.


 All   Comments   Work Log   Change History      Sort Order:
Daniel Ostermeier - 30/Aug/09 11:59 PM
Hi Leif,

Thank you for reporting this problem. Unfortunately it seems that we are not logging quite enough information to let us know exactly where we are going wrong. In particular, the actual revision string that we are attempting (but failing) to parse.

Would you happen to have an example of the revision string that one of these builds is attempting to use?

Either way, we will update the error handling here to at leave provide more feedback so that we can conclusively track down and fix the problem.

Cheers,
-Daniel

Daniel Ostermeier - 31/Aug/09 12:01 AM
On a side note, we did make some changes to the revision parsing in 2.0.37, so it would be worth upgrading to the latest 2.0.x release to see if it resolves the problem you are seeing as well.

Cheers,
-Daniel

jason - 28/Sep/09 08:36 AM
We believe we have tracked down the root cause of this (a thread safety issue). Fixed in change 6683.

jason - 01/Oct/09 06:26 AM
Merged to trunk in change 6690.