Assertion `fabs(cur_isc->x-m_cur_intersection->x) + fabs(cur_isc->y-m_cur_intersection->y) < 0.000000000001' failed in Gcalc_scan_iterator::intersection_scan() in maria-5.3-gis

Bug #848901 reported by Philip Stoev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MariaDB
Fix Released
Undecided
Alexey Botchkov

Bug Description

int Gcalc_scan_iterator::intersection_scan(): Assertion `fabs(cur_isc->x-m_cur_intersection->x) + fabs(cur_isc->y-m_cur_intersection->y) < 0.000000000001' failed.

# 2011-09-13T14:48:17 #8 0x006b0d98 in __assert_fail () from /lib/libc.so.6
# 2011-09-13T14:48:17 #9 0x0836633e in Gcalc_scan_iterator::intersection_scan (this=0x956818b4) at gcalc_slicescan.cc:951
# 2011-09-13T14:48:17 #10 0x0825f3df in Gcalc_scan_iterator::step (this=0x956818b4) at gcalc_slicescan.h:338
# 2011-09-13T14:48:17 #11 0x08368e29 in Gcalc_operation_reducer::count_all (this=0xa14ea68, hp=0xa14e914) at gcalc_tools.cc:1074
# 2011-09-13T14:48:17 #12 0x0825d817 in Item_func_buffer::val_str (this=0xa14e890, str_value=0xa14ee00) at item_geofunc.cc:1483
# 2011-09-13T14:48:17 #13 0x0825c0a6 in Item_func_spatial_operation::val_str (this=0xa14ebc8, str_value=0xa14f150) at item_geofunc.cc:1011
# 2011-09-13T14:48:17 #14 0x0825c0a6 in Item_func_spatial_operation::val_str (this=0xa14ef18, str_value=0xa14ff90) at item_geofunc.cc:1011
# 2011-09-13T14:48:17 #15 0x0825c074 in Item_func_spatial_operation::val_str (this=0xa14fd70, str_value=0xa150810) at item_geofunc.cc:1010
# 2011-09-13T14:48:17 #16 0x0825c074 in Item_func_spatial_operation::val_str (this=0xa1505f0, str_value=0x95681c60) at item_geofunc.cc:1010
# 2011-09-13T14:48:17 #17 0x08259793 in Item_func_as_wkt::val_str (this=0xa150520, str=0x95682060) at item_geofunc.cc:123
# 2011-09-13T14:48:17 #18 0x081dbb81 in Item::send (this=0xa150520, protocol=0xa133454, buffer=0x95682060) at item.cc:5905
# 2011-09-13T14:48:17 #19 0x08289528 in select_send::send_data (this=0xa1509b0, items=...) at sql_class.cc:1919
# 2011-09-13T14:48:17 #20 0x08326378 in JOIN::exec (this=0xa1525d8) at sql_select.cc:2069
# 2011-09-13T14:48:17 #21 0x08328d94 in mysql_select (thd=0xa133128, rref_pointer_array=0xa134c40, tables=0x0, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0,
# 2011-09-13T14:48:17 having=0x0, proc_param=0x0, select_options=2147764736, result=0xa1509b0, unit=0xa134844, select_lex=0xa134b20) at sql_select.cc:2885
# 2011-09-13T14:48:17 #22 0x08320c5f in handle_select (thd=0xa133128, lex=0xa1347e8, result=0xa1509b0, setup_tables_done_option=0) at sql_select.cc:283
# 2011-09-13T14:48:17 #23 0x082bc38f in execute_sqlcom_select (thd=0xa133128, all_tables=0x0) at sql_parse.cc:5082
# 2011-09-13T14:48:17 #24 0x082b3193 in mysql_execute_command (thd=0xa133128) at sql_parse.cc:2227
# 2011-09-13T14:48:17 #25 0x082be9cb in mysql_parse (thd=0xa133128,
# 2011-09-13T14:48:17 rawbuf=0xa13e950 "SELECT ASTEXT( ST_SYMDIFFERENCE( ST_SYMDIFFERENCE( ST_INTERSECTION( MULTILINESTRINGFROMTEXT(' MULTILINESTRING( ( 6 4 , 3 7 , 9 4 , 3 8 ) , ( 2 2 , 2 9 , 1 2 , 9 8 ) ) ') , ST_SYMDIFFERENCE( MULTIPOINTFROMTEXT(' MULTIPOINT( 6 1 , 3 8 , 3 3 , 0 6 , 7 2 , 3 4 ) ') , ST_BUFFER( ST_UNION( MULTIPOLYGONFROMTEXT(' MULTIPOLYGON( ( ( 2 2 , 6 2 , 1 3 , 2 2 , 2 2 ) ) ) ') , GEOMETRYFROMTEXT(' MULTILINESTRING( ( 1 4 , 9 9 , 3 0 , 6 6 ) , ( 3 5 , 1 0 , 5 8 , 6 1 ) , ( 8 9 , 6 1 , 5 1 , 6 2 ) , ( 2 2 , 7 5 , 5 8 , 6 9 , 3 0 ) , ( 8 0 , 8 4 , 6 7 , 5 5 ) ) ') ) , NUMPOINTS( EXTERIORRING( POLYGONFROMTEXT(' POLYGON( ( 0 0 , 2 1 , 8 2 , 0 0 ) ) ') ) ) ) ) ) , ST_INTERSECTION( POLYGONFROMTEXT(' POLYGON( ( 2 3 5 7 , 3 7 , 4 1 , 0 5 ) ) ') , MULTILINESTRINGFROMTEXT(' MULTILINESTRING( ( 2 3 , 1 4 , 6 4 , 9 1 , 3 4 , 1 8 ) , ( 9 9 , 0 3 , 1 7 , 9 9 ) ) ') ) ) , POLYGONFROMTEXT(' POLYGON( ( 1 3 7 2 , 1 5 , 3 8 , 5 0 ) ) ') ) )", length=930, found_semicolon=0x95683228) at sql_parse.cc:6083
# 2011-09-13T14:48:17 #26 0x082b0e2f in dispatch_command (command=COM_QUERY, thd=0xa133128, packet=0xa135669 "", packet_length=930) at sql_parse.cc:1206
# 2011-09-13T14:48:17 #27 0x082b02b5 in do_command (thd=0xa133128) at sql_parse.cc:904
# 2011-09-13T14:48:17 #28 0x082ad330 in handle_one_connection (arg=0xa133128) at sql_connect.cc:1177
# 2011-09-13T14:48:17 #29 0x00821919 in start_thread () from /lib/libpthread.so.0
# 2011-09-13T14:48:17 #30 0x0076acce in clone () from /lib/libc.so.6
# 2011-09-13T14:48:17 #5 0x0043a424 in __kernel_vsyscall ()

