Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 553179

Summary: Performance result graphs are not generated
Product: [Eclipse Project] Platform Reporter: Paul Pazderski <paul-eclipse>
Component: RelengAssignee: Paul Pazderski <paul-eclipse>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: akurtakov, daniel_megert, ericwill, loskutov, sravankumarl
Version: 4.13   
Target Milestone: 4.15 M1   
Hardware: All   
OS: All   
See Also: https://git.eclipse.org/r/153443
https://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?id=972cc986e62805523b69f7c4f249e6cc32082f5e
Whiteboard:
Bug Depends on: 558043, 558503    
Bug Blocks:    

Description Paul Pazderski CLA 2019-11-18 08:45:54 EST
Performance result generation fails atm with a lot of the following errors:

ERROR: Found number format exception converting date. Date: >13-201909161045-201911171800<.Could be corrupt data in DB?

I doubt my recent work in bug 548523 is the cause. Debugging the generation showed the following scenario:
 - a date is parsed from the build identifier
 - for baseline tests the identifier is comprised of a baseline prefix (atm '4.13-201909161045') and the current test run (for above error '201911171800')
 - to find the date it will try to parse the name against 'yyyyMMddHHmm' and if it fails try again with one character cut at front each time
 - for reasons SimpleDateFormat will accept '13-201909161045-201911171800' as valid date (not the first time I'm surprised from java date parsing and a reason I like to disable lenient parsing)
 - later this "date" ('13-201909161045-201911171800') is tried to be parsed as long which (obviously) fails


What bothers me the most about this error is that I can not explain why it ever worked.
Comment 1 Paul Pazderski CLA 2019-11-26 16:24:55 EST
Finally found something that could explain the problem. I partly wrote it already in comment 0 without knowing. The baseline 'prefix' atm is '4.13-201909161045' but in the result generation the baselineCode is 'R-4.13-201909161045'.

Those values in streamSpecific.properties and updateTestResultsPages.sh must be equal and it must start with a letter. It seems that the result generation tool produce errors if it start with a number.
Comment 2 Eclipse Genie CLA 2019-11-26 16:25:33 EST
New Gerrit change created: https://git.eclipse.org/r/153443
Comment 4 Alexander Kurtakov CLA 2019-11-30 16:26:33 EST
Results seems to be there but graphics are not generated. https://download.eclipse.org/eclipse/downloads/drops4/I20191130-0600/performance/performance.php
Comment 5 Paul Pazderski CLA 2019-12-02 05:33:32 EST
Yes. My last change helped but now there is a strange ArrayIndexOutOfBoundsException I have not seen locally.

06:30:49      [exec] java.lang.ArrayIndexOutOfBoundsException: 126000
06:30:49      [exec] 	at org.eclipse.swt.graphics.ImageLoader.save(ImageLoader.java:515)
06:30:49      [exec] 	at org.eclipse.test.performance.ui.FingerPrint.saveImage(FingerPrint.java:215)
06:30:49      [exec] 	at org.eclipse.test.performance.ui.FingerPrint.save(FingerPrint.java:201)
06:30:49      [exec] 	at org.eclipse.test.performance.ui.FingerPrint.print(FingerPrint.java:149)
06:30:49      [exec] 	at org.eclipse.test.performance.ui.GenerateResults.lambda$0(GenerateResults.java:559)
06:30:49      [exec] 	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236)
06:30:49      [exec] 	at org.eclipse.swt.widgets.Display.syncExec(Display.java:5786)
06:30:49      [exec] 	at org.eclipse.test.performance.ui.GenerateResults.printComponent(GenerateResults.java:557)
06:30:49      [exec] 	at org.eclipse.test.performance.ui.GenerateResults.generate(GenerateResults.java:938)
06:30:49      [exec] 	at org.eclipse.test.performance.ui.GenerateResults.run(GenerateResults.java:838)
06:30:49      [exec] 	at org.eclipse.test.performance.ui.Main.start(Main.java:53)
06:30:49      [exec] 	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
Comment 6 Andrey Loskutov CLA 2019-12-02 14:19:22 EST
(In reply to Paul Pazderski from comment #5)
> Yes. My last change helped but now there is a strange
> ArrayIndexOutOfBoundsException I have not seen locally.
> 
> 06:30:49      [exec] java.lang.ArrayIndexOutOfBoundsException: 126000
> 06:30:49      [exec] 	at
> org.eclipse.swt.graphics.ImageLoader.save(ImageLoader.java:515)
> 06:30:49      [exec] 	at
> org.eclipse.test.performance.ui.FingerPrint.saveImage(FingerPrint.java:215)

Which SWT was used, and where are the full logs? We've had recently a fix in ImageLoader, I wonder if this is before or after the fix.
Comment 7 Paul Pazderski CLA 2019-12-02 16:05:20 EST
The job is https://ci.eclipse.org/releng/view/Performance%20Tests/job/ep-collectResults/
The failing part is not run on every job execution. Look for the runs with longest log. The latest is https://ci.eclipse.org/releng/view/Performance%20Tests/job/ep-collectResults/11812/
Comment 8 Eric Williams CLA 2019-12-02 16:13:47 EST
(In reply to Andrey Loskutov from comment #6)
> (In reply to Paul Pazderski from comment #5)
> > Yes. My last change helped but now there is a strange
> > ArrayIndexOutOfBoundsException I have not seen locally.
> > 
> > 06:30:49      [exec] java.lang.ArrayIndexOutOfBoundsException: 126000
> > 06:30:49      [exec] 	at
> > org.eclipse.swt.graphics.ImageLoader.save(ImageLoader.java:515)
> > 06:30:49      [exec] 	at
> > org.eclipse.test.performance.ui.FingerPrint.saveImage(FingerPrint.java:215)
> 
> Which SWT was used, and where are the full logs? We've had recently a fix in
> ImageLoader, I wonder if this is before or after the fix.

Good question, this sort of thing shouldn't be able to happen with the new fix. Any SWT build after I20191127-0600 should be good.
Comment 9 Paul Pazderski CLA 2019-12-02 16:16:26 EST
This is probably older. The application is in releng buildtools org.eclipse.test.performance.ui without any version range for SWT and the last time it was updated was afaik 2019-10-15. (see bug 548523 comment 30 ff)
Comment 10 Sravan Kumar Lakkimsetti CLA 2019-12-03 01:15:06 EST
(In reply to Paul Pazderski from comment #9)
> This is probably older. The application is in releng buildtools
> org.eclipse.test.performance.ui without any version range for SWT and the
> last time it was updated was afaik 2019-10-15. (see bug 548523 comment 30 ff)

Build tools is set of plugins. We install these on top of latest I-build(platform product) for generating these pages.

Here is the eclipse instance used https://build.eclipse.org/eclipse/builds/4I/siteDir/eclipse/downloads/drops4/I20191202-1800/org.eclipse.releng.basebuilder/

This can be accessible through sftp to build.eclipse.org and at path /shared/eclipse/builds/4I/siteDir/eclipse/downloads/drops4/I20191202-1800/org.eclipse.releng.basebuilder/
Comment 11 Paul Pazderski CLA 2019-12-03 01:24:59 EST
Thanks for the clarification Sravan. Had the vague feeling I missed something. Since SWT should be fixed the error is more likely in the custom downsampling method which directly manipulate the image data. Will check this later.
Comment 12 Paul Pazderski CLA 2019-12-09 14:58:14 EST
Found time to reproduce the ArrayIndexOutOfBoundsException. As expected the downsampling method is involved but in my opinion it is an SWT error. Opened bug 558043.  Will see if I need to change something in the result tool.
Comment 13 Paul Pazderski CLA 2019-12-09 15:17:23 EST
PS: since it is not obvious. The used method Utils.downSample does not change the image size but reduce the number of colors to max 256 and try to create an image with color table.
Comment 14 Paul Pazderski CLA 2019-12-27 04:33:13 EST
Finally, after quite a long time performance tests are back and produce complete results again.
Also thanks to Sravan for his support.
Comment 15 Alexander Kurtakov CLA 2019-12-27 04:34:27 EST
(In reply to Paul Pazderski from comment #14)
> Finally, after quite a long time performance tests are back and produce
> complete results again.
> Also thanks to Sravan for his support.

Thank you Paul! It is much appreciated!!