influxdata / influxdata/influxdb

InfluxDB 2.0: The "beforeTime" for filtering runs to those scheduled before this time doesn't works [area/api]

Open
#13,577 6 comments 0 reactions 0 assignees View on GitHub
area/api kind/bug team/compute wontfix
Dominant language
Rust
Stars
31.7k
Forks
3.7k
Avg merge
13h 37m
Merged PRs (30d)
8

Description

The `/tasks/{taskID}/runs` is defined as:

```yaml
'/tasks/{taskID}/runs':
get:
tags:
- Tasks
summary: Retrieve list of run records for a task
parameters:
- $ref: '#/components/parameters/TraceSpan'
- in: path
name: taskID
schema:
type: string
required: true
description: ID of task to get runs for
- in: query
name: after
schema:
type: string
description: returns runs after specified ID
- in: query
name: limit
schema:
type: integer
minimum: 1
maximum: 100
default: 20
description: the number of runs to return
- in: query
name: afterTime
schema:
type: string
format: date-time
description: filter runs to those scheduled after this time, RFC3339
- in: query
name: beforeTime
schema:
type: string
format: date-time
description: filter runs to those scheduled before this time, RFC3339
responses:
'200':
description: a list of task runs
content:
application/json:
schema:
$ref: "#/components/schemas/Runs"
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
```

but even If I specify the `beforeTime` the result contains Runs from future:

