When the Illrequest object is being constructed, it consults the status graphs for enabled backends. These status graphs are then merged into the main graph in order to provide the full workflow for a request. As part of this process, the "next_actions" property is updated to reflect any new statuses. During this, a check is performed to determine if the status graph knows about the next status being declared by a backend status graph: if ( grep $prev_action, @core_status_ids ) { This is incorrect. According to http://perldoc.perl.org/functions/grep.html, the first parameter should be a block or expression, here we are passing a string. This malfunctions in so much as passing "REQ" with match twice in the following array [ "REQ", "REQREV" ], this is not what we would expect. The fix is to substitute the following line: if ( grep /^$prev_action$/, @core_status_ids ) {
Created attachment 76020 [details] [review] Bug 20923: Fix usage of grep This patch implements the fix described in the bug description. It is impossible to test without the work that will be added to bug 20917. Therefore a dependency will be added for that bug and a test plan will be added here when that work is done.
*** This bug has been marked as a duplicate of bug 22280 ***