Skip to content

introduce debug builds for noble#2612

Merged
djgalloway merged 1 commit into
ceph:mainfrom
shraddhaag:wip-shraddhaag-add-noble-debug
Jun 17, 2026
Merged

introduce debug builds for noble#2612
djgalloway merged 1 commit into
ceph:mainfrom
shraddhaag:wip-shraddhaag-add-noble-debug

Conversation

@shraddhaag

Copy link
Copy Markdown
Contributor

This commit adds debug builds for the distro noble. With this change, we will also get debug noble builds. This is especially useful for testing crimson in QA suites.

@shraddhaag

shraddhaag commented Jun 16, 2026

Copy link
Copy Markdown
Contributor Author

Testing as per: https://github.com/ceph/ceph-build?tab=readme-ov-file#testing-jjb-changes-by-hand-before-merging-to-main

Edit: unable to test due to this error message: shraddhaag is missing the Job/Configure permission

@shraddhaag shraddhaag moved this to Awaits review in Crimson Jun 17, 2026
@Matan-B

Matan-B commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Testing as per: https://github.com/ceph/ceph-build?tab=readme-ov-file#testing-jjb-changes-by-hand-before-merging-to-main

Edit: unable to test due to this error message: shraddhaag is missing the Job/Configure permission

This should only impact debug builds, as no suite is still actively using noble/debug builds IMO we should be able to merge and verify builds ftbfs (if any) in followup prs.

@Matan-B Matan-B moved this from Awaits review to Needs QA in Crimson Jun 17, 2026

@djgalloway djgalloway left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks correct so far. Need to update the cron job too though: https://github.com/ceph/ceph-build/blob/main/ceph-dev-cron/build/Jenkinsfile#L18-L35

@shraddhaag shraddhaag force-pushed the wip-shraddhaag-add-noble-debug branch from ee4bb8a to 6065582 Compare June 17, 2026 17:37
This commit adds debug builds for the distro noble. With this change, we
will also get debug noble builds. This is especially useful for testing
crimson in QA suites.
Signed-off-by: Shraddha Agrawal <shraddha.agrawal000@gmail.com>
@shraddhaag shraddhaag force-pushed the wip-shraddhaag-add-noble-debug branch from 6065582 to 3c7edbe Compare June 17, 2026 17:39
@shraddhaag

Copy link
Copy Markdown
Contributor Author

@djgalloway updated with the requested changes!

@shraddhaag shraddhaag requested a review from djgalloway June 17, 2026 17:39
@djgalloway djgalloway merged commit b06fc4d into ceph:main Jun 17, 2026
1 check passed
@tchaikov

Copy link
Copy Markdown
Contributor

this change introduced a regression:

Started by upstream project "ceph-trigger-build" build number 6252
originally caused by:
 Push to refs/heads/wip-pr-69521-kefu-2 by tchaikov
Obtained ceph-dev-pipeline/build/Jenkinsfile from git https://github.com/ceph/ceph-build
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
General error during class generation: Method too large: WorkflowScript.___cps___155942 ()Lcom/cloudbees/groovy/cps/impl/CpsFunction;

groovyjarjarasm.asm.MethodTooLargeException: Method too large: WorkflowScript.___cps___155942 ()Lcom/cloudbees/groovy/cps/impl/CpsFunction;
	at groovyjarjarasm.asm.MethodWriter.computeMethodInfoSize(MethodWriter.java:2087)
	at groovyjarjarasm.asm.ClassWriter.toByteArray(ClassWriter.java:447)
	at org.codehaus.groovy.control.CompilationUnit$17.call(CompilationUnit.java:850)
	at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1087)
	at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:624)
	at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:602)
	at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:579)
	at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:323)
	at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:293)
	at PluginClassLoader for script-security//org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox$Scope.parse(GroovySandbox.java:162)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:202)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:186)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:670)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:616)
	at PluginClassLoader for workflow-job//org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:344)
	at hudson.model.ResourceController.execute(ResourceController.java:97)
	at hudson.model.Executor.run(Executor.java:456)

1 error

	at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:309)
	at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1107)
	at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:624)
	at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:602)
	at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:579)
	at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:323)
	at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:293)
	at PluginClassLoader for script-security//org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox$Scope.parse(GroovySandbox.java:162)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:202)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:186)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:670)
	at PluginClassLoader for workflow-cps//org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:616)
	at PluginClassLoader for workflow-job//org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:344)
	at hudson.model.ResourceController.execute(ResourceController.java:97)
	at hudson.model.Executor.run(Executor.java:456)
[Checks API] No suitable checks publisher found.
Finished: FAILURE

see https://jenkins.ceph.com/job/ceph-dev-pipeline/6340/console. because the matrix inlines the full copy of the inner stages { } block into the script body for every non-excluded cell, at parse time. so the total size of generated method is roughly (number of active cells) × (size of that block), which exceeds JVM's 64 KB-per-method bytecode ceiling.

i'd suggest revert this change first. and prepare a proper fix for it -- one way is to define a free function which wraps build instead of inlining it.

@tchaikov

Copy link
Copy Markdown
Contributor

created #2616 to revert this change.

@shraddhaag

Copy link
Copy Markdown
Contributor Author

PR to prevent hitting JVM's 64KB limit: #2621
PR to reintroduce this change: #2622

@djgalloway djgalloway mentioned this pull request Jun 22, 2026
@perezjosibm perezjosibm moved this from Needs QA to Merged (Main) in Crimson Jun 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Merged (Main)

Development

Successfully merging this pull request may close these issues.

5 participants