Skip to content

Strings aren't escaped properly #10

@MarcMush

Description

@MarcMush

I'm working on fixing this

julia> using InfluxDB

julia> m = Measurement("mesures", Dict("a"=>3), Dict("b"=>"a z"))
Measurement("mesures", Dict{String, Union{Float64, Int64, String}}("a" => 3), Dict("b" => "a z"), 1.61616764743e9)

julia> server = InfluxServer("localhost")
InfluxServer(URI("http://localhost:8086"), nothing, nothing)

julia> create_database(server, "db")

julia> write(server, "db", [m])
ERROR: HTTP.ExceptionRequest.StatusError(400, "POST", "/write?precision=ns&db=db", HTTP.Messages.Response:
"""
HTTP/1.1 400 Bad Request
Content-Type: application/json
Request-Id: f6553f9d-88c7-11eb-804c-0242ac110002
X-Influxdb-Build: OSS
X-Influxdb-Error: unable to parse 'mesures,b=a z a=3 1616167647430000128': invalid field format
X-Influxdb-Version: 1.8.3
X-Request-Id: f6553f9d-88c7-11eb-804c-0242ac110002
Date: Fri, 19 Mar 2021 15:29:57 GMT
Content-Length: 90

{"error":"unable to parse 'mesures,b=a z a=3 1616167647430000128': invalid field format"}
""")
Stacktrace:
  [1] request(::Type{HTTP.ExceptionRequest.ExceptionLayer{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer{Union{}}}}}, ::URIs.URI, ::Vararg{Any, N} where N; kw::Base.Iterators.Pairs{Symbol, Union{Nothing, Bool}, Tuple{Symbol, Symbol}, NamedTuple{(:iofunction, :reached_redirect_limit), Tuple{Nothing, Bool}}})
    @ HTTP.ExceptionRequest ~\.julia\packages\HTTP\cxgat\src\ExceptionRequest.jl:22
  [2] (::Base.var"#72#74"{Base.var"#72#73#75"{ExponentialBackOff, HTTP.RetryRequest.var"#2#3"{Bool, HTTP.Messages.Request}, typeof(HTTP.request)}})(::Type, ::Vararg{Any, N} where N; kwargs::Base.Iterators.Pairs{Symbol, Union{Nothing, Bool}, Tuple{Symbol, Symbol}, NamedTuple{(:iofunction, :reached_redirect_limit), Tuple{Nothing, Bool}}})
    @ Base .\error.jl:288
  [3] #request#1
    @ ~\.julia\packages\HTTP\cxgat\src\RetryRequest.jl:44 [inlined]
  [4] request(::Type{HTTP.MessageRequest.MessageLayer{HTTP.RetryRequest.RetryLayer{HTTP.ExceptionRequest.ExceptionLayer{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer{Union{}}}}}}}, method::String, url::URIs.URI, headers::Vector{Pair{SubString{String}, SubString{String}}}, body::String; http_version::VersionNumber, target::String, parent::Nothing, iofunction::Nothing, kw::Base.Iterators.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:reached_redirect_limit,), Tuple{Bool}}})
    @ HTTP.MessageRequest ~\.julia\packages\HTTP\cxgat\src\MessageRequest.jl:66
  [5] request(::Type{HTTP.BasicAuthRequest.BasicAuthLayer{HTTP.MessageRequest.MessageLayer{HTTP.RetryRequest.RetryLayer{HTTP.ExceptionRequest.ExceptionLayer{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer{Union{}}}}}}}}, method::String, url::URIs.URI, headers::Vector{Pair{SubString{String}, SubString{String}}}, body::String; kw::Base.Iterators.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:reached_redirect_limit,), Tuple{Bool}}})
    @ HTTP.BasicAuthRequest ~\.julia\packages\HTTP\cxgat\src\BasicAuthRequest.jl:28
  [6] request(::Type{HTTP.RedirectRequest.RedirectLayer{HTTP.BasicAuthRequest.BasicAuthLayer{HTTP.MessageRequest.MessageLayer{HTTP.RetryRequest.RetryLayer{HTTP.ExceptionRequest.ExceptionLayer{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer{Union{}}}}}}}}}, method::String, url::URIs.URI, headers::Vector{Pair{SubString{String}, SubString{String}}}, body::String; redirect_limit::Int64, forwardheaders::Bool, kw::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ HTTP.RedirectRequest ~\.julia\packages\HTTP\cxgat\src\RedirectRequest.jl:24
  [7] request(::Type{HTTP.RedirectRequest.RedirectLayer{HTTP.BasicAuthRequest.BasicAuthLayer{HTTP.MessageRequest.MessageLayer{HTTP.RetryRequest.RetryLayer{HTTP.ExceptionRequest.ExceptionLayer{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer{Union{}}}}}}}}}, method::String, url::URIs.URI, headers::Vector{Pair{SubString{String}, SubString{String}}}, body::String)
    @ HTTP.RedirectRequest ~\.julia\packages\HTTP\cxgat\src\RedirectRequest.jl:21
  [8] request(method::String, url::String, h::Vector{Any}, b::String; headers::Vector{Any}, body::String, query::Dict{String, String}, kw::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ HTTP ~\.julia\packages\HTTP\cxgat\src\HTTP.jl:315
  [9] #post#15
    @ ~\.julia\packages\HTTP\cxgat\src\HTTP.jl:406 [inlined]
 [10] write(server::InfluxServer, db::String, query_data::Dict{String, String}, payload::String)
    @ InfluxDB ~\.julia\packages\InfluxDB\xL7Dy\src\server.jl:94
 [11] write(server::InfluxServer, db::String, measurements::Vector{Measurement}; precision::Symbol)
    @ InfluxDB ~\.julia\packages\InfluxDB\xL7Dy\src\server.jl:129
 [12] write(server::InfluxServer, db::String, measurements::Vector{Measurement})
    @ InfluxDB ~\.julia\packages\InfluxDB\xL7Dy\src\server.jl:104
 [13] top-level scope
    @ REPL[7]:1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions