Issue Type: Bug Bug
Assignee: Frédéric Camblor
Components: scm-sync-configuration
Created: 11/Jul/13 4:14 PM
Description:

We were experiencing extrem slow fingerprinting in post-build step. It turns out that the include pattern of scm sync configure plugin is triggered by FingerPrint.save() (details see discussion in mailing list[1]). So the include pattern may significantly impact the speed. Here is a thread dump:

Executor #1 for comitdev16 : executing SD-2112 #3" Id=62 Group=main RUNNABLE
	at java.io.UnixFileSystem.list(Native Method)
	at java.io.File.list(File.java:973)
	at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1257)
	at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
	at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
	at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
	at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1211)
	at org.apache.tools.ant.DirectoryScanner.checkIncludePatterns(DirectoryScanner.java:1030)
	at org.apache.tools.ant.DirectoryScanner.scan(DirectoryScanner.java:909)
	-  locked org.apache.tools.ant.DirectoryScanner@34cf6c49
	at hudson.plugins.scm_sync_configuration.strategies.model.PatternsEntityMatcher.matchingFilesFrom(PatternsEntityMatcher.java:41)
	at hudson.plugins.scm_sync_configuration.strategies.model.PatternsEntityMatcher.matches(PatternsEntityMatcher.java:25)
	at hudson.plugins.scm_sync_configuration.strategies.AbstractScmSyncStrategy.isSaveableApplicable(AbstractScmSyncStrategy.java:53)
	at hudson.plugins.scm_sync_configuration.ScmSyncConfigurationPlugin.getStrategyForSaveable(ScmSyncConfigurationPlugin.java:277)
	at hudson.plugins.scm_sync_configuration.extensions.ScmSyncConfigurationSaveableListener.onChange(ScmSyncConfigurationSaveableListener.java:22)
	at hudson.model.listeners.SaveableListener.fireOnChange(SaveableListener.java:78)
	at hudson.model.Fingerprint.save(Fingerprint.java:862)
	-  locked hudson.model.Fingerprint@281c2370
	at hudson.model.Fingerprint.<init>(Fingerprint.java:597)
	at hudson.model.FingerprintMap.create(FingerprintMap.java:90)
	at hudson.model.FingerprintMap.create(FingerprintMap.java:45)
	at hudson.util.KeyedDataStorage.get(KeyedDataStorage.java:156)
	at hudson.model.FingerprintMap.get(FingerprintMap.java:79)
	at hudson.model.FingerprintMap.get(FingerprintMap.java:45)
	at hudson.util.KeyedDataStorage.getOrCreate(KeyedDataStorage.java:108)
	at hudson.model.FingerprintMap.getOrCreate(FingerprintMap.java:65)
	at hudson.tasks.Fingerprinter$1Record.addRecord(Fingerprinter.java:210)
	at hudson.tasks.Fingerprinter.record(Fingerprinter.java:254)
	at hudson.tasks.Fingerprinter.perform(Fingerprinter.java:133)
	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:776)
	at hudson.model.Build$BuildExecution.post2(Build.java:183)
	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:726)
	at hudson.model.Run.execute(Run.java:1601)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
	at hudson.model.ResourceController.execute(ResourceController.java:88)
	at hudson.model.Executor.run(Executor.java:241)

I think reacting to all SaveableListener.fireOnChange might be too aggressive, since in this paticular case, no configuration changes are involved.

[1] https://groups.google.com/forum/#!topic/jenkinsci-users/AftANOOYgt8

Environment: Jenkins 1.518
Project: Jenkins
Labels: fingerprints
Priority: Minor Minor
Reporter: Hua Zhang
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Reply via email to