I’m using InfluxDB 2.1.1Server: 657e183
Frontend: cc65325
under Debian 11 bullseye
.
I was casing some data outliers, so setup a filter and wanted the list of host sending such data with
from(bucket: "dca")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "Cri1I2cLtc2991")
|> filter(fn: (r) => r._field == "fpga_t")
|> filter(fn: (r) => r._value != 0.0)
|> keep(columns: ["host"])
|> group()
|> distinct(column: "host")
This query returns with
An internal error has occurred - check server logs
and in the server logs I see
2022-01-02T17:09:49.374122+01:00 cbmin00x influxd-systemd-start.sh[765198]:
ts=2022-01-02T16:09:49.373311Z lvl=warn
msg="internal error not returned to client"
log_id=0Yh4S3MW000
handler=error_logger error="field values unsupported"
When I remove the distinct
filter at the end the query works !
Also when I change r._value != 0.0
to r._value != +0.0
or r._value != -0.0
!
from(bucket: "dca")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r._measurement == "Cri1I2cLtc2991")
|> filter(fn: (r) => r._field == "fpga_t")
|> filter(fn: (r) => r._value != +0.0)
|> keep(columns: ["host"])
|> group()
|> distinct(column: "host")
works, the only difference is the +
in front of the 0.0
floating literal. A -
works as well.
I’m really puzzled here ! How comes that
- a minor detail of a floating point literal makes such a difference
- that I get a “
server error
” at all (I’d assume that happens when assertions fail)
Any hint highly welcome.