[postgis-tickets] [PostGIS] #4459: ST_Subdivide can't handle intermediate empties
PostGIS
trac at osgeo.org
Thu Jul 18 01:18:58 PDT 2019
#4459: ST_Subdivide can't handle intermediate empties
---------------------+---------------------------
Reporter: komzpa | Owner: komzpa
Type: defect | Status: assigned
Priority: medium | Milestone: PostGIS 3.0.0
Component: postgis | Version: trunk
Keywords: |
---------------------+---------------------------
{{{
#0 __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: файл ці тэчка ня йснуе.
(gdb) bt full
#0 __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
set = {__val = {0, 140373678436727, 4222451712, 94891443462432,
94891443462533, 94891443462432, 94891443462432, 94891443462547,
94891443462732, 94891443462432, 94891443462732, 0, 0, 0, 0, 0}}
pid = <optimized out>
tid = <optimized out>
ret = <optimized out>
#1 0x00007fab4b36d535 in __GI_abort () at abort.c:79
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x564da2b995a0,
sa_sigaction = 0x564da2b995a0}, sa_mask = {__val = {0, 94891443462432, 2,
0, 0, 0, 21474836480, 140720557150632, 140720557150480, 140373693094572,
140373693094572, 0, 8470279566131323136, 140373679634919, 0,
140373693094572}}, sa_flags = -1298734224, sa_restorer = 0x7fa9b296e3c6}
sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x00007fab4b36d40f in __assert_fail_base (fmt=0x7fab4c1cdaac <error:
Cannot access memory at address 0x7fab4c1cdaac>, assertion=0x7fa9b296e3c6
"original", file=0x7fa9b296e370 "gbox.c", line=436, function=<optimized
out>) at assert.c:92
str = 0x564da2b995a0 "\200T¢MV"
total = 4096
#3 0x00007fab4b37d012 in __GI___assert_fail
(assertion=assertion at entry=0x7fa9b296e3c6 "original",
file=file at entry=0x7fa9b296e370 "gbox.c", line=line at entry=436,
function=function at entry=0x7fa9b296e548 <__PRETTY_FUNCTION__.7057>
"gbox_duplicate") at assert.c:101
No locals.
#4 0x00007fa9b2928acb in gbox_duplicate (original=0x0,
duplicate=0x7ffc0ed252c0) at gbox.c:436
__PRETTY_FUNCTION__ = "gbox_duplicate"
#5 gbox_duplicate (original=<optimized out>,
duplicate=duplicate at entry=0x7ffc0ed252c0) at gbox.c:433
__PRETTY_FUNCTION__ = "gbox_duplicate"
#6 0x00007fa9b28ffc77 in lwgeom_subdivide_recursive (geom=0x564da2c5b288,
dimension=dimension at entry=2 '\002', maxvertices=maxvertices at entry=100,
depth=depth at entry=0, col=col at entry=0x564da2beccd0) at lwgeom.c:2232
clip = {flags = 4, xmin = 0, xmax = 0, ymin =
2.0158960018122612e-312, ymax = 2.5251749917921463e-312, zmin =
2.7373745709578427e-312, zmax = 0, mmin = 4.6882601095344916e-310, mmax =
6.9353812796376515e-310}
subbox1 = {flags = 46352, xmin = 1.0113523770370317e-320, xmax =
1.0118464426828729e-320, ymin = 6.2746337021838311e-322, ymax =
-nan(0xfffffffffff28), zmin = 4.3477776834029696e-322, zmax =
4.6882602236743276e-310, mmin = 6.9353812123444778e-310, mmax =
4.6882601265465552e-310}
subbox2 = {flags = 21408, xmin = 4.6882601708978401e-310, xmax =
1.5810100666919889e-322, ymin = 4.6882584275899755e-310, ymax =
4.6882601708978401e-310, zmin = 1.1857575500189917e-322, zmax =
1.8774494541967369e-322, mmin = 4.6882602308038925e-310, mmax =
6.9525192952031863e-310}
nvertices = 0
i = <optimized out>
split_ordinate = <optimized out>
width = <optimized out>
height = <optimized out>
pivot = 1.7976931348623157e+308
center = 1.7976931348623157e+308
lwpoly = 0x0
__func__ = "lwgeom_subdivide_recursive"
#7 0x00007fa9b28ffdac in lwgeom_subdivide_recursive
(geom=geom at entry=0x564da2b56920, dimension=<optimized out>,
maxvertices=maxvertices at entry=100, depth=depth at entry=0,
col=col at entry=0x564da2beccd0) at lwgeom.c:2266
incol = <optimized out>
clip = {flags = 4, xmin = 3728985.5, xmax = 3732474.75, ymin =
7425804.5, ymax = 7429196, zmin = 4.6882601987840909e-310, zmax =
6.9350991781679939e-310, mmin = 4.6882601709112787e-310, mmax =
4.6882601897529661e-310}
subbox1 = {flags = 128, xmin = 4.6882602236312451e-310, xmax =
4.6882601709168122e-310, ymin = 6.9350424646078807e-310, ymax =
4.6882601708978401e-310, zmin = 3.5572726500569751e-322, zmax =
6.9525192952213679e-310, mmin = 1.9762625833649862e-323, mmax =
4.6882601708978401e-310}
subbox2 = {flags = 3857, xmin = 3.4584595208887258e-323, xmax =
6.9525192952189964e-310, ymin = 4.68825842874935e-310, ymax =
4.6882602013188453e-310, zmin = 0, zmax = 0, mmin =
6.9350424522132558e-310, mmax = 1.9056111960096879e-320}
nvertices = 0
i = 0
split_ordinate = <optimized out>
width = <optimized out>
height = 3391.5
pivot = 1.7976931348623157e+308
center = 1.7976931348623157e+308
lwpoly = 0x0
__func__ = "lwgeom_subdivide_recursive"
#8 0x00007fa9b2901921 in lwgeom_subdivide (geom=0x564da2b56920,
maxvertices=100) at lwgeom.c:2414
col = 0x564da2beccd0
__func__ = "lwgeom_subdivide"
#9 0x00007fa9b28a8e29 in ST_Subdivide (fcinfo=0x564da2be0468) at
lwgeom_dump.c:372
geom = <optimized out>
maxvertices = <optimized out>
gser = <optimized out>
col = <optimized out>
rsi = <optimized out>
funcctx = 0x564da2b568b0
fctx = <optimized out>
oldcontext = 0x564da2bb3a60
#10 0x0000564da07047fc in ExecMakeFunctionResultSet (fcache=<optimized
out>, econtext=econtext at entry=0x564da2bb2410, argContext=0x564da2c05c00,
isNull=0x564da2bb39b0, isDone=isDone at entry=0x564da2bdf668) at
./build/../src/backend/executor/execSRF.c:606
arguments = <optimized out>
result = <optimized out>
fcinfo = 0x564da2be0468
fcusage = {fs = 0x0, save_f_total_time = {tv_sec = 94891442645620,
tv_nsec = 94891442645784}, save_total = {tv_sec = 94891442645728, tv_nsec
= 94891442645616}, f_start = {tv_sec = 94891442644624, tv_nsec =
94891442641488}}
rsinfo = {type = T_ReturnSetInfo, econtext = 0x564da2bb2410,
expectedDesc = 0x564da2bdf308, allowedModes = 3, returnMode =
SFRM_ValuePerCall, isDone = ExprSingleResult, setResult = 0x0, setDesc =
0x0}
callit = true
i = <optimized out>
__func__ = "ExecMakeFunctionResultSet"
#11 0x0000564da07236ca in ExecProjectSRF (node=node at entry=0x564da2bb2530,
continuing=continuing at entry=false) at
./build/../src/backend/executor/nodeProjectSet.c:175
elem = <optimized out>
isdone = 0x564da2bdf668
result = 0x564da2bb3998
isnull = <optimized out>
resultSlot = 0x564da2bb3950
econtext = 0x564da2bb2410
oldcontext = 0x564da2bb1a50
hassrf = <optimized out>
hasresult = false
argno = 0
#12 0x0000564da07237a4 in ExecProjectSet (pstate=0x564da2bb2530) at
./build/../src/backend/executor/nodeProjectSet.c:105
node = 0x564da2bb2530
outerTupleSlot = <optimized out>
resultSlot = <optimized out>
outerPlan = 0x564da2bb2690
econtext = 0x564da2bb2410
#13 0x0000564da0701ac9 in ExecProcNodeInstr (node=0x564da2bb2530) at
./build/../src/backend/executor/execProcnode.c:461
result = <optimized out>
#14 0x0000564da06faeb3 in ExecProcNode (node=0x564da2bb2530) at
./build/../src/include/executor/executor.h:239
No locals.
#15 ExecutePlan (execute_once=<optimized out>, dest=0x564da2b2d510,
direction=<optimized out>, numberTuples=0, sendTuples=<optimized out>,
operation=CMD_SELECT, use_parallel_mode=<optimized out>,
planstate=0x564da2bb2530, estate=0x564da2bb1b60) at
./build/../src/backend/executor/execMain.c:1648
slot = <optimized out>
current_tuple_count = 4
slot = <optimized out>
current_tuple_count = <optimized out>
#16 standard_ExecutorRun (queryDesc=0x564da2b2e458, direction=<optimized
out>, count=0, execute_once=<optimized out>) at
./build/../src/backend/executor/execMain.c:365
estate = 0x564da2bb1b60
operation = CMD_SELECT
dest = 0x564da2b2d510
sendTuples = <optimized out>
oldcontext = 0x564da2b2caf0
__func__ = "standard_ExecutorRun"
#17 0x00007fab4c1bb715 in explain_ExecutorRun (queryDesc=0x564da2b2e458,
direction=ForwardScanDirection, count=0, execute_once=<optimized out>) at
./build/../contrib/auto_explain/auto_explain.c:322
save_exception_stack = 0x7ffc0ed25a30
save_context_stack = 0x0
local_sigjmp_buf = {{__jmpbuf = {140366884896768,
-4010915758318949467, 140366885441632, 140366884906560, 94891442103384,
94891442099472, -4010915758285395035, -3965181094665917531},
__mask_was_saved = 0, __saved_mask = {__val = {94891404157904,
140720557152464, 94891404494067, 140366885441632, 140366884896768,
94891404157904, 140720557152608, 94891442644272, 94891442099696,
140720557152528, 94891404494161,
140366885441632, 140366884896768, 140366885441632,
140366884896768, 140366885441632}}}}
#18 0x0000564da06ff5a6 in ParallelQueryMain (seg=seg at entry=0x564da2a54e20,
toc=toc at entry=0x7fa9b6500000) at
./build/../src/backend/executor/execParallel.c:1399
fpes = <optimized out>
buffer_usage = <optimized out>
receiver = 0x564da2b2d510
--Type <RET> for more, q to quit, c to continue without paging--
queryDesc = 0x564da2b2e458
instrumentation = <optimized out>
jit_instrumentation = 0x7fa9b65023e0
instrument_options = <optimized out>
area_space = <optimized out>
area = <optimized out>
pwcxt = {seg = 0x564da2a54e20, toc = 0x7fa9b6500000}
#19 0x0000564da05cccc7 in ParallelWorkerMain (main_arg=<optimized out>) at
./build/../src/backend/access/transam/parallel.c:1431
seg = 0x564da2a54e20
toc = 0x7fa9b6500000
fps = 0x7fa9b65a6440
error_queue_space = <optimized out>
mq = <optimized out>
mqh = <optimized out>
libraryspace = <optimized out>
entrypointstate = <optimized out>
library_name = <optimized out>
function_name = <optimized out>
entrypt = 0x564da06ff390 <ParallelQueryMain>
gucspace = <optimized out>
combocidspace = <optimized out>
tsnapspace = <optimized out>
asnapspace = <optimized out>
tstatespace = <optimized out>
reindexspace = <optimized out>
relmapperspace = <optimized out>
enumblacklistspace = <optimized out>
msgbuf = {data = 0x0, len = 8, maxlen = 1024, cursor = 75}
session_dsm_handle_space = <optimized out>
__func__ = "ParallelWorkerMain"
#20 0x0000564da07d646e in StartBackgroundWorker () at
./build/../src/backend/postmaster/bgworker.c:834
local_sigjmp_buf = {{__jmpbuf = {94891441211920,
-4010915758251840603, 7, 94891409541712, 94891441606768, 94891441608128,
-4010915758224577627, -7262898823278367835}, __mask_was_saved = 1,
__saved_mask = {__val = {18446744066192964103, 0, 94891441244880,
140720557152976, 94891406982373, 94891441244880, 94891441244880,
140720557152976, 94891407004545, 94891441606768, 0, 140720557153040,
94891406982373,
94891409541712, 0, 7}}}}
worker = 0x564da2a54a10
entrypt = <optimized out>
__func__ = "StartBackgroundWorker"
#21 0x0000564da07e38a9 in do_start_bgworker (rw=<optimized out>) at
./build/../src/backend/postmaster/postmaster.c:5763
worker_pid = <optimized out>
worker_pid = <optimized out>
__func__ = "do_start_bgworker"
__errno_location = <optimized out>
__errno_location = <optimized out>
#22 maybe_start_bgworkers () at
./build/../src/backend/postmaster/postmaster.c:5976
rw = <optimized out>
num_launched = 7
now = 0
iter = {cur = 0x564da2ab55c0, next = 0x564da2aa7c20, prev =
0x564da2aae0e0}
#23 0x0000564da07e424b in sigusr1_handler (postgres_signal_arg=<optimized
out>) at ./build/../src/backend/postmaster/postmaster.c:5161
save_errno = 4
__func__ = "sigusr1_handler"
#24 <signal handler called>
No locals.
#25 0x00007fab4b45c007 in __GI___select (nfds=nfds at entry=7,
readfds=readfds at entry=0x7ffc0ed269b0, writefds=writefds at entry=0x0,
exceptfds=exceptfds at entry=0x0, timeout=timeout at entry=0x7ffc0ed26910) at
../sysdeps/unix/sysv/linux/select.c:41
resultvar = 18446744073709551612
sc_ret = <optimized out>
#26 0x0000564da07e49a6 in ServerLoop () at
./build/../src/backend/postmaster/postmaster.c:1668
timeout = {tv_sec = 59, tv_usec = 998696}
rmask = {fds_bits = {104, 0 <repeats 15 times>}}
selres = <optimized out>
now = <optimized out>
readmask = {fds_bits = {104, 0 <repeats 15 times>}}
nSockets = 7
last_lockfile_recheck_time = 1563436410
last_touch_time = 1563433829
__func__ = "ServerLoop"
#27 0x0000564da07e652f in PostmasterMain (argc=5, argv=0x564da2a53c30) at
./build/../src/backend/postmaster/postmaster.c:1377
opt = <optimized out>
status = <optimized out>
userDoption = <optimized out>
listen_addr_saved = <optimized out>
i = <optimized out>
output_config_variable = <optimized out>
__func__ = "PostmasterMain"
#28 0x0000564da054eefd in main (argc=5, argv=0x564da2a53c30) at
./build/../src/backend/main/main.c:228
No locals.
}}}
--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/4459>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-tickets
mailing list