Unidata / netcdf-c

Official GitHub repository for netCDF-C libraries and utilities.
BSD 3-Clause "New" or "Revised" License
515 stars 262 forks source link

ncdump 4.4.0-rc1 fails on opendap files #122

Closed doutriaux1 closed 9 years ago

doutriaux1 commented 9 years ago
doutriaux1@omar:[~/build_nc4]:[36186]> nc-config --all

This netCDF 4.3.3.1 has been built with the following features: 

  --cc        -> /usr/bin/cc
  --cflags    ->  -I/home/doutriaux1/build_nc4/install/Externals/include -I/home/doutriaux1/build_nc4/install/Externals/include -I/home/doutriaux1/build_nc4/install/Externals/lib/libffi-3.1/include   
  --libs      -> 

  --has-c++   -> no
  --cxx       -> 
  --has-c++4  -> no
  --cxx4      -> 

  --fc        -> 
  --fflags    -> 
  --flibs     -> 
  --has-f90   -> no

  --has-dap   -> yes
  --has-nc2   -> yes
  --has-nc4   -> yes
  --has-hdf5  -> yes
  --has-hdf4  -> no
  --has-pnetcdf-> no

  --prefix    -> /home/doutriaux1/build_nc4/install/Externals
  --includedir-> /home/doutriaux1/build_nc4/install/Externals/include
  --version   -> netCDF 4.3.3.1

doutriaux1@omar:[~/build_nc4]:[36186]> ncdump -h http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc
ncdump: http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc: NetCDF: I/O failure
doutriaux1 commented 9 years ago

it says 4.3.3.1 but it is 4.4.0-rc1 see #121

doutriaux1 commented 9 years ago

actually I just verified but I DO get the exact same error in 4.3.3.1

doutriaux1 commented 9 years ago

@WardF @DennisHeimbigner , @durack1 told me to ping you both on this.

durack1 commented 9 years ago

@WardF @DennisHeimbigner @doutriaux1 this likely replaces the verbose issue #115, which was tied up with dap test failures

WardF commented 9 years ago

Thanks for the information, I'll take a look at this too. I hadn't realized 115 was still an ongoing issue. I've been preparing the next RC but will delay until this is fixed. @DennisHeimbigner do you have any insights into this?

WardF commented 9 years ago

Github won't let me assign more than one person to this; Since it's DAP I'll leave you as lead, Dennis, but I'll work on it and follow your lead.

WardF commented 9 years ago

@doutriaux1 Can you provide a little more information about your environment/platform? I've tested this on OSX and Linux (Ubuntu 14.10, 64-bit) and am not able to duplicate your error. The output from my test can be found here: https://gist.github.com/WardF/da463b616ef3d90d7c94

This is using the current master; I'll roll back to the actual 4.4.0-rc1 release and try that.

WardF commented 9 years ago

Ok, I've confirmed that this test still works on my side when I use the actual 4.4.0-rc1 release. I've tested on OSX and Linux, as well as using both autoconf and cmake-based builds.

durack1 commented 9 years ago

@WardF @DennisHeimbigner @doutriaux1 I just tested the 4.4.0-rc1 code built last night on OS X 10.10.4 using autoconf and I can't replicate the error either:

[durack1ml:~] durack1% netcdf4.4.0-rc1/150708_build/v4.4.0-rc1_install/bin/nc-config --all

This netCDF 4.3.3.1 has been built with the following features: 

  --cc        -> gcc
  --cflags    ->  -I/netcdf4.4.0-rc1/150708_build/v4.4.0-rc1_install/include -I/netcdf4.4.0-rc1/150708_build/hdf5+zlib/include
  --libs      -> 

  --has-c++   -> no
  --cxx       -> 
  --has-c++4  -> no
  --cxx4      -> 

  --fc        -> 
  --fflags    -> 
  --flibs     -> 
  --has-f90   -> no

  --has-dap   -> yes
  --has-nc2   -> yes
  --has-nc4   -> yes
  --has-hdf5  -> yes
  --has-hdf4  -> no
  --has-pnetcdf-> no

  --prefix    -> netcdf4.4.0-rc1/150708_build/v4.4.0-rc1_install
  --includedir-> netcdf4.4.0-rc1/150708_build/v4.4.0-rc1_install/include
  --version   -> netCDF 4.3.3.1
[durack1ml:~] durack1% ncdump -h http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc
netcdf ECMWF_ERA-40_subset {
dimensions:
    time = UNLIMITED ; // (62 currently)
    latitude = 73 ;
    longitude = 144 ;
variables:
    float longitude(longitude) ;
        longitude:units = "degrees_east" ;
        longitude:long_name = "longitude" ;
    float latitude(latitude) ;
        latitude:units = "degrees_north" ;
        latitude:long_name = "latitude" ;
    int time(time) ;
        time:units = "hours since 1900-01-01 00:00:0.0" ;
        time:long_name = "time" ;
    short tcw(time, latitude, longitude) ;
        tcw:scale_factor = 0.0013500981745481 ;
        tcw:add_offset = 44.3250482744756 ;
        tcw:_FillValue = -32767s ;
        tcw:missing_value = -32767s ;
        tcw:units = "kg m**-2" ;
        tcw:long_name = "Total column water" ;
    short tcwv(time, latitude, longitude) ;
        tcwv:scale_factor = 0.001327110772669 ;
        tcwv:add_offset = 43.5704635546154 ;
        tcwv:_FillValue = -32767s ;
        tcwv:missing_value = -32767s ;
        tcwv:units = "kg m**-2" ;
        tcwv:long_name = "Total column water vapour" ;
    short lsp(time, latitude, longitude) ;
        lsp:scale_factor = 8.03329303850659e-07 ;
        lsp:add_offset = 0.0263210846406669 ;
        lsp:_FillValue = -32767s ;
        lsp:missing_value = -32767s ;
        lsp:units = "m" ;
        lsp:long_name = "Stratiform precipitation (Large-scale precipitation)" ;
    short cp(time, latitude, longitude) ;
        cp:scale_factor = 4.82483645945993e-07 ;
        cp:add_offset = 0.0158085766594205 ;
        cp:_FillValue = -32767s ;
        cp:missing_value = -32767s ;
        cp:units = "m" ;
        cp:long_name = "Convective precipitation" ;
    short msl(time, latitude, longitude) ;
        msl:scale_factor = 0.1721754257462 ;
        msl:add_offset = 99424.2653245743 ;
        msl:_FillValue = -32767s ;
        msl:missing_value = -32767s ;
        msl:units = "Pa" ;
        msl:long_name = "Mean sea level pressure" ;
    short blh(time, latitude, longitude) ;
        blh:scale_factor = 0.108739383344517 ;
        blh:add_offset = 3570.14367055165 ;
        blh:_FillValue = -32767s ;
        blh:missing_value = -32767s ;
        blh:units = "m" ;
        blh:long_name = "Boundary layer height" ;
    short tcc(time, latitude, longitude) ;
        tcc:scale_factor = 1.52597204419215e-05 ;
        tcc:add_offset = 0.499984740280558 ;
        tcc:_FillValue = -32767s ;
        tcc:missing_value = -32767s ;
        tcc:units = "(0 - 1)" ;
        tcc:long_name = "Total cloud cover" ;
    short p10u(time, latitude, longitude) ;
        p10u:scale_factor = 0.0007584155104299 ;
        p10u:add_offset = -0.440509086897149 ;
        p10u:_FillValue = -32767s ;
        p10u:missing_value = -32767s ;
        p10u:units = "m s**-1" ;
        p10u:long_name = "10 metre U wind component" ;
    short p10v(time, latitude, longitude) ;
        p10v:scale_factor = 0.000664359461014752 ;
        p10v:add_offset = -0.745888358484452 ;
        p10v:_FillValue = -32767s ;
        p10v:missing_value = -32767s ;
        p10v:units = "m s**-1" ;
        p10v:long_name = "10 metre V wind component" ;
    short p2t(time, latitude, longitude) ;
        p2t:scale_factor = 0.00183558351993706 ;
        p2t:add_offset = 262.398478747535 ;
        p2t:_FillValue = -32767s ;
        p2t:missing_value = -32767s ;
        p2t:units = "K" ;
        p2t:long_name = "2 metre temperature" ;
    short p2d(time, latitude, longitude) ;
        p2d:scale_factor = 0.00161126451178551 ;
        p2d:add_offset = 251.887106386855 ;
        p2d:_FillValue = -32767s ;
        p2d:missing_value = -32767s ;
        p2d:units = "K" ;
        p2d:long_name = "2 metre dewpoint temperature" ;
    short e(time, latitude, longitude) ;
        e:scale_factor = 1.16702451907916e-07 ;
        e:add_offset = -0.00232199712964108 ;
        e:_FillValue = -32767s ;
        e:missing_value = -32767s ;
        e:units = "m of water" ;
        e:long_name = "Evaporation" ;
    short lcc(time, latitude, longitude) ;
        lcc:scale_factor = 1.52597204419215e-05 ;
        lcc:add_offset = 0.499984740279558 ;
        lcc:_FillValue = -32767s ;
        lcc:missing_value = -32767s ;
        lcc:units = "(0 - 1)" ;
        lcc:long_name = "Low cloud cover" ;
    short mcc(time, latitude, longitude) ;
        mcc:scale_factor = 1.52597204419215e-05 ;
        mcc:add_offset = 0.499984740279558 ;
        mcc:_FillValue = -32767s ;
        mcc:missing_value = -32767s ;
        mcc:units = "(0 - 1)" ;
        mcc:long_name = "Medium cloud cover" ;
    short hcc(time, latitude, longitude) ;
        hcc:scale_factor = 1.52597204419215e-05 ;
        hcc:add_offset = 0.499984740280558 ;
        hcc:_FillValue = -32767s ;
        hcc:missing_value = -32767s ;
        hcc:units = "(0 - 1)" ;
        hcc:long_name = "High cloud cover" ;
    short tco3(time, latitude, longitude) ;
        tco3:scale_factor = 7.69770539069593e-08 ;
        tco3:add_offset = 0.00736908367510674 ;
        tco3:_FillValue = -32767s ;
        tco3:missing_value = -32767s ;
        tco3:units = "kg m**-2" ;
        tco3:long_name = "Total column ozone" ;
    short tp(time, latitude, longitude) ;
        tp:scale_factor = 1.05226955985453e-06 ;
        tp:add_offset = 0.0344776121286335 ;
        tp:_FillValue = -32767s ;
        tp:missing_value = -32767s ;
        tp:units = "m" ;
        tp:long_name = "Total precipitation" ;

// global attributes:
        :Conventions = "CF-1.0" ;
        :history = "2004-09-15 17:04:29 GMT by mars2netcdf-0.92" ;
        :DODS_EXTRA.Unlimited_Dimension = "time" ;
}
doutriaux1 commented 9 years ago

I'm under ubuntu 15, let me try on my mac.

doutriaux1 commented 9 years ago

ok it fails as well for me on my mac 10.10.3 so it must be some of the dependencies that are different. What would opendap need? I use system curl.

doutriaux1 commented 9 years ago

I will check with @durack1 to see what dependencies he used.

durack1 commented 9 years ago

My OS X 10.10.4 build was against:

# Set versions
set netcdfVer='4.4.0-rc1'
set hdf5Ver='1.8.15'
set zlibVer='1.2.8'
# System info
[durack1ml:~] durack1% which gcc
/usr/bin/gcc
[durack1ml:~] durack1% gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1
Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.4.0
Thread model: posix
[durack1ml:~] durack1% which make
/usr/bin/make
[durack1ml:~] durack1% make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0
# Configure info
setenv CPPFLAGS "-I${hostDir}${netcdfDir}/${datenow}_build/hdf5+zlib/include"
setenv LDFLAGS "-L${hostDir}${netcdfDir}/${datenow}_build/hdf5+zlib/lib"
./configure --prefix=${hostDir}${netcdfDir}/${datenow}_build/v${netcdfVer}_install --enable-fortran --enable-netcdf-4 --enable-dap --disable-shared
make
make check
make install
doutriaux1 commented 9 years ago

looking at my config.log I see:

configure:5223: /usr/bin/cc -o conftest -I/home/doutriaux1/build_nc4/install/Externals/include -I/home/doutriaux1/build_nc4/install/Externals/lib/libffi-3.1/include    -I/home/doutriaux1/build_nc4/install/Externals/include -I/home/doutriaux1/build_nc4/install/Externals/lib/libffi-3.1/include    -L/home/doutriaux1/build_nc4/install/Externals/lib -L/home/doutriaux1/build_nc4/install/Externals/lib64  -Wl,-rpath,/home/doutriaux1/build_nc4/install/Externals/lib64 -Wl,-rpath,/home/doutriaux1/build_nc4/install/lib -Wl,-rpath,/home/doutriaux1/build_nc4/install/Externals/lib conftest.c  >&5
/tmp/doutriaux1/ccFvye13.o: In function`main':
conftest.c:(.text+0xa): undefined reference to `curl_easy_setopt'
collect2: error: ld returned 1 exit status
configure:5223: $? = 1
configure: failed program was:
| /\* confdefs.h _/
| #define PACKAGE_NAME "netCDF"
| #define PACKAGE_TARNAME "netcdf"
| #define PACKAGE_VERSION "4.3.3.1"
| #define PACKAGE_STRING "netCDF 4.3.3.1"
| #define PACKAGE_BUGREPORT "support-netcdf@unidata.ucar.edu"
| #define PACKAGE_URL ""
| #define PACKAGE "netcdf"
| #define VERSION "4.3.3.1"
| #define NCIO_MINBLOCKSIZE 256
| #define DEFAULT_CHUNK_SIZE 4194304
| #define MAX_DEFAULT_CACHE_SIZE 67108864
| #define DEFAULT_CHUNKS_IN_CACHE 10
| #define CHUNK_CACHE_SIZE 4194304
| #define CHUNK_CACHE_NELEMS 1009
| #define CHUNK_CACHE_PREEMPTION 0.75
| /_ end confdefs.h.  _/
|
| /_ Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
doutriaux1 commented 9 years ago

ok and

doutriaux1@omar:[~/build_nc4/build/netcdf]:[40460]> /usr/bin/cc -o conftest -I/home/doutriaux1/build_nc4/install/Externals/include -I/home/doutriaux1/build_nc4/install/Externals/lib/libffi-3.1/include    -I/home/doutriaux1/build_nc4/install/Externals/include -I/home/doutriaux1/build_nc4/install/Externals/lib/libffi-3.1/include    -L/home/doutriaux1/build_nc4/install/Externals/lib -L/home/doutriaux1/build_nc4/install/Externals/lib64  -Wl,-rpath,/home/doutriaux1/build_nc4/install/Externals/lib64 -Wl,-rpath,/home/doutriaux1/build_nc4/install/lib -Wl,-rpath,/home/doutriaux1/build_nc4/install/Externals/lib conftest.c -lcurl   

Works perfectly fine outside my build system... So it's me, sorry for the noise...

doutriaux1 commented 9 years ago

actually I'm reopening that doesn't seem to be the issue because the configure passes and actually says dap is enabled:

# Compiling Options
-----------------
C Compiler:     /usr/bin/clang
CFLAGS:         -I/Users/doutriaux1/build/install/Externals/include -I/Users/doutriaux1/build/install/Externals/lib/libffi-3.1/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include  -L/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources -bind_at_load -mmacosx-version-min=10.9
CPPFLAGS:       -I/Users/doutriaux1/build/install/Externals/include -I/Users/doutriaux1/build/install/Externals/lib/libffi-3.1/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include -m64 -mmacosx-version-min=10.9 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -pipe
LDFLAGS:        -L/Users/doutriaux1/build/install/Externals/lib  -Wl,-rpath,/Users/doutriaux1/build/install/lib -Wl,-rpath,/Users/doutriaux1/build/install/Externals/lib
AM_CFLAGS:
AM_CPPFLAGS:
AM_LDFLAGS:
Shared Library:     yes
Static Library:     yes
Extra libraries:    -lhdf5_hl -lhdf5 -ldl -lm -lz -lcurl

# Features
--------
NetCDF-2 API:       yes
NetCDF-4 API:       yes
HDF4 Support:       no
HDF5 Support:       yes
HDF5/SZIP Support:      no
PNetCDF Support:    no
Parallel Support:   no
DAP Support:        yes
Diskless Support:   yes
MMap Support:       no
JNA Support:        no
doutriaux1 commented 9 years ago

I'm tracing this a bit, the I/O Failure is actually a: OC_ECURL

DennisHeimbigner commented 9 years ago

Do you by any chance have a firewall in place or a proxy of some kind?

doutriaux1 commented 9 years ago
libtool: link: clang -I/Users/doutriaux1/build/install/Externals/include -I/Users/doutriaux1/build/install/Externals/lib/libffi-3.1/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include -bind_at_load -mmacosx-version-min=10.9 -Wl,-rpath -Wl,/Users/doutriaux1/build/install/lib -Wl,-rpath -Wl,/Users/doutriaux1/build/install/Externals/lib -o .libs/t_ncf330 t_ncf330.o  -L/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources -L/Users/doutriaux1/build/install/Externals/lib ../liblib/.libs/libnetcdf.dylib -L/Users/doutriaux1/build/install/Externals/lib64 /Users/doutriaux1/build/install/Externals/lib/libhdf5_hl.dylib /Users/doutriaux1/build/install/Externals/lib/libhdf5.dylib -ldl -lm -lz -lcurl
ld: warning: directory not found for option '-L/Users/doutriaux1/build/install/Externals/lib64'
/Applications/Xcode.app/Contents/Developer/usr/bin/make  check-TESTS
FAIL: tst_ncdap3.sh
FAIL: t_dap3a
FAIL: test_cvt3
FAIL: test_vara
FAIL: tst_remote3.sh
FAIL: tst_formatx.sh
FAIL: test_partvar
PASS: testurl.sh
FAIL: test_varm3
PASS: test_nstride_cached
PASS: t_misc
============================================================================
Testsuite summary for netCDF 4.3.3.1
============================================================================
# TOTAL: 11
# PASS:  3
# SKIP:  0
# XFAIL: 0
# FAIL:  8
# XPASS: 0
# ERROR: 0
============================================================================
See ncdap_test/test-suite.log
Please report to support-netcdf@unidata.ucar.edu
============================================================================
make[5]: *** [test-suite.log] Error 1
make[4]: *** [check-TESTS] Error 2
make[3]: *** [check-am] Error 2
make[2]: *** [check-recursive] Error 1
make[1]: *** [check] Error 2
make: *** [check-recursive] Error 1
doutriaux1 commented 9 years ago

@DennisHeimbigner I thought about it, but tried it again from home (no firewall) with no luck. Beside @durack1 was successful inside the lab's firewall. I will keep digging...

durack1 commented 9 years ago

@doutriaux1 @DennisHeimbigner your errors are looking almost identical to what I documented in https://github.com/Unidata/netcdf-c/issues/115#issue-70184260

doutriaux1 commented 9 years ago

Ok I will try the cmake based build then. BUT I recall it installs in different directories depending if we are under mac or Linux, which is why I reverted to configure the first time around. I will let you know.

durack1 commented 9 years ago

@doutriaux1 this has to be an environment thing.. I had no problems with OS X 10.10.4 with a vanilla XCode install and the versions I highlighted above

WardF commented 9 years ago

I agree that it is an environment thing; I've tested on multiple platforms on my end both in the office and at home with no problem. @doutriaux1 , do you use Docker for anything? If so, could you run the following command?

$ docker run --rm -it wardf/nctests:serial

This will download the wardf/nctests image from dockerhub and run it. The running container will then build and test netcdf-c, netcdf-fortran and netcdf-cxx4, and upload the results of the tests to the public Unidata Dashboards found at http://my.cdash.org/index.php?project=netcdf-c, etc.

This would have a couple useful side effects. First, the container is a sandboxed environment; if the tests work, we know the issue must be a local environment issue. If the tests experience the same failure, we know it must be something between you and the data. In either case, the details of the build would be uploaded to the dashboard where Dennis and I could examine them.

If you aren't using docker, I hesitate to ask you to install it simply to debug this, but if you were willing to, I could help guide you through that. On linux it's pretty easy, I believe it's available via most package managers or from http://docker.io.

doutriaux1 commented 9 years ago

yes I'm pretty sure it is environment related, hoping that switching to cmake will clean this up (since we use cmake to call configure)

doutriaux1 commented 9 years ago

@WardF I used docker in the past. Not sure I can get to it today though...

doutriaux1 commented 9 years ago

ok cmake build, I now get seg faults....

doutriaux1@maryam:[~/build]:[10229]> /install/Externals/bin/ncdump http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc
Segmentation fault: 11
doutriaux1@maryam:[~/build]:[10226]> ~/build//install/Externals/bin/nc-config --all

This netCDF 4.4.0-rc1 has been built with the following features: 

  --cc        -> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
  --cflags    -> -I/Users/doutriaux1/build/install/Externals/include
  --libs      -> -L/Users/doutriaux1/build/install/Externals/lib -lnetcdf -lhdf5_hl -lhdf5 -lz -ldl -lm -lcurl

  --has-c++   -> no
  --cxx       -> 
  --has-c++4  -> no
  --cxx4      -> 

  --fc        -> 
  --fflags    -> 
  --flibs     -> 
  --has-f90   -> no

  --has-dap   -> yes
  --has-nc2   -> yes
  --has-nc4   -> yes
  --has-hdf5  -> yes
  --has-hdf4  -> no
  --has-pnetcdf-> no
  --has-szlib -> no

  --prefix    -> /Users/doutriaux1/build/install/Externals
  --includedir-> /Users/doutriaux1/build/install/Externals/include
  --version   -> netCDF 4.4.0-rc1

and ctest gives:

141/160 Test #141: tst_h_dimscales4 .................   Passed    0.01 sec
        Start 142: ncdap_tst_ncdap3
142/160 Test #142: ncdap_tst_ncdap3 .................***Failed    0.34 sec
        Start 143: ncdap_t_dap3a
143/160 Test #143: ncdap_t_dap3a ....................***Exception: SegFault  0.21 sec
        Start 144: ncdap_test_cvt
144/160 Test #144: ncdap_test_cvt ...................***Exception: SegFault  0.26 sec
        Start 145: ncdap_test_vara
145/160 Test #145: ncdap_test_vara ..................***Exception: SegFault  0.27 sec
        Start 146: ncdap_tst_remote3
146/160 Test #146: ncdap_tst_remote3 ................***Failed    9.18 sec
        Start 147: ncdap_tst_formatx
147/160 Test #147: ncdap_tst_formatx ................***Failed    0.70 sec
        Start 148: ncdap_test_partvar
148/160 Test #148: ncdap_test_partvar ...............***Exception: SegFault  0.70 sec
        Start 149: ncdap_testurl
149/160 Test #149: ncdap_testurl ....................   Passed    0.76 sec
        Start 150: ncdap_test_nstride_cached
150/160 Test #150: ncdap_test_nstride_cached ........***Exception: SegFault  0.53 sec
        Start 151: ncdap_t_misc
151/160 Test #151: ncdap_t_misc .....................***Exception: SegFault  0.27 sec
        Start 152: ncdap_test_varm3
152/160 Test #152: ncdap_test_varm3 .................***Exception: SegFault  0.52 sec
        Start 153: C_tests_simple_xy_wr
153/160 Test #153: C_tests_simple_xy_wr .............   Passed    0.01 sec
        Start 154: C_tests_simple_xy_rd
154/160 Test #154: C_tests_simple_xy_rd .............   Passed    0.01 sec
        Start 155: C_tests_sfc_pres_temp_wr
155/160 Test #155: C_tests_sfc_pres_temp_wr .........   Passed    0.02 sec
        Start 156: C_tests_sfc_pres_temp_rd
156/160 Test #156: C_tests_sfc_pres_temp_rd .........   Passed    0.01 sec
        Start 157: C_tests_pres_temp_4D_wr
157/160 Test #157: C_tests_pres_temp_4D_wr ..........   Passed    0.01 sec
        Start 158: C_tests_pres_temp_4D_rd
158/160 Test #158: C_tests_pres_temp_4D_rd ..........   Passed    0.01 sec
        Start 159: cdl_create_sample_files
159/160 Test #159: cdl_create_sample_files ..........   Passed    0.04 sec
        Start 160: cdl_do_comps
160/160 Test #160: cdl_do_comps .....................   Passed    0.01 sec

94% tests passed, 10 tests failed out of 160

Total Test time (real) =  71.09 sec

The following tests FAILED:
    142 - ncdap_tst_ncdap3 (Failed)
    143 - ncdap_t_dap3a (SEGFAULT)
    144 - ncdap_test_cvt (SEGFAULT)
    145 - ncdap_test_vara (SEGFAULT)
    146 - ncdap_tst_remote3 (Failed)
    147 - ncdap_tst_formatx (Failed)
    148 - ncdap_test_partvar (SEGFAULT)
    150 - ncdap_test_nstride_cached (SEGFAULT)
    151 - ncdap_t_misc (SEGFAULT)
    152 - ncdap_test_varm3 (SEGFAULT)
Errors while running CTest
doutriaux1 commented 9 years ago

