Skip to content

Casting a geometry column to LINESTRING_2D results in a malloc error, crashing duckdb #548

Closed
@carstonhernke

Description

@carstonhernke

Hi! I was working with some road centerline (line) data, attempting to convert it to the experimental LINESTRING_2D type and I came across some unexpected behavior.

Platform: MacOS Sonoma (running DuckDB from command line)
DuckDB version: 1.2.2
Spatial extension version: 3bb37f8

(I'm also seeing similar behavior in the Wasm build at shell.duckdb.org. Steps to reproduce are the same)

Data:
13838 rows, with a geometry column (geom_transformed) representing streets in Minneapolis, MN using the EPSG:4326 CRS.
File can be downloaded at https://github.com/carstonhernke/demo-h3-data/blob/main/parquet/mpls_streets.parquet

Steps to reproduce:

  1. load spatial;
  2. create table geo as select * from 'mpls_streets.parquet';
  3. select "geom_transformed"::LINESTRING_2D as line from geo;

At the last step, duckdb reliably crashes, with the following error message:

duckdb(36426,0x1f6e68f40) malloc: Incorrect checksum for freed object 0x12289dc00: probably modified after being freed.
Corrupt value: 0x404672fbd9844419
duckdb(36426,0x1f6e68f40) malloc: *** set a breakpoint in malloc_error_break to debug
zsh: abort      duckdb

I haven't been able to narrow the error down to a specific row. All of the rows contain a valid geometry, and none of them are especially complicated. Thanks in advance for the help!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions