whisper: fix loop in expire() (#17532)
This commit is contained in:
parent
9574968116
commit
75ae5af62a
@ -717,7 +717,7 @@ func (w *Whisper) expire() {
|
||||
w.stats.messagesCleared++
|
||||
w.stats.memoryCleared += sz
|
||||
w.stats.memoryUsed -= sz
|
||||
return true
|
||||
return false
|
||||
})
|
||||
w.expirations[expiry].Clear()
|
||||
delete(w.expirations, expiry)
|
||||
|
@ -487,27 +487,34 @@ func TestExpiry(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("failed generateMessageParams with seed %d: %s.", seed, err)
|
||||
}
|
||||
|
||||
params.TTL = 1
|
||||
msg, err := NewSentMessage(params)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to create new message with seed %d: %s.", seed, err)
|
||||
}
|
||||
env, err := msg.Wrap(params)
|
||||
if err != nil {
|
||||
t.Fatalf("failed Wrap with seed %d: %s.", seed, err)
|
||||
}
|
||||
|
||||
err = w.Send(env)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to send envelope with seed %d: %s.", seed, err)
|
||||
messagesCount := 5
|
||||
|
||||
// Send a few messages one after another. Due to low PoW and expiration buckets
|
||||
// with one second resolution, it covers a case when there are multiple items
|
||||
// in a single expiration bucket.
|
||||
for i := 0; i < messagesCount; i++ {
|
||||
msg, err := NewSentMessage(params)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to create new message with seed %d: %s.", seed, err)
|
||||
}
|
||||
env, err := msg.Wrap(params)
|
||||
if err != nil {
|
||||
t.Fatalf("failed Wrap with seed %d: %s.", seed, err)
|
||||
}
|
||||
|
||||
err = w.Send(env)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to send envelope with seed %d: %s.", seed, err)
|
||||
}
|
||||
}
|
||||
|
||||
// wait till received or timeout
|
||||
var received, expired bool
|
||||
for j := 0; j < 20; j++ {
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
if len(w.Envelopes()) > 0 {
|
||||
if len(w.Envelopes()) == messagesCount {
|
||||
received = true
|
||||
break
|
||||
}
|
||||
|
@ -900,7 +900,7 @@ func (whisper *Whisper) expire() {
|
||||
whisper.stats.messagesCleared++
|
||||
whisper.stats.memoryCleared += sz
|
||||
whisper.stats.memoryUsed -= sz
|
||||
return true
|
||||
return false
|
||||
})
|
||||
whisper.expirations[expiry].Clear()
|
||||
delete(whisper.expirations, expiry)
|
||||
|
@ -465,27 +465,34 @@ func TestExpiry(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("failed generateMessageParams with seed %d: %s.", seed, err)
|
||||
}
|
||||
|
||||
params.TTL = 1
|
||||
msg, err := NewSentMessage(params)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to create new message with seed %d: %s.", seed, err)
|
||||
}
|
||||
env, err := msg.Wrap(params)
|
||||
if err != nil {
|
||||
t.Fatalf("failed Wrap with seed %d: %s.", seed, err)
|
||||
}
|
||||
|
||||
err = w.Send(env)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to send envelope with seed %d: %s.", seed, err)
|
||||
messagesCount := 5
|
||||
|
||||
// Send a few messages one after another. Due to low PoW and expiration buckets
|
||||
// with one second resolution, it covers a case when there are multiple items
|
||||
// in a single expiration bucket.
|
||||
for i := 0; i < messagesCount; i++ {
|
||||
msg, err := NewSentMessage(params)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to create new message with seed %d: %s.", seed, err)
|
||||
}
|
||||
env, err := msg.Wrap(params)
|
||||
if err != nil {
|
||||
t.Fatalf("failed Wrap with seed %d: %s.", seed, err)
|
||||
}
|
||||
|
||||
err = w.Send(env)
|
||||
if err != nil {
|
||||
t.Fatalf("failed to send envelope with seed %d: %s.", seed, err)
|
||||
}
|
||||
}
|
||||
|
||||
// wait till received or timeout
|
||||
var received, expired bool
|
||||
for j := 0; j < 20; j++ {
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
if len(w.Envelopes()) > 0 {
|
||||
if len(w.Envelopes()) == messagesCount {
|
||||
received = true
|
||||
break
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user