lldb trace, it might help us pin point

doutriaux1@maryam:[build]:[10587]> lldb  ~/build//install/Externals/bin/ncdump http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc
(lldb) target create "/Users/doutriaux1/build//install/Externals/bin/ncdump"
Current executable set to '/Users/doutriaux1/build//install/Externals/bin/ncdump' (x86_64).
(lldb) settings set -- target.run-args  "http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc"
(lldb) r
Process 45302 launched: '/Users/doutriaux1/build//install/Externals/bin/ncdump' (x86_64)
Process 45302 stopped
* thread #1: tid = 0xebf1, 0x00000001000b09c7 libnetcdf.7.dylib`occurlflagbyname(name=0x0000000100186749) + 327 at occurlflags.c:301, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x2)
    frame #0: 0x00000001000b09c7 libnetcdf.7.dylib`occurlflagbyname(name=0x0000000100186749) + 327 at occurlflags.c:301
   298  
   299      if(nameindices[c] == NULL)
   300      return NULL; /* no possible match */
-> 301      for(f=nameindices[c];f->name;f++) {
   302      int cmp = strcmp(name,f->name);
   303      if(cmp > 0) break; /* We assume sorted */
   304      if(cmp == 0) return f;

trace:

(lldb) bt
* thread #1: tid = 0xebf1, 0x00000001000b09c7 libnetcdf.7.dylib`occurlflagbyname(name=0x0000000100186749) + 327 at occurlflags.c:301, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x2)
  * frame #0: 0x00000001000b09c7 libnetcdf.7.dylib`occurlflagbyname(name=0x0000000100186749) + 327 at occurlflags.c:301
    frame #1: 0x000000010009c6ca libnetcdf.7.dylib`oc_set_curl_options(state=0x0000000104100270) + 330 at occurlfunctions.c:273
    frame #2: 0x000000010009c565 libnetcdf.7.dylib`ocset_flags_perlink(state=0x0000000104100270) + 373 at occurlfunctions.c:234
    frame #3: 0x00000001000a26ec libnetcdf.7.dylib`ocopen(statep=0x00007fff5fbff440, url=0x00000001040044b0) + 380 at ocinternal.c:194
    frame #4: 0x0000000100090190 libnetcdf.7.dylib`oc_open(url=0x00000001040044b0, linkp=0x00000001040041e8) + 64 at oc.c:58
    frame #5: 0x00000001000c4715 libnetcdf.7.dylib`NCD2_open(path=0x0000000104001c30, mode=0, basepe=0, chunksizehintp=0x0000000000000000, useparallel=0, mpidata=0x0000000000000000, dispatch=0x000000010316ed60, drno=0x0000000104001cf0) + 1141 at ncd2dispatch.c:397
    frame #6: 0x00000001000273aa libnetcdf.7.dylib`NC_open(path=0x0000000104001c30, cmode=0, basepe=0, chunksizehintp=0x0000000000000000, useparallel=0, parameters=0x0000000000000000, ncidp=0x00007fff5fbff734) + 922 at dfile.c:1855
    frame #7: 0x0000000100026ffb libnetcdf.7.dylib`nc_open(path=0x0000000104001c30, mode=0, ncidp=0x00007fff5fbff734) + 75 at dfile.c:608
    frame #8: 0x0000000100003481 ncdump`main(argc=1, argv=0x00007fff5fbff7a0) + 1441 at ncdump.c:2156
    frame #9: 0x00007fff968065fd libdyld.dylib`start + 1
    frame #10: 0x00007fff968065fd libdyld.dylib`start + 1
DennisHeimbigner commented 9 years ago

Is there a debugger on mac similar to gdb? If so, can you run it against one of the failing programs to give a stack dump?

WardF commented 9 years ago

You can use gdb or lldb on the Mac. They come as part of the developer command line tools.

Sent from my iPhone

On Jul 10, 2015, at 8:56 PM, DennisHeimbigner notifications@github.com wrote:

Is there a debugger on mac similar to gdb? If so, can you run it against one of the failing programs to give a stack dump?

— Reply to this email directly or view it on GitHub.

doutriaux1 commented 9 years ago

@DennisHeimbigner that's the traceback I posted just above. ldb trace

doutriaux1 commented 9 years ago

Linux traceback with gdb in case you're more familiar with it:

gdb --args ./install/Externals/bin/ncdump -h http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc
GNU gdb (Ubuntu 7.9-1ubuntu1) 7.9
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./install/Externals/bin/ncdump...done.
(gdb) r
Starting program: /home/doutriaux1/build_nc4/install/Externals/bin/ncdump -h http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff4b065d8 in occurlflagbyname (name=0x7ffff4df0ab1 <ocglobalstate+114737> "COOKIEJAR")
    at /home/doutriaux1/build_nc4/build/netcdf/oc2/occurlflags.c:301
301     for(f=nameindices[c];f->name;f++) {

trace:

(gdb) bt
#0  0x00007ffff4b065d8 in occurlflagbyname (name=0x7ffff4df0ab1 <ocglobalstate+114737> "COOKIEJAR")
    at /home/doutriaux1/build_nc4/build/netcdf/oc2/occurlflags.c:301
#1  0x00007ffff4af6b0c in oc_set_curl_options (state=0x65a1d0) at /home/doutriaux1/build_nc4/build/netcdf/oc2/occurlfunctions.c:273
#2  0x00007ffff4af6a00 in ocset_flags_perlink (state=0x65a1d0) at /home/doutriaux1/build_nc4/build/netcdf/oc2/occurlfunctions.c:234
#3  0x00007ffff4afb595 in ocopen (statep=0x7fffffffe380, 
    url=0x636820 "http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc")
    at /home/doutriaux1/build_nc4/build/netcdf/oc2/ocinternal.c:194
#4  0x00007ffff4aedef0 in oc_open (url=0x636820 "http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc", 
    linkp=0x636568) at /home/doutriaux1/build_nc4/build/netcdf/oc2/oc.c:58
#5  0x00007ffff4b1620f in NCD2_open (path=0x6364a0 "http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc", 
    mode=0, basepe=0, chunksizehintp=0x0, useparallel=0, mpidata=0x0, dispatch=0x7ffff4dca7c0 <NCD2_dispatcher>, drno=0x636630)
    at /home/doutriaux1/build_nc4/build/netcdf/libdap2/ncd2dispatch.c:397
#6  0x00007ffff4a99986 in NC_open (path=0x6364a0 "http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc", cmode=0, 
    basepe=0, chunksizehintp=0x0, useparallel=0, parameters=0x0, ncidp=0x7fffffffe550)
    at /home/doutriaux1/build_nc4/build/netcdf/libdispatch/dfile.c:1855
#7  0x00007ffff4a98ba2 in nc_open (path=0x6364a0 "http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc", mode=0, 
    ncidp=0x7fffffffe550) at /home/doutriaux1/build_nc4/build/netcdf/libdispatch/dfile.c:608
#8  0x00000000004095dc in main (argc=1, argv=0x7fffffffe698) at /home/doutriaux1/build_nc4/build/netcdf/ncdump/ncdump.c:2156
doutriaux1 commented 9 years ago

ok I'm printing a few things in here trying to debug this, "c" is 67 coming in there and indicesname is [26] in length. Hence the segfault. Now trying to figure out why c is 67

doutriaux1 commented 9 years ago

declaring a longer indicesname and prinitnig f/f->name etc I get:

/Users/doutriaux1/build/build/install/Externals/bin/ncdump http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc
C: 67
name: COOKIEJAR
nameindices: R??
f: R??
fname: CURLOPT_CAINFO
f: a??
fname: CURLOPT_CAPATH
f: p??
fname: CURLOPT_COOKIEFILE
f: ???
fname: CURLOPT_COOKIEJAR
f: ???
fname: CURLOPT_ENCODING
f: ???
fname: CURLOPT_ERRORBUFFER
f: ???
fname: CURLOPT_FOLLOWLOCATION
f: Ѯ?
fname: CURLOPT_HTTPAUTH
f: ??
fname: CURLOPT_KEYPASSWD
f: ???
fname: CURLOPT_MAXREDIRS
f: ??
fname: CURLOPT_NETRC
f: ??
fname: CURLOPT_NETRC_FILE
f: '??
fname: CURLOPT_PROXY
f: 5??
fname: CURLOPT_PROXYAUTH
f: G??
fname: CURLOPT_PROXYPORT
f: Y??
fname: CURLOPT_PROXYUSERPWD
f: n??
fname: CURLOPT_SSLCERT
f: ~??
fname: CURLOPT_SSLKEY
f: ???
fname: CURLOPT_SSLKEYPASSWD
f: ???
fname: CURLOPT_SSL_VERIFYHOST
f: ???
fname: CURLOPT_SSL_VERIFYPEER
f: Я?
fname: CURLOPT_TIMEOUT
f: ??
fname: CURLOPT_USERAGENT
f: ??
fname: CURLOPT_USERPWD
f: ??
fname: CURLOPT_VERBOSE
f: ??
fname: CURLOPT_USE_SSL
/Users/doutriaux1/build/build/install/Externals/bin/ncdump: http://test.opendap.org/opendap/hyrax/netcdf/examples/ECMWF_ERA-40_subset.nc: NetCDF: I/O failure

kind of back to what I used to get with configure rather than cmake

doutriaux1 commented 9 years ago

in the "initialize" function: https://github.com/Unidata/netcdf-c/blob/master/oc2/occurlflags.c#L253-275 c is p->name[0] which is always "C" which is 67

WardF commented 9 years ago

Hello @doutriaux1 , any progress in nailing down what is happening with this issue? I'm still unable to recreate the issue on my end, but I'd like to figure out how to resolve this for you.

doutriaux1 commented 9 years ago

no luck so far. I'm pretty sure it's not firewall related though because I do get the same error from home.

jbeezley commented 9 years ago

I get a similar issue on rc2 compiling using configure. I posted the log here. It looks like the same issue I have seen since 4.3.3. I'm curious if it has anything to do with the version of curl or ssl installed since that is where the segfault occurs above. I seem to be using the system libcurl FWIW:

 $ otool -L ncdump