test case

 SELECT ASTEXT( ST_SYMDIFFERENCE ( ST_SYMDIFFERENCE ( ST_INTERSECTION ( MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 6 4 , 3 7 , 9 4 , 3 8 ) , ( 2 2 , 2 9 , 1 2 , 9 8 ) ) ' ) , ST_SYMDIFFERENCE ( MULTIPOINTFROMTEXT( ' MULTIPOINT( 6 1 , 3 8 , 3 3 , 0 6 , 7 2 , 3 4 ) ' ) , ST_BUFFER ( ST_UNION ( MULTIPOLYGONFROMTEXT( ' MULTIPOLYGON( ( ( 2 2 , 6 2 , 1 3 , 2 2 , 2 2 ) ) ) ' ) , GEOMETRYFROMTEXT( ' MULTILINESTRING( ( 1 4 , 9 9 , 3 0 , 6 6 ) , ( 3 5 , 1 0 , 5 8 , 6 1 ) , ( 8 9 , 6 1 , 5 1 , 6 2 ) , ( 2 2 , 7 5 , 5 8 , 6 9 , 3 0 ) , ( 8 0 , 8 4 , 6 7 , 5 5 ) ) ' ) ) , NUMPOINTS( EXTERIORRING( POLYGONFROMTEXT( ' POLYGON( ( 0 0 , 2 1 , 8 2 , 0 0 ) ) ' ) ) ) ) ) ) , ST_INTERSECTION ( POLYGONFROMTEXT( ' POLYGON( ( 2 3 5 7 , 3 7 , 4 1 , 0 5 ) ) ' ) , MULTILINESTRINGFROMTEXT( ' MULTILINESTRING( ( 2 3 , 1 4 , 6 4 , 9 1 , 3 4 , 1 8 ) , ( 9 9 , 0 3 , 1 7 , 9 9 ) ) ' ) ) ) , POLYGONFROMTEXT( ' POLYGON( ( 1 3 7 2 , 1 5 , 3 8 , 5 0 ) ) ' ) ) ) ;

Changed in maria:
assignee: nobody → Alexey Botchkov (holyfoot)
Changed in maria:
status: New → Fix Committed
Revision history for this message
Philip Stoev (pstoev-askmonty) wrote :

Still repeatable with:

SELECT GeometryType( ST_SYMDIFFERENCE( ST_BUFFER( MULTIPOINTFROMTEXT(' MULTIPOINT( 7 9 , 4 5 , 6 9 , 5 8 , 8 4 ) ') , CAST( AREA( ENVELOPE( ST_INTERSECTION( MULTIPOLYGONFROMTEXT(' MULTIPOLYGON( ( ( 7 7 , 1 7, 0 8, 7 6 , 7 7 ) ) ) ') , POLYGONFROMTEXT(' POLYGON( (3 5, 2 5, 2 4, 3 4, 3 5) ) ') ) ) ) AS INTEGER ) ) , ST_SYMDIFFERENCE( ST_UNION( MULTILINESTRINGFROMTEXT(' MULTILINESTRING( ( 8 7 , 5 1 , 0 3 , 3 6 ) , ( 0 7 , 8 3 , 0 0 , 1 5 , 0 4 ) , ( 4 2 , 6 3 , 6 5 , 8 6 ) ) ') , EXTERIORRING( POLYGONFROMTEXT(' POLYGON( (0 5, 3 5, 3 0, 0 0, 0 1, 2 1, 2 2, 0 2, 0 5), ( 1 3 , 2 3 , 2 4 , 1 4, 1 3) ) ') ) ) , GEOMETRYN( GEOMETRYCOLLECTIONFROMTEXT(' GEOMETRYCOLLECTION( POINT( 1 5 ) , POINT( 0 4 ) , POLYGON( (3 5, 2 4, 2 5, 3 5) ) ) ') , CAST( GLENGTH( MULTILINESTRINGFROMTEXT(' MULTILINESTRING( ( 3 5 , 3 0 , 0 8 , 2 6 ) , (0 5, 3 5, 3 0, 0 0, 0 1, 2 1, 2 2 , 1 2 , 1 3 , 2 3 , 2 4, 0 4 , 0 5) ) ') ) AS INTEGER ) ) ) ) );

assertion now reads as follows:

mysqld: gcalc_slicescan.cc:953: int Gcalc_scan_iterator::intersection_scan(): Assertion `fabs(cur_isc->x-m_cur_intersection->x) + fabs(cur_isc->y-m_cur_intersection->y) < 0.00000000001' failed.

Changed in maria:
status: Fix Committed → Confirmed
Changed in maria:
status: Confirmed → Fix Committed
Changed in maria:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.