[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