I think I found the problem. It appears that when you modify the properties of the root project, a new config.xml does not get generated for existing branches but will be generated for new branches.
The original bug reported appears to be caused by
1) create multibranch workflow
2) check in branch (let's say 'feature/2') and notify Jenkins
3) modify multibranch workflow to add a parameter to 'feature/*'
4) check in feature/2 again
5) feature/2's config.xml (workflow-root/branches/feature%2F1/config.xml) remains as it was in step 2
If you then were to check in a new branch feature/3 (also matching feature/*), the config.xml generated for feature/2 correctly inherits the parameter, but feature/1 still will not
Going through the above example results in the following configs:
main config.xml
<strategy class="jenkins.branch.NamedExceptionsBranchPropertyStrategy">
<defaultProperties class="java.util.Arrays$ArrayList">
<a class="jenkins.branch.BranchProperty-array">
<jenkins.branch.UntrustedBranchProperty>
<publisherWhitelist class="sorted-set">
---snip---
</publisherWhitelist>
</jenkins.branch.UntrustedBranchProperty>
<org.jenkinsci.plugins.workflow.multibranch.WorkflowParameterDefinitionBranchProperty plugin="workflow-multibranch@1.9-beta-2">
<parameterDefinitions>
<hudson.model.BooleanParameterDefinition>
<name>RUN_TESTS</name>
<description></description>
<defaultValue>true</defaultValue>
</hudson.model.BooleanParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>test_parameter</name>
<description></description>
<defaultValue>SHOULD_EXIST</defaultValue>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</org.jenkinsci.plugins.workflow.multibranch.WorkflowParameterDefinitionBranchProperty>
</a>
</defaultProperties>
<namedExceptions class="java.util.Arrays$ArrayList">
<a class="jenkins.branch.NamedExceptionsBranchPropertyStrategy$Named-array">
<jenkins.branch.NamedExceptionsBranchPropertyStrategy_-Named>
---snip---
<name>development,master</name>
</jenkins.branch.NamedExceptionsBranchPropertyStrategy_-Named>
<jenkins.branch.NamedExceptionsBranchPropertyStrategy_-Named>
<props class="java.util.Arrays$ArrayList">
<a class="jenkins.branch.BranchProperty-array">
<org.jenkinsci.plugins.workflow.multibranch.WorkflowParameterDefinitionBranchProperty plugin="workflow-multibranch@1.9-beta-2">
<parameterDefinitions>
<hudson.model.BooleanParameterDefinition>
<name>RUN_TESTS</name>
<description></description>
<defaultValue>true</defaultValue>
</hudson.model.BooleanParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>SECOND_PROP</name>
<description></description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</org.jenkinsci.plugins.workflow.multibranch.WorkflowParameterDefinitionBranchProperty>
</a>
</props>
<name>feature/*</name>
</jenkins.branch.NamedExceptionsBranchPropertyStrategy_-Named>
</a>
</namedExceptions>
</strategy>
exception for feature/*: add RUN_TESTS and SECOND_PROP. prior to this (in step 2 above the above workflow), only RUN_TESTS was defined
'feature/2's config.xml
created *before* multibranch config change but pushed to after the config change
<flow-definition plugin="workflow-job@1.10-beta-1">
<properties>
<org.jenkinsci.plugins.workflow.multibranch.BranchJobProperty plugin="workflow-multibranch@1.9-beta-2">
<branch plugin="branch-api@0.2-beta-4">
<head plugin="scm-api@0.2">
<name>feature/workflow-test-2</name>
</head>
<properties class="java.util.concurrent.CopyOnWriteArrayList">
<org.jenkinsci.plugins.workflow.multibranch.WorkflowParameterDefinitionBranchProperty plugin="workflow-multibranch@1.9-beta-2">
<parameterDefinitions>
<hudson.model.BooleanParameterDefinition>
<name>RUN_TESTS</name>
<description></description>
<defaultValue>true</defaultValue>
</hudson.model.BooleanParameterDefinition>
</parameterDefinitions>
</org.jenkinsci.plugins.workflow.multibranch.WorkflowParameterDefinitionBranchProperty>
</properties>
</branch>
</org.jenkinsci.plugins.workflow.multibranch.BranchJobProperty>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions reference="../../org.jenkinsci.plugins.workflow.multibranch.BranchJobProperty/branch/properties/org.jenkinsci.plugins.workflow.multibranch.WorkflowParameterDefinitionBranchProperty/parameterDefinitions"/>
</hudson.model.ParametersDefinitionProperty>
</properties>
<definition class="org.jenkinsci.plugins.workflow.multibranch.SCMBinder" plugin="workflow-multibranch@1.9-beta-2"/>
<triggers/>
</flow-definition>
only RUN_TESTS defined
'feature/3's config.xml
created *after* multibranch config change and pushed to
<flow-definition plugin="workflow-job@1.10-beta-1">
<keepDependencies>false</keepDependencies>
<properties>
<org.jenkinsci.plugins.workflow.multibranch.BranchJobProperty plugin="workflow-multibranch@1.9-beta-2">
<branch plugin="branch-api@0.2-beta-4">
<head plugin="scm-api@0.2">
<name>feature/workflow-test-3</name>
</head>
<properties class="java.util.concurrent.CopyOnWriteArrayList">
<org.jenkinsci.plugins.workflow.multibranch.WorkflowParameterDefinitionBranchProperty plugin="workflow-multibranch@1.9-beta-2">
<parameterDefinitions>
<hudson.model.BooleanParameterDefinition>
<name>RUN_TESTS</name>
<description></description>
<defaultValue>true</defaultValue>
</hudson.model.BooleanParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>SECOND_PROP</name>
<description></description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</org.jenkinsci.plugins.workflow.multibranch.WorkflowParameterDefinitionBranchProperty>
</properties>
</branch>
</org.jenkinsci.plugins.workflow.multibranch.BranchJobProperty>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions reference="../../org.jenkinsci.plugins.workflow.multibranch.BranchJobProperty/branch/properties/org.jenkinsci.plugins.workflow.multibranch.WorkflowParameterDefinitionBranchProperty/parameterDefinitions"/>
</hudson.model.ParametersDefinitionProperty>
</properties>
<definition class="org.jenkinsci.plugins.workflow.multibranch.SCMBinder" plugin="workflow-multibranch@1.9-beta-2"/>
<triggers/>
</flow-definition>
both RUN_TESTS and SECOND_PROP defined
Wrote a functional test for this but it passes as expected. Will check to see if I can reproduce manually in the stated combination of software versions.