-
Notifications
You must be signed in to change notification settings - Fork 14
Description
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.