Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Nomad
Commits
c0bbb136
Commit
c0bbb136
authored
7 years ago
by
Alex Dadgar
Browse files
Options
Download
Email Patches
Plain Diff
Fix force deadline notification
parent
91749a92
Branches unavailable
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc.1
v1.4.0-beta.1
v1.3.8
v1.3.7
v1.3.6
v1.3.5
v1.3.4
v1.3.3
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc.1
v1.3.0-beta.1
v1.2.15
v1.2.14
v1.2.13
v1.2.12
v1.2.11
v1.2.10
v1.2.9
v1.2.8
v1.2.7
v1.2.6
v1.2.5
v1.2.4
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc1
v1.2.0-beta1
v1.1.18
v1.1.17
v1.1.16
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.9
v1.1.8
v1.1.7
v1.1.6
v1.1.5
v1.1.4
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.1.0-rc1
v1.1.0-beta1
v1.0.18
v1.0.17
v1.0.16
v1.0.15
v1.0.14
v1.0.13
v1.0.12
v1.0.11
v1.0.10
v1.0.9
v1.0.8
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3
v1.0.2
v1.0.1
v1.0.0
v1.0.0-rc1
v1.0.0-beta3
v1.0.0-beta2
v0.12.12
v0.12.11
v0.12.10
v0.12.9
v0.12.8
v0.12.7
v0.12.6
v0.12.5
v0.12.4
v0.12.4-rc1
v0.12.3
v0.12.2
v0.12.1
v0.12.0
v0.12.0-rc1
v0.12.0-beta2
v0.12.0-beta1
v0.11.8
v0.11.7
v0.11.6
v0.11.5
v0.11.4
v0.11.3
v0.11.2
v0.11.1
v0.11.0
v0.11.0-rc1
v0.11.0-beta2
v0.11.0-beta1
v0.10.9
v0.10.8
v0.10.7
v0.10.6
v0.10.5
v0.10.4
v0.10.4-rc1
v0.10.3
v0.10.2
v0.10.2-rc1
v0.10.1
v0.10.0
v0.10.0-rc1
v0.10.0-connect1
v0.10.0-beta1
v0.9.7
v0.9.6
v0.9.5
v0.9.4
v0.9.4-rc1
v0.9.3
v0.9.2
v0.9.2-rc1
v0.9.1
v0.9.1-rc1
v0.9.0
v0.9.0-rc2
v0.9.0-rc1
v0.9.0-beta3
v0.9.0-beta2
v0.9.0-beta1
v0.8.7
v0.8.7-rc1
v0.8.6
v0.8.5
v0.8.4
v0.8.4-rc1
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.8.0-rc1
nightly
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
nomad/drainer/drain_heap.go
+2
-7
nomad/drainer/drain_heap.go
nomad/drainer/drain_heap_test.go
+31
-0
nomad/drainer/drain_heap_test.go
nomad/drainer_int_test.go
+1
-1
nomad/drainer_int_test.go
with
34 additions
and
8 deletions
+34
-8
nomad/drainer/drain_heap.go
+
2
-
7
View file @
c0bbb136
...
...
@@ -54,19 +54,14 @@ func (d *deadlineHeap) watch() {
case
<-
timer
.
C
:
default
:
}
var
nextDeadline
time
.
Time
defer
timer
.
Stop
()
var
nextDeadline
time
.
Time
for
{
select
{
case
<-
d
.
ctx
.
Done
()
:
return
case
<-
timer
.
C
:
if
nextDeadline
.
IsZero
()
{
continue
}
var
batch
[]
string
d
.
mu
.
Lock
()
...
...
@@ -96,7 +91,7 @@ func (d *deadlineHeap) watch() {
continue
}
if
!
deadline
.
Equal
(
nextDeadline
)
{
if
deadline
.
IsZero
()
||
!
deadline
.
Equal
(
nextDeadline
)
{
timer
.
Reset
(
deadline
.
Sub
(
time
.
Now
()))
nextDeadline
=
deadline
}
...
...
This diff is collapsed.
Click to expand it.
nomad/drainer/drain_heap_test.go
+
31
-
0
View file @
c0bbb136
...
...
@@ -147,3 +147,34 @@ func TestDeadlineHeap_WatchCoalesce(t *testing.T) {
case
<-
time
.
After
(
100
*
time
.
Millisecond
)
:
}
}
func
TestDeadlineHeap_MultipleForce
(
t
*
testing
.
T
)
{
t
.
Parallel
()
require
:=
require
.
New
(
t
)
h
:=
NewDeadlineHeap
(
context
.
Background
(),
1
*
time
.
Second
)
nodeID
:=
"1"
deadline
:=
time
.
Time
{}
h
.
Watch
(
nodeID
,
deadline
)
var
batch
[]
string
select
{
case
batch
=
<-
h
.
NextBatch
()
:
case
<-
time
.
After
(
10
*
time
.
Millisecond
)
:
t
.
Fatal
(
"timeout"
)
}
require
.
Len
(
batch
,
1
)
require
.
Equal
(
nodeID
,
batch
[
0
])
nodeID
=
"2"
h
.
Watch
(
nodeID
,
deadline
)
select
{
case
batch
=
<-
h
.
NextBatch
()
:
case
<-
time
.
After
(
10
*
time
.
Millisecond
)
:
t
.
Fatal
(
"timeout"
)
}
require
.
Len
(
batch
,
1
)
require
.
Equal
(
nodeID
,
batch
[
0
])
}
This diff is collapsed.
Click to expand it.
nomad/drainer_int_test.go
+
1
-
1
View file @
c0bbb136
...
...
@@ -727,7 +727,7 @@ func TestDrainer_Batch_Force(t *testing.T) {
require
.
Nil
(
msgpackrpc
.
CallWithCodec
(
codec
,
"Node.UpdateDrain"
,
drainReq
,
&
drainResp
))
// Make sure the batch job is migrated
testutil
.
AssertUntil
(
500
*
time
.
Millisecond
,
func
()
(
bool
,
error
)
{
testutil
.
WaitForResult
(
func
()
(
bool
,
error
)
{
allocs
,
err
:=
state
.
AllocsByNode
(
nil
,
n1
.
ID
)
if
err
!=
nil
{
return
false
,
err
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help