Skip to content

Commit 8960d19

Browse files
Apply patch that addresses the issue with SAC
And improve how to parse a html table to extract its rows
1 parent d276798 commit 8960d19

File tree

3 files changed

+37
-17
lines changed

3 files changed

+37
-17
lines changed

deps/rabbit/src/rabbit_fifo.erl

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1529,9 +1529,12 @@ activate_next_consumer(#?STATE{consumers = Cons0,
15291529
State = State0#?STATE{consumers = Cons,
15301530
service_queue = ServiceQueue1,
15311531
waiting_consumers = Waiting},
1532+
Effects1 = consumer_update_active_effects(State, Active,
1533+
false, waiting,
1534+
Effects0),
15321535
Effects = consumer_update_active_effects(State, Consumer,
15331536
true, single_active,
1534-
Effects0),
1537+
Effects1),
15351538
{State, Effects};
15361539
{{ActiveCKey, ?CONSUMER_PRIORITY(ActivePriority) = Active},
15371540
{_NextCKey, ?CONSUMER_PRIORITY(WaitingPriority)}}
@@ -1829,8 +1832,22 @@ complete_and_checkout(#{} = Meta, MsgIds, ConsumerKey,
18291832
Effects0, State0) ->
18301833
State1 = complete(Meta, ConsumerKey, MsgIds, Con0, State0),
18311834
%% a completion could have removed the active/quiescing consumer
1832-
{State2, Effects1} = activate_next_consumer(State1, Effects0),
1833-
checkout(Meta, State0, State2, Effects1).
1835+
Effects1 = add_active_effect(Con0, State1, Effects0),
1836+
{State2, Effects2} = activate_next_consumer(State1, Effects1),
1837+
checkout(Meta, State0, State2, Effects2).
1838+
1839+
add_active_effect(#consumer{status = quiescing} = Consumer,
1840+
#?STATE{cfg = #cfg{consumer_strategy = single_active},
1841+
consumers = Consumers} = State,
1842+
Effects) ->
1843+
case active_consumer(Consumers) of
1844+
undefined ->
1845+
consumer_update_active_effects(State, Consumer, false, waiting, Effects);
1846+
_ ->
1847+
Effects
1848+
end;
1849+
add_active_effect(_, _, Effects) ->
1850+
Effects.
18341851

18351852
cancel_consumer_effects(ConsumerId,
18361853
#?STATE{cfg = #cfg{resource = QName}},

selenium/test/pageobjects/BasePage.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,10 @@ module.exports = class BasePage {
187187
}
188188
async getTable(tableLocator, firstNColumns, rowClass) {
189189
const table = await this.waitForDisplayed(tableLocator)
190-
const rows = await table.findElements(rowClass == undefined ?
191-
By.css('tbody tr') : By.css('tbody tr.' + rowClass))
190+
let tbody = await table.findElement(By.css('tbody'))
191+
let rows = await tbody.findElements(By.xpath("./child::*"))
192192
let table_model = []
193+
193194
for (let row of rows) {
194195
let columns = await row.findElements(By.css('td'))
195196
let table_row = []

selenium/test/queuesAndStreams/view-qq-consumers.js

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -97,18 +97,18 @@ describe('Given a quorum queue configured with SAC', function () {
9797
assert.equal("1", await queuePage.getConsumerCount())
9898
assert.equal("Consumers (1)", await queuePage.getConsumersSectionTitle())
9999
await queuePage.clickOnConsumerSection()
100-
let consumerTable = await queuePage.getConsumersTable()
101-
100+
let consumerTable = await doWhile(async function() {
101+
return queuePage.getConsumersTable()
102+
}, function(table) {
103+
return table[0][6].localeCompare("single active") == 0
104+
})
102105
assert.equal("single active", consumerTable[0][6])
103-
//assert.equal("●", consumerTable[0][5])
106+
104107
})
105108

106109
it('it should have two consumers, after adding a second subscriber', async function() {
107-
108-
console.log("Connecting..")
109110
amqp091conn = await amqplib.connect('amqp://guest:guest@localhost?frameMax=0')
110111
const ch1 = await amqp091conn.createChannel()
111-
console.log("Connected")
112112
// Listener
113113

114114
ch1.consume(queueName, (msg) => {}, {priority: 10})
@@ -118,23 +118,25 @@ describe('Given a quorum queue configured with SAC', function () {
118118
await queuePage.isLoaded()
119119
return queuePage.getConsumerCount()
120120
}, function(count) {
121-
return count.localeCompare("2")
121+
return count.localeCompare("2") == 0
122122
}, 5000)
123+
123124
assert.equal("2", await queuePage.getConsumerCount())
124125
assert.equal("Consumers (2)", await queuePage.getConsumersSectionTitle())
125126
await queuePage.clickOnConsumerSection()
126-
let consumerTable = await queuePage.getConsumersTable()
127-
console.log("consumer table: " + JSON.stringify(consumerTable))
127+
let consumerTable = await doWhile(async function() {
128+
return queuePage.getConsumersTable()
129+
}, function(table) {
130+
return table.length == 2
131+
}, 5000)
128132

129133
let activeConsumer = consumerTable[1][6].localeCompare("single active") == 0 ?
130134
1 : 0
131135
let nonActiveConsumer = activeConsumer == 1 ? 0 : 1
132136

133137
assert.equal("waiting", consumerTable[nonActiveConsumer][6])
134-
//assert.equal("○", consumerTable[nonActiveConsumer][5])
135138
assert.equal("single active", consumerTable[activeConsumer][6])
136-
//assert.equal("●", consumerTable[activeConsumer][5])
137-
await delay(5000)
139+
await delay(5000)
138140
})
139141

140142
after(function() {

0 commit comments

Comments
 (0)