Skip to content

OBSGRID infinite loop / crash #9

@Plantain

Description

@Plantain

OBSGRID hangs processing large numbers of observations (in this case 1.7GB, but it fails reliably with much less)

Output looks like
Starting to READ a new report.
Error trying to read last 3 integers in observation MADIS. Discarding entire and continuing.
Error in measurement read. Discarding entire observation and continuing. 1.00000 0-888888.00000 0 -888888.00000 0-888888.00000 0
Troubles with measurement lines 1.00000 0-888888.00000 0 -888888.00000 0-888888.00000 0
Starting to READ a new report.
Error in measurement read. Discarding entire observation and continuing. MADIS
free(): double free detected in tcache 2

Which I think I traced back to coming from the dealloc_meas in obs_sort_module:
src/obs_sort_module.F90
IF ( error_ret .EQ. read_err ) THEN
IF ( ASSOCIATED ( obs(obs_num)%surface ) ) THEN
! dealloc entire linked list if it exists
CALL dealloc_meas ( obs(obs_num)%surface)

I did try commenting out the dealloc, and it instead segfaults after a while in malloc.

I uploaded an example dataset to the WRF user forum nextcloud, and also attached the observations to this post. Sorry about the lzma inside a .gz, it's the only way to make it small enough and comply with github's restrictions.

data.tar.gz

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