Open arlowhite opened 2 days ago
In attempting to recreate this bug, I found another bug to do with the caching again (addressed in #45).
Unfortunately, after this issue is addressed, I cannot recreate the reported issue. The provided URL said to cause the issue works (albeit returns a blank tile) when running the server in both debug and "normal" mode.
The strange thing for me is that the bug fixed in #45 should only be hit when the debug flag in .config.toml
is set to true.
In regular production mode, the server would use the defined cache directory.
Did the datasets change recently? Am I lagging behind in that respect?
I'm still seeing this. http://localhost:8000/tile/8/230/138?region=Townsville-Whitsunday&rtype=slopes&Depth=-10%3A0&Slope=0%3A45&Turbidity=0%3A60&WavesHs=0%3A1&WavesTp=0%3A6
┌ Error: ERROR:
│ exception =
│ ArgumentError: lookup step -9.358646348680964e-5 does not match lookup step 9.358646348545108e-5
│ Stacktrace:
│ [1] _steperror(values::LinRange{Float64, Int64}, span::DimensionalData.Dimensions.Lookups.Regular{Float64})
│ @ DimensionalData.Dimensions C:\Users\awhite\.julia\packages\DimensionalData\hhCBb\src\Dimensions\format.jl:149
│ [2] _format
│ @ C:\Users\awhite\.julia\packages\DimensionalData\hhCBb\src\Dimensions\format.jl:115 [inlined]
│ [3] format
│ @ C:\Users\awhite\.julia\packages\Rasters\0qvMe\src\lookup.jl:25 [inlined]
│ [4] format
│ @ C:\Users\awhite\.julia\packages\DimensionalData\hhCBb\src\Dimensions\format.jl:53 [inlined]
│ [5] _format
│ @ C:\Users\awhite\.julia\packages\DimensionalData\hhCBb\src\Dimensions\format.jl:47 [inlined]
│ [6] map
│ @ .\tuple.jl:383 [inlined]
│ [7] format(dims::Tuple{DimensionalData.Dimensions.X{Rasters.Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Start}, DimensionalData.Dimensions.Lookups.NoMetadata, GeoFormatTypes.WellKnownText{GeoFormatTypes.CRS}, Nothing, DimensionalData.Dimensions.X{Colon}}}, DimensionalData.Dimensions.Y{Rasters.Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ReverseOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Start}, DimensionalData.Dimensions.Lookups.NoMetadata, GeoFormatTypes.WellKnownText{GeoFormatTypes.CRS}, Nothing, DimensionalData.Dimensions.Y{Colon}}}}, axes::Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}})
│ @ DimensionalData.Dimensions C:\Users\awhite\.julia\packages\DimensionalData\hhCBb\src\Dimensions\format.jl:38
│ [8] format
│ @ C:\Users\awhite\.julia\packages\DimensionalData\hhCBb\src\Dimensions\format.jl:35 [inlined]
│ [9] copy(bc::Base.Broadcast.Broadcasted{DimensionalData.DimensionalStyle{Base.Broadcast.DefaultArrayStyle{2}}, Tuple{DimensionalData.Dimensions.DimUnitRange{Int64, Base.OneTo{Int64}, DimensionalData.Dimensions.X{Rasters.Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Start}, DimensionalData.Dimensions.Lookups.NoMetadata, GeoFormatTypes.WellKnownText{GeoFormatTypes.CRS}, Nothing, DimensionalData.Dimensions.X{Colon}}}}, DimensionalData.Dimensions.DimUnitRange{Int64, Base.OneTo{Int64}, DimensionalData.Dimensions.Y{Rasters.Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ReverseOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Start}, DimensionalData.Dimensions.Lookups.NoMetadata, GeoFormatTypes.WellKnownText{GeoFormatTypes.CRS}, Nothing, DimensionalData.Dimensions.Y{Colon}}}}}, typeof(convert), Tuple{Base.RefValue{Type{UInt8}}, Rasters.Raster{Bool, 2, Tuple{DimensionalData.Dimensions.X{Rasters.Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Start}, DimensionalData.Dimensions.Lookups.NoMetadata, GeoFormatTypes.WellKnownText{GeoFormatTypes.CRS}, Nothing, DimensionalData.Dimensions.X{Colon}}}, DimensionalData.Dimensions.Y{Rasters.Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ReverseOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Start}, DimensionalData.Dimensions.Lookups.NoMetadata, GeoFormatTypes.WellKnownText{GeoFormatTypes.CRS}, Nothing, DimensionalData.Dimensions.Y{Colon}}}}, Tuple{}, SubArray{Bool, 2, BitMatrix, Tuple{UnitRange{Int64}, UnitRange{Int64}}, false}, Symbol, DimensionalData.Dimensions.Lookups.Metadata{Rasters.GDALsource, Dict{String, Any}}, Bool}}})
│ @ DimensionalData C:\Users\awhite\.julia\packages\DimensionalData\hhCBb\src\array\broadcast.jl:79
│ [10] materialize(bc::Base.Broadcast.Broadcasted{DimensionalData.DimensionalStyle{Base.Broadcast.DefaultArrayStyle{2}}, Nothing, typeof(convert), Tuple{Base.RefValue{Type{UInt8}}, Rasters.Raster{Bool, 2, Tuple{DimensionalData.Dimensions.X{Rasters.Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ForwardOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Start}, DimensionalData.Dimensions.Lookups.NoMetadata, GeoFormatTypes.WellKnownText{GeoFormatTypes.CRS}, Nothing, DimensionalData.Dimensions.X{Colon}}}, DimensionalData.Dimensions.Y{Rasters.Projected{Float64, LinRange{Float64, Int64}, DimensionalData.Dimensions.Lookups.ReverseOrdered, DimensionalData.Dimensions.Lookups.Regular{Float64}, DimensionalData.Dimensions.Lookups.Intervals{DimensionalData.Dimensions.Lookups.Start}, DimensionalData.Dimensions.Lookups.NoMetadata, GeoFormatTypes.WellKnownText{GeoFormatTypes.CRS}, Nothing, DimensionalData.Dimensions.Y{Colon}}}}, Tuple{}, SubArray{Bool, 2, BitMatrix, Tuple{UnitRange{Int64}, UnitRange{Int64}}, false}, Symbol, DimensionalData.Dimensions.Lookups.Metadata{Rasters.GDALsource, Dict{String, Any}}, Bool}}})
│ @ Base.Broadcast .\broadcast.jl:867
│ [11] threshold_mask(reg_criteria::RegionalCriteria{DataFrames.DataFrame}, rtype::Symbol, crit_map::Vector{ReefGuideAPI.CriteriaBounds{Function}}, lons::Tuple{Float64, Float64}, lats::Tuple{Float64, Float64})
│ @ ReefGuideAPI C:\Users\awhite\code\ReefGuideAPI.jl\src\criteria_assessment\query_thresholds.jl:288
│ [12] (::ReefGuideAPI.var"#15#18"{Dict{String, Any}, OrderedCollections.OrderedDict{String, Union{DataFrames.DataFrame, Dict, RegionalCriteria}}})(req::HTTP.Messages.Request, z::Int64, x::Int64, y::Int64)
│ @ ReefGuideAPI C:\Users\awhite\code\ReefGuideAPI.jl\src\criteria_assessment\tiles.jl:193
│ [13] #5
│ @ C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\handlers.jl:36 [inlined]
│ [14] #14#15
│ @ C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\handlers.jl:54 [inlined]
│ [15] #14
│ @ C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\handlers.jl:53 [inlined]
│ [16] (::Oxygen.Core.var"#53#55"{ReefGuideAPI.var"#15#18"{Dict{String, Any}, OrderedCollections.OrderedDict{String, Union{DataFrames.DataFrame, Dict, RegionalCriteria}}}, @NamedTuple{info::@NamedTuple{name::Symbol, args::Vector{Oxygen.Core.Types.Param}, kwargs::Vector{Oxygen.Core.Types.Param}, sig::Vector{Oxygen.Core.Types.Param}, sig_map::Dict{Symbol, Oxygen.Core.Types.Param}}, pathparams::Vector{Any}, pathnames::Vector{Symbol}, queryparams::Vector{Any}, querynames::Vector{Symbol}, headers::Vector{Any}, headernames::Vector{Symbol}, bodyargs::Vector{Any}, bodynames::Vector{Symbol}}, Oxygen.Core.Handlers.var"#14#16"{Oxygen.Core.Handlers.var"#14#15#17"{Oxygen.Core.Handlers.var"#5#11"}}})(req::HTTP.Messages.Request)
│ @ Oxygen.Core C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\core.jl:682
│ [17] (::HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing})(req::HTTP.Messages.Request)
│ @ HTTP.Handlers C:\Users\awhite\.julia\packages\HTTP\sJD5V\src\Handlers.jl:439
│ [18] (::Oxygen.Core.var"#36#39"{HTTP.Messages.Request, HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}})()
│ @ Oxygen.Core C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\core.jl:414
│ [19] handlerequest(getresponse::Oxygen.Core.var"#36#39"{HTTP.Messages.Request, HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}}, catch_errors::Bool; show_errors::Bool)
│ @ Oxygen.Core.Util C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\utilities\misc.jl:35
│ [20] handlerequest
│ @ C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\utilities\misc.jl:30 [inlined]
│ [21] #35
│ @ C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\core.jl:413 [inlined]
│ [22] (::ReefGuideAPI.var"#79#80"{Oxygen.Core.var"#35#38"{HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, Bool, Bool}})(req::HTTP.Messages.Request)
│ @ ReefGuideAPI C:\Users\awhite\code\ReefGuideAPI.jl\src\Middleware.jl:21
│ [23] (::Oxygen.Core.Middleware.var"#2#5"{Oxygen.Core.var"#35#38"{HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, Bool, Bool}, HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, ReentrantLock, Vector{typeof(ReefGuideAPI.CorsMiddleware)}, Dict{String, Tuple}, Dict{String, Function}})(req::HTTP.Messages.Request)
│ @ Oxygen.Core.Middleware C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\middleware.jl:56
│ [24] (::Oxygen.Core.var"#42#46"{HTTP.Messages.Request, Oxygen.Core.Middleware.var"#2#5"{Oxygen.Core.var"#35#38"{HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, Bool, Bool}, HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, ReentrantLock, Vector{typeof(ReefGuideAPI.CorsMiddleware)}, Dict{String, Tuple}, Dict{String, Function}}, Oxygen.Core.AppContext.Service})()
│ @ Oxygen.Core C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\core.jl:428
│ [25] handlerequest(getresponse::Oxygen.Core.var"#42#46"{HTTP.Messages.Request, Oxygen.Core.Middleware.var"#2#5"{Oxygen.Core.var"#35#38"{HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, Bool, Bool}, HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, ReentrantLock, Vector{typeof(ReefGuideAPI.CorsMiddleware)}, Dict{String, Tuple}, Dict{String, Function}}, Oxygen.Core.AppContext.Service}, catch_errors::Bool; show_errors::Bool)
│ @ Oxygen.Core.Util C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\utilities\misc.jl:35
│ [26] handlerequest
│ @ C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\utilities\misc.jl:30 [inlined]
│ [27] #41
│ @ C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\core.jl:425 [inlined]
│ [28] (::Oxygen.Core.var"#30#32"{Oxygen.Core.var"#41#45"{Oxygen.Core.Middleware.var"#2#5"{Oxygen.Core.var"#35#38"{HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, Bool, Bool}, HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, ReentrantLock, Vector{typeof(ReefGuideAPI.CorsMiddleware)}, Dict{String, Tuple}, Dict{String, Function}}, Oxygen.Core.AppContext.Service, Bool}, HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, String})(req::HTTP.Messages.Request)
│ @ Oxygen.Core C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\core.jl:398
│ [29] #13
│ @ C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\core.jl:247 [inlined]
│ [30] (::HTTP.Handlers.var"#1#2"{Oxygen.Core.var"#13#15"{Oxygen.Core.var"#30#32"{Oxygen.Core.var"#41#45"{Oxygen.Core.Middleware.var"#2#5"{Oxygen.Core.var"#35#38"{HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, Bool, Bool}, HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, ReentrantLock, Vector{typeof(ReefGuideAPI.CorsMiddleware)}, Dict{String, Tuple}, Dict{String, Function}}, Oxygen.Core.AppContext.Service, Bool}, HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, String}, Sockets.IPv4, HTTP.Streams.Stream{HTTP.Messages.Request, HTTP.Connections.Connection{Sockets.TCPSocket}}}})(stream::HTTP.Streams.Stream{HTTP.Messages.Request, HTTP.Connections.Connection{Sockets.TCPSocket}})
│ @ HTTP.Handlers C:\Users\awhite\.julia\packages\HTTP\sJD5V\src\Handlers.jl:58
│ [31] #16
│ @ C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\core.jl:264 [inlined]
│ [32] (::Oxygen.Core.var"#20#23"{HTTP.Streams.Stream{HTTP.Messages.Request, HTTP.Connections.Connection{Sockets.TCPSocket}}, Oxygen.Core.var"#16#17"{Oxygen.Core.var"#30#32"{Oxygen.Core.var"#41#45"{Oxygen.Core.Middleware.var"#2#5"{Oxygen.Core.var"#35#38"{HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, Bool, Bool}, HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, ReentrantLock, Vector{typeof(ReefGuideAPI.CorsMiddleware)}, Dict{String, Tuple}, Dict{String, Function}}, Oxygen.Core.AppContext.Service, Bool}, HTTP.Handlers.Router{typeof(HTTP.Handlers.default404), typeof(HTTP.Handlers.default405), Nothing}, String}}})()
│ @ Oxygen.Core C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\core.jl:284
└ @ Oxygen.Core.Util C:\Users\awhite\.julia\packages\Oxygen\XYPmN\src\utilities\misc.jl:38
With the default criteria params in the app, some tiles have this error:
ERROR
http://localhost:8000/tile/10/932/564?region=Cairns-Cooktown&rtype=slopes&Depth=-10%3A0&Slope=0%3A45&Turbidity=0%3A60&WavesHs=0%3A1&WavesTp=0%3A6
No Error
same criteria, but no error http://localhost:8000/tile/10/927/560?region=Cairns-Cooktown&rtype=slopes&Depth=-10%3A0&Slope=0%3A45&Turbidity=0%3A60&WavesHs=0%3A1&WavesTp=0%3A6