ncdump:
    /Users/jbeezley/nctest/lib/libnetcdf.7.dylib (compatibility version 11.0.0, current version 11.0.0)
    /usr/local/lib/libsz.2.dylib (compatibility version 3.0.0, current version 3.0.0)
    /usr/local/lib/libhdf5_hl.9.dylib (compatibility version 10.0.0, current version 10.0.0)
    /usr/local/lib/libhdf5.9.dylib (compatibility version 10.0.0, current version 10.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
    /usr/lib/libcurl.4.dylib (compatibility version 7.0.0, current version 8.0.0)
doutriaux1 commented 9 years ago

@jbeezley I think you're on the right path.

jbeezley commented 9 years ago

Okay, so the issue is related to the existence of a ~\.dodsrc or ~\.daprc file. Some program that I must have run at some point created the .daprc with old or invalid keys CURL.SSL.KEY, CURL.COOKIEJAR, etc. If I change these to HTTP.SSL.KEY, HTTP.COOKIEJAR, ... the tests pass.

dnadeau4 commented 9 years ago

@jbeezley I compiled on Ubuntu 15.04 and had to install libcurl4-openssl-dev to enable DAP support, otherwise the lcurl library is not found.

   sudo apt-get install libcurl4-openssl-dev

As well following the information you found.

I had to comment out all the CURL.XXX in the .dodsrc. This is an netCDF OPeNDAP access with ESG based security. I found a trac system about it here.

http://ndg-security.ceda.ac.uk/browser/trunk/NDGSecurity/C/openDapPatch http://ndg-security.ceda.ac.uk/wiki/netCDF-ESGSecurityExtension

#CURL.COOKIEJAR=.dods_cookies
#CURL.SSL.VALIDATE=1
#CURL.SSL.CERTIFICATE=/home/dnadeau/.esg/credentials.pem
#CURL.SSL.KEY=/home/dnadeau/.esg/credentials.pem
#CURL.SSL.CAPATH=/home/dnadeau/.esg/certificates

Denis

dnadeau4 commented 9 years ago

@doutriaux1 @durack1 @jbeezley How can we fix the ESG credential with netCDF 4.4.0rc1?

WardF commented 9 years ago

I am a bit out of my depth when it comes to OPeNDAP and the .dodsrc file; @DennisHeimbigner will probably have a better idea than I.

DennisHeimbigner commented 9 years ago

Unless you need it for authorization, you should be able to safely delete any .dodsrc/.daprc file. If you need authorization, then you should read this document (docs/auth.md) again, because I fixed some problems with redirection based authorization such as URS.

doutriaux1 commented 9 years ago

@DennisHeimbigner thx. Yes we ABSOLUTELY need authentification for ESGF related things. Will red this new document and get back to you if i have question. In the mean time let me try with my .dodsrc remvoed. @dnadeau4 curl-devel is a required pre-requisite (see: https://github.com/UV-CDAT/uvcdat/wiki/System-Requirements ) also lets make sure we don't create a dodsrc I think we might do it from the GUI side of things.

dnadeau4 commented 9 years ago

Happy we found a thread to follow. This is important, I don’t know much about CURL and SSL authentication. Any expert on this around here?

doutriaux1 commented 9 years ago

@dnadeau4 sure enough we create a dodsrc file: https://github.com/UV-CDAT/VisTrails/blob/uvcdat-master/vistrails/gui/uvcdat/esgf.py#L186-L214

doutriaux1 commented 9 years ago

ok dodsrc seem to be the issue:

doutriaux1@sofia:[~/build]:[6281]> ctest -j8 -R CDMS_Test_multiple_formats
Test project /Users/doutriaux1/build
    Start 26: CDMS_Test_multiple_formats
1/1 Test #26: CDMS_Test_multiple_formats .......   Passed    0.70 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   0.71 sec
doutriaux1@sofia:[~/build]:[6282]> mv /Users/doutriaux1/.dodsrc.old /Users/doutriaux1/.dodsrc
doutriaux1@sofia:[~/build]:[6283]> ctest -j8 -R CDMS_Test_multiple_formats
Test project /Users/doutriaux1/build
    Start 26: CDMS_Test_multiple_formats
1/1 Test #26: CDMS_Test_multiple_formats .......***Failed    0.31 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) =   0.31 sec

The following tests FAILED:
     26 - CDMS_Test_multiple_formats (Failed)
Errors while running CTest
doutriaux1 commented 8 years ago

just as a follow up it works nicely against ESGF auth as well, here's my .dodsrc file for future references

USE_CACHE=0
MAX_CACHE_SIZE=20
MAX_CACHED_OBJ=5
IGNORE_EXPIRES=0
CACHE_ROOT=/home/doutriaux1/.dods_cache/
DEFAULT_EXPIRES=86400
ALWAYS_VALIDATE=0
DEFLATE=0
VALIDATE_SSL=0
HTTP.VERBOSE=1
HTTP.COOKIEJAR=.dods_cookies
HTTP.SSL.VALIDATE=0
HTTP.SSL.CERTIFICATE=/home/doutriaux1/.esg/credentials.pem
HTTP.SSL.KEY=/home/doutriaux1/.esg/credentials.pem
HTTP.SSL.CAPATH=/home/doutriaux1/.esg/certificates