```bash
-> GET
-> http://127.0.0.1:9999/api/v2/tasks/03be546b47bf2000/runs?beforeTime=2019-04-22T08%3A33%3A41.629Z

<- 200
<- OK
<- {
"links": {
"self": "/api/v2/tasks/03be546b47bf2000/runs",
"task": "/api/v2/tasks/03be546b47bf2000"
},
"runs": [{
"links": {
"logs": "/api/v2/tasks/03be546b47bf2000/runs/03be546bc33f2000/logs",
"retry": "/api/v2/tasks/03be546b47bf2000/runs/03be546bc33f2000/retry",
"self": "/api/v2/tasks/03be546b47bf2000/runs/03be546bc33f2000",
"task": "/api/v2/tasks/03be546b47bf2000"
},
"id": "03be546bc33f2000",
"taskID": "03be546b47bf2000",
"status": "success",
"scheduledFor": "2019-04-23T08:33:42Z",
"startedAt": "2019-04-23T08:33:42.175365406Z",
"finishedAt": "2019-04-23T08:33:42.231212953Z",
"log": [{
"time": "2019-04-23T08:33:42.157689383Z",
"message": "Started task from script: \"option task = {name: \\\"it task1556008421630-IT\\\", every: 1s} \\n from(bucket:\\\"my-bucket\\\") |\u003e range(start: 0) |\u003e last()\""
}, {
"time": "2019-04-23T08:33:42.210091685Z",
"message": "{\"total_duration\":9618755,\"compile_duration\":1934,\"queue_duration\":45788,\"plan_duration\":0,\"requeue_duration\":0,\"execute_duration\":9554126,\"concurrency\":0,\"max_allocated\":0,\"metadata\":{\"influxdb/scanned-bytes\":[0],\"influxdb/scanned-values\":[0]}}"
}, {
"time": "2019-04-23T08:33:42.220417708Z",
"message": "Completed successfully"
}]
}, {
"links": {
"logs": "/api/v2/tasks/03be546b47bf2000/runs/03be546cc0bf2000/logs",
"retry": "/api/v2/tasks/03be546b47bf2000/runs/03be546cc0bf2000/retry",
"self": "/api/v2/tasks/03be546b47bf2000/runs/03be546cc0bf2000",
"task": "/api/v2/tasks/03be546b47bf2000"
},
"id": "03be546cc0bf2000",
"taskID": "03be546b47bf2000",
"status": "success",
"scheduledFor": "2019-04-23T08:33:43Z",
"startedAt": "2019-04-23T08:33:43.188203286Z",
"finishedAt": "2019-04-23T08:33:43.260272305Z",
"log": [{
"time": "2019-04-23T08:33:43.172512105Z",
"message": "Started task from script: \"option task = {name: \\\"it task1556008421630-IT\\\", every: 1s} \\n from(bucket:\\\"my-bucket\\\") |\u003e range(start: 0) |\u003e last()\""
}, {
"time": "2019-04-23T08:33:43.219653458Z",
"message": "{\"total_duration\":20222384,\"compile_duration\":2033,\"queue_duration\":29911,\"plan_duration\":0,\"requeue_duration\":0,\"execute_duration\":20169786,\"concurrency\":0,\"max_allocated\":0,\"metadata\":{\"influxdb/scanned-bytes\":[0],\"influxdb/scanned-values\":[0]}}"
}, {
"time": "2019-04-23T08:33:43.229824294Z",
"message": "Completed successfully"
}]
}, {
"links": {
"logs": "/api/v2/tasks/03be546b47bf2000/runs/03be546db2ff2000/logs",
"retry": "/api/v2/tasks/03be546b47bf2000/runs/03be546db2ff2000/retry",
"self": "/api/v2/tasks/03be546b47bf2000/runs/03be546db2ff2000",
"task": "/api/v2/tasks/03be546b47bf2000"
},
"id": "03be546db2ff2000",
"taskID": "03be546b47bf2000",
"status": "success",
"scheduledFor": "2019-04-23T08:33:44Z",
"startedAt": "2019-04-23T08:33:44.150979514Z",
"finishedAt": "2019-04-23T08:33:44.218828723Z",
"log": [{
"time": "2019-04-23T08:33:44.140647441Z",
"message": "Started task from script: \"option task = {name: \\\"it task1556008421630-IT\\\", every: 1s} \\n from(bucket:\\\"my-bucket\\\") |\u003e range(start: 0) |\u003e last()\""
}, {
"time": "2019-04-23T08:33:44.19819544Z",
"message": "{\"total_duration\":30167656,\"compile_duration\":2421,\"queue_duration\":764879,\"plan_duration\":0,\"requeue_duration\":0,\"execute_duration\":29378900,\"concurrency\":0,\"max_allocated\":0,\"metadata\":{\"influxdb/scanned-bytes\":[0],\"influxdb/scanned-values\":[0]}}"
}, {
"time": "2019-04-23T08:33:44.206811616Z",
"message": "Completed successfully"
}]
}, {
"links": {
"logs": "/api/v2/tasks/03be546b47bf2000/runs/03be546ed53f2000/logs",
"retry": "/api/v2/tasks/03be546b47bf2000/runs/03be546ed53f2000/retry",
"self": "/api/v2/tasks/03be546b47bf2000/runs/03be546ed53f2000",
"task": "/api/v2/tasks/03be546b47bf2000"
},
"id": "03be546ed53f2000",
"taskID": "03be546b47bf2000",
"status": "success",
"scheduledFor": "2019-04-23T08:33:45Z",
"startedAt": "2019-04-23T08:33:45.333861026Z",
"finishedAt": "2019-04-23T08:33:45.375377284Z",
"log": [{
"time": "2019-04-23T08:33:45.302037656Z",
"message": "Started task from script: \"option task = {name: \\\"it task1556008421630-IT\\\", every: 1s} \\n from(bucket:\\\"my-bucket\\\") |\u003e range(start: 0) |\u003e last()\""
}, {
"time": "2019-04-23T08:33:45.356717471Z",
"message": "{\"total_duration\":9676719,\"compile_duration\":1941,\"queue_duration\":72577,\"plan_duration\":0,\"requeue_duration\":0,\"execute_duration\":9584063,\"concurrency\":0,\"max_allocated\":0,\"metadata\":{\"influxdb/scanned-bytes\":[0],\"influxdb/scanned-values\":[0]}}"
}, {
"time": "2019-04-23T08:33:45.365948938Z",
"message": "Completed successfully"
}]
}, {
"links": {
"logs": "/api/v2/tasks/03be546b47bf2000/runs/03be546fb6bf2000/logs",
"retry": "/api/v2/tasks/03be546b47bf2000/runs/03be546fb6bf2000/retry",
"self": "/api/v2/tasks/03be546b47bf2000/runs/03be546fb6bf2000",
"task": "/api/v2/tasks/03be546b47bf2000"
},
"id": "03be546fb6bf2000",
"taskID": "03be546b47bf2000",
"status": "success",
"scheduledFor": "2019-04-23T08:33:46Z",
"startedAt": "2019-04-23T08:33:46.217746274Z",
"finishedAt": "2019-04-23T08:33:46.285420547Z",
"log": [{
"time": "2019-04-23T08:33:46.204317964Z",
"message": "Started task from script: \"option task = {name: \\\"it task1556008421630-IT\\\", every: 1s} \\n from(bucket:\\\"my-bucket\\\") |\u003e range(start: 0) |\u003e last()\""
}, {
"time": "2019-04-23T08:33:46.263538827Z",
"message": "{\"total_duration\":35674928,\"compile_duration\":2012,\"queue_duration\":51129,\"plan_duration\":0,\"requeue_duration\":0,\"execute_duration\":35602705,\"concurrency\":0,\"max_allocated\":0,\"metadata\":{\"influxdb/scanned-bytes\":[0],\"influxdb/scanned-values\":[0]}}"
}, {
"time": "2019-04-23T08:33:46.274075399Z",
"message": "Completed successfully"
}]
}]
}
```

Contributor guide

Open the contributing guide

Research direction

Start by locating the GET /tasks/{taskID}/runs API entry point and the handling of its beforeTime query parameter. Reproduce the request shown in the issue and inspect any existing tests for task-run filtering. Done means the response contains only runs scheduled before the supplied RFC3339 time.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.