Opened 12 years ago

Closed 12 years ago

#296 closed task (wontfix)

ropp_pp_occ_tool segfaults

Reported by: krl Owned by: Ian Culverwell
Priority: minor Milestone: 6.1
Component: ropp_pp Version: 6.0
Keywords: Cc:

Description

Hi

I some cases the ropp_pp_occ_tool segfaults. It is due to bad input data but in this case it segfaults after the ropp_pp_preprocess. It would be nice is the program failed with a non-zero exit code, if it is possible. I've asked around and the exit function does not seem to be part of the Fortran standard.

----------------------------------------------------------------------
               ROPP Occultation Pre-processor Tool
----------------------------------------------------------------------

INFO:  Reading configuration file /home/krl/rpp_test/cosmic_pp_dmi.cf.

INFO:  Processing profile    1 of      1
INFO:  Reading input data file /home/krl/rpp_test/occ_20091104_191624_C003_G023_0082_P_XXXX.nc.

INFO:  (OC_20091104191624_C003_G023_UCAR) 

INFO (from ropp_pp_preprocess):  COSMIC data preprocessing
INFO (from ropp_pp_preprocess):  Reading lost carrier flag data from input file
INFO (from ropp_pp_preprocess):  Reading external NDM data from file /home/krl/rpp_test/gpsBit_C003.2009.308.19.18.G23_2010.2640_txt
INFO (from ropp_pp_preprocess):  COSMIC data: openloop preprocessing
 
WARNING (from ropp_pp_bending_angle_go):  Filter width larger than data array size - will not process
 
WARNING (from ropp_pp_bending_angle_go):  Error: data unusable [L2 amplitude]
INFO (from ropp_pp_bending_angle_go):  Writing additional diagnostic output 

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC        Routine            Line        Source             
ropp_pp_occ_tool   08152F4E  ropp_io_addvar_vl         237  ropp_io_addvar.f90
ropp_pp_occ_tool   0815292A  ropp_io_addvar_ro         121  ropp_io_addvar.f90
ropp_pp_occ_tool   08050F82  MAIN__                    844  ropp_pp_occ_tool.f90
ropp_pp_occ_tool   08049B31  Unknown               Unknown  Unknown
libc.so.6          B76FCBD6  Unknown               Unknown  Unknown
ropp_pp_occ_tool   08049A91  Unknown               Unknown  Unknown


Attachments (1)

ropp_pp_occ_tool_test.tar.gz (2.0 MB ) - added by krl 12 years ago.
Executable tool (i386), input files and commanline

Download all attachments as: .zip

Change history (5)

by krl, 12 years ago

Executable tool (i386), input files and commanline

comment:1 by krl, 12 years ago

The ropp_pp_occ_tool in the tar-ball is compiled with debug flags. The command line is included in the tar-ball.

comment:2 by Ian Culverwell, 12 years ago

Couldn't reproduce error. Asked Rune for some help on 11/12/2012:

Hi Rune,

I was looking at this ticket about error codes from ROPP.

I have been unable to reproduce the segmentation violation that you 
saw.  I can't run the executable you provided, because I didn't have 
some library installed:

ropp_pp_occ_tool_test/ropp_pp_occ_tool: /lib/tls/libc.so.6: 
version `GLIBC_2.4' not found (required by
ropp_pp_occ_tool_test/ropp_pp_occ_tool)

However, I did have an old ropp_pp_occ_tool, built for a 32-bit linux 
machine, as yours was.  That failed because of 

"Error: data unusable [L2 amplitude]"

, as yours did, but it didn't have a segmentation fault. 
 
Ditto for a version built on a 64-bit machine. 
 
So I don't know how to proceed. 
 
I notice that your program must include some DMI add-ons, because mine 
complained about
 
WARNING (from ropp_pp_read_config):  Unknown configuration
item: output_lev1a - skipping.
  
WARNING (from ropp_pp_read_config):  Unknown configuration
item: output_lev1b - skipping.

WARNING (from ropp_pp_read_config):  Unknown configuration
item: output_lev2a - skipping.
 
while yours apprently did not.   Could the error be 
associated with those changes?  Can you get the same thing with a 
"vanilla" ROPP?
 
Regards,
Ian.
 
PS: Incidentally, the r/v_leo/gns valid_ranges are incorrect in your 
input file.  This causes the latest version of ropp_io_rangecheck to 
reject data, as it does a more sophisticated check on |r_leo/gns|, 
using these numbers. You need to reduce them all by a factor of 1000.

This was followed up with:

Actually, one thing did come to mind.  I think your code fell over while trying to
generate extra data.  There were some changes to this structure, to include the 
"weight" of the data in the statistical optimisation - see ROPP ticket 255 for 
details.  Are you sure your code is up-to-date in this respect?  You should see lots 
of references to diag%wt_data.  Getting a mismatch here could easily cause a seg 
fault.

Ian.

comment:3 by Ian Culverwell, 12 years ago

Owner: set to Ian Culverwell
Status: newassigned

comment:4 by Ian Culverwell, 12 years ago

Resolution: wontfix
Status: assignedclosed

No reply in two months so closing ticket.

Note: See TracTickets for help on using tickets.