Re: [thredds] NetCDF Access failure with matlab and python



On 18/1/19 18:59, Sean Arms wrote:
Let me bring in our Tomcat wrangler, Jen. I thought mod_jk used AJP?

Yes, and in fact different Connector in Tomcat.

Antonio

On Fri, Jan 18, 2019 at 10:48 AM Nathan Potter <ndp@xxxxxxxxxxx <mailto:ndp@xxxxxxxxxxx>> wrote:

    Sean,

    Interesting.

    I thought that mod_jk had been abandoned/superseded for/by the
    Apache JServ Protocol (AJP) protocol with the introduction of
    Apache 2.x


    N


    > On Jan 18, 2019, at 9:21 AM, Sean Arms <sarms@xxxxxxxx
    <mailto:sarms@xxxxxxxx>> wrote:
    >
    > Hi Nathan, all,
    >
    > netCDF-Java does proper encoding as of 4.6.12 and 5.0.0-beta6
    (runtime configurable), and in the past it encoded as well - there
    was a period of time in the 4.5 and 4.6 line of development in
    which the encoding was skipped, but that's no longer the case.
    >
    > Interestingly enough, if you run Apache with mod_jk, non-encoded
    urls will be accepted and passed along to tomcat in a usable form
    without issue, but I have no idea how long that will last.
    >
    > Sean
    >
    > On Thu, Jan 17, 2019 at 4:25 PM Nathan Potter <ndp@xxxxxxxxxxx
    <mailto:ndp@xxxxxxxxxxx>> wrote:
    > Hi Thomas,
    >
    > I believe that I worked with Robert Schmunk (the author of
    Panoply) on this very problem and I think the reason he is using
    netcdfAll-5.0.0-SNAPSHOT is that it solves the outgoing encoding
    issue on the client side. Is that right Robert? (We may not hear
    back from him as I suspect he's furloughed and unavailable a.t.m.)
    >
    > If the client cannot be cajoled into producing the correct URL
    encoding then I think the work falls back to relaxing the server's
    relaxedQueryChars configuration.
    >
    > Which is certainly less than ideal.
    >
    > And to end on a cheery note - once the netcdf-java library is
    release it can take some time (up to a year) before it gets rolled
    into a Matlab release.
    >
    > Sorry I can't be more helpful.
    >
    >
    > Sincerely,
    >
    > Nathan
    >
    >
    > > On Jan 17, 2019, at 1:39 PM, Thomas Cook <tmcook@xxxxxxxx
    <mailto:tmcook@xxxxxxxx>> wrote:
    > >
    > > OK Given Nathan and Christian's comments, I'm focussing my
    > > troubleshooting on client side.
    > > What I've learned
    > > 1) Matlab's native netCDF toolbox depends on netCDF 4.3.3.1. I
    > > couldn't find an easy way to update the netCDF version inside my
    > > Matlab install.
    > > 2) I updated the netcdf4-python module to use netCDF 4.6.12.
    This did
    > > not solve the issue.
    > > 3) Panoply (which works) is using netcdfAll-5.0.0-SNAPSHOT. I
    couldn't
    > > find an older version to download, nor was I able to run
    panoply with
    > > an older netcdfAll.jar
    > > 4) Another user has reported success using the SNTOOLS/MEXNC
    package
    > > to read the files. This also uses a version of netcdfAll.jar
    for its
    > > decoding. I can't verify this yet.
    > >
    > > So not sure there's much more I can do with on the client
    side. I'll
    > > mess with the Dockerfile like Christian suggested, and try
    using some
    > > non FMRC collections to test with the clients. If anyone has any
    > > ideas, I'm open!
    > > Thanks to all who have replied and I'll update if I make any
    headway.
    > > Tom
    > >
    > > On Thu, Jan 17, 2019 at 5:53 AM Nathan Potter <ndp@xxxxxxxxxxx
    <mailto:ndp@xxxxxxxxxxx>> wrote:
    > >>
    > >>
    > >>
    > >>> On Jan 17, 2019, at 5:37 AM, Christian Skarby
    <christians@xxxxxx <mailto:christians@xxxxxx>> wrote:
    > >>>
    > >>> For what it's worth; from what I've seen encoding errors
    would result in a reject from tomcat before the request is passed
    to the TDS application, and it would then probably not show up in
    the threddsServlet.log.
    > >>
    > >> This is the behavior that we have seen.
    > >>
    > >> Tomcat's rejection is an empty document and response headers ala:
    > >>
    > >> HTTP/1.1 400 Bad Request
    > >> Server: Apache-Coyote/1.1
    > >> Transfer-Encoding: chunked
    > >> Date: Thu, 17 Jan 2019 13:47:48 GMT
    > >> Connection: close
    > >>
    > >>>
    > >>> Perhaphs Tom, you could try to just change the application
    code in your docker image (extract war or extracted thredds
    servlet from one version and then inject it in the other). I guess
    this should be possible, although I have not looked into the
    official docker images for thredds. If you make this fly it would
    be possible to say if it is the servlet or the other libraries in
    the docker image that causes you problems.
    > >>>
    > >>> Regarding the possible encoding errors: Tomcat introduced
    the more strict behavior in v9.0.8 (and also v8.5.31, v8.0.52 and
    v7.0.87).
    > >>>
    > >>> See the corresponding tomcat changelogs:
    > >>>      •  62273: Implement configuration options to
    work-around specification non-compliant user agents (including all
    the major browsers) that do not correctly %nn encode URI paths and
    query strings as required by RFC 7230 and RFC 3986. (markt)
    > >>> See this thread in the google group for opendap.org
    <http://opendap.org>:
    > >>>
    
https://groups.google.com/a/opendap.org/forum/#!msg/support/ixTqhDXoLZQ/IT0lvZQ7CAAJ
    > >>>
    > >>> Tomcat-documentation:
    > >>> https://tomcat.apache.org/tomcat-9.0-doc/config/http.html
    > >>>
    > >>> relaxedPathChars
    > >>> The HTTP/1.1 specification requires that certain characters
    are %nn encoded when used in URI paths. Unfortunately, many user
    agents including all the major browsers are not compliant with
    this specification and use these characters in unencoded form. To
    prevent Tomcat rejecting such requests, this attribute may be used
    to specify the additional characters to allow. If not specified,
    no addtional characters will be allowed. The value may be any
    combination of the following characters: " < > [ \ ] ^ ` { | } .
    Any other characters present in the value will be ignored.
    > >>>
    > >>> relaxedQueryChars
    > >>> The HTTP/1.1 specification requires that certain characters
    are %nn encoded when used in URI query strings. Unfortunately,
    many user agents including all the major browsers are not
    compliant with this specification and use these characters in
    unencoded form. To prevent Tomcat rejecting such requests, this
    attribute may be used to specify the additional characters to
    allow. If not specified, no addtional characters will be allowed.
    The value may be any combination of the following characters: " <
    > [ \ ] ^ ` { | } . Any other characters present in the value will
    be ignored.
    > >>>
    > >>>
    > >>> As the OPeNDAP spesification (see section 6.1.1.2 on page
    22) requires the use of [ and ] in the query string, and several
    clients doesn't quote these characters, we need to tweak the
    relaxedQueryChars configuration for tomcat.
    > >>
    > >> For completeness I will add that the DAP protocol also
    utilizes the  < and > characters for formulating relational
    constraints, however these are limited to constraining Sequence
    data types. I don't know that the TDS supports this data type so
    they may not be required in the relaxedQueryChars list.
    > >>
    > >>
    > >>> Regards,
    > >>> Christian Skarby
    > >>>
    > >>> Den tor. 17. jan. 2019 kl. 05:42 skrev Thomas Cook
    <tmcook@xxxxxxxx <mailto:tmcook@xxxxxxxx>>:
    > >>> I do not know how to debug the matlab or python clients, but
    this is
    > >>> what shows up in the threddsServlet.log
    > >>>
    > >>> Request: "GET
    
/thredds/dodsC/HFR/USWC/6km/hourly/RTV/HFRADAR_US_West_Coast_6km_Resolution_Hourly_RTV_best.ncd.dods?lat,lon,site%5flat,site%5flon,site%5fcode,site%5fnetCode,procParams
    > >>> HTTP/1.0"
    > >>>
    > >>> Thanks
    > >>> Tom
    > >>>
    > >>> On Wed, Jan 16, 2019 at 7:47 PM Dennis Heimbigner
    <dmh@xxxxxxxx <mailto:dmh@xxxxxxxx>> wrote:
    > >>>>
    > >>>> Is there anyway you can see the exact URL being sent to the
    server?
    > >>>>
    > >>>> On 1/16/2019 8:24 PM, Thomas Cook wrote:
    > >>>>> Thanks Sean.
    > >>>>> The server is http://hfrnet-tds.ucsd.edu/thredds (although
    I just
    > >>>>> downgraded back to 4.6.12-SNAPSHOT). I will see about
    making my test
    > >>>>> server accessible to you, but that will take a little time to
    > >>>>> configure on my end.
    > >>>>> Let me know if you think I should open an issue on the
    github page and
    > >>>>> move the discussion there.
    > >>>>> Tom
    > >>>>>
    > >>>>> On Wed, Jan 16, 2019 at 6:32 PM Sean Arms <sarms@xxxxxxxx
    <mailto:sarms@xxxxxxxx>> wrote:
    > >>>>>> Hi Tom,
    > >>>>>>
    > >>>>>> So you are hitting up an opendap endpoint using all three
    libraries / tools (python, matlab, and panoply)? Is this
    particular server publicly accessible?
    > >>>>>>
    > >>>>>> I have a bad feeling that this is due to URL encoding (or
    lack thereof) on the client side and changes made in tomcat 8.5,
    which it looks like the thredds-docker repository bumped up to
    with the 4.6.12 release.
    > >>>>>>
    > >>>>>> Cheers,
    > >>>>>>
    > >>>>>> Sean
    > >>>>>>
    > >>>>>>
    > >>>>>> On Wed, Jan 16, 2019 at 7:06 PM Thomas Cook
    <tmcook@xxxxxxxx <mailto:tmcook@xxxxxxxx>> wrote:
    > >>>>>>> HI I just wanted to add some details.
    > >>>>>>>
    > >>>>>>> The functionality works when I downgraded to the docker
    container
    > >>>>>>> 4.6.12-SNAPSHOT
    > >>>>>>>
    > >>>>>>> My data is part of a FMRC collection.
    > >>>>>>>
    > >>>>>>> Thanks,
    > >>>>>>> Tom
    > >>>>>>>
    > >>>>>>> On Wed, Jan 16, 2019 at 4:51 PM Thomas Cook
    <tmcook@xxxxxxxx <mailto:tmcook@xxxxxxxx>> wrote:
    > >>>>>>>> HI
    > >>>>>>>> I just yesterday updated my thredds-docker to 4.6.12 from
    > >>>>>>>> 4.6.12-snapshot. It seems to be running fine, except
    I'm getting
    > >>>>>>>> errors using matlab ncread and python netcdf4.dataset.
    When I try to
    > >>>>>>>> access any of the multi-dimensional (time, lat, lon)
    variables I get
    > >>>>>>>> the following errors
    > >>>>>>>> with matlab:
    > >>>>>>>> Error using netcdflib
    > >>>>>>>> The NetCDF library encountered an error during execution of
    > >>>>>>>> 'getVarsShort' function - 'Access failure (-77)'.
    > >>>>>>>>
    > >>>>>>>> Error in netcdf.getVar (line 136)
    > >>>>>>>>     data = netcdflib(funcstr,ncid,varid,varargin{:});
    > >>>>>>>>
    > >>>>>>>> Error in internal.matlab.imagesci.nc/read
    <http://internal.matlab.imagesci.nc/read> (line 635)
    > >>>>>>>>                 data  = netcdf.getVar(gid, varid, ...
    > >>>>>>>>
    > >>>>>>>> Error in ncread (line 58)
    > >>>>>>>> vardata = ncObj.read(varName, varargin{:});
    > >>>>>>>>
    > >>>>>>>> Error in readUVfromTDS (line 56)
    > >>>>>>>> u=ncread(url, 'u_mean', [1 1 1], [2 2 2]);
    > >>>>>>>>
    > >>>>>>>>
    > >>>>>>>> and with python:
    > >>>>>>>> netCDF4/_netCDF4.pyx in
    netCDF4._netCDF4.Variable.__getitem__()
    > >>>>>>>>
    > >>>>>>>> netCDF4/_netCDF4.pyx in netCDF4._netCDF4.Variable._get()
    > >>>>>>>>
    > >>>>>>>> netCDF4/_netCDF4.pyx in
    netCDF4._netCDF4._ensure_nc_success()
    > >>>>>>>>
    > >>>>>>>> RuntimeError: NetCDF: Access failure
    > >>>>>>>>
    > >>>>>>>> I know that the latest docker contains netcdf 4.6,
    where as the
    > >>>>>>>> snapshot had 4.4. Could it be a version problem with
    the netCD4 python
    > >>>>>>>> and matlab libraries? I should be running the latest
    netcdf python
    > >>>>>>>> version and not too far behind with matlab versions.
    > >>>>>>>>
    > >>>>>>>> The weird things are that the index variables are
    accessible (time,
    > >>>>>>>> lat, lon etc),  and the multiple-dimension data is
    accessible just
    > >>>>>>>> fine using the OpenDap web interface and Panoply. So
    I'm a little
    > >>>>>>>> confused. I'm addressing this list since I think there
    might be some
    > >>>>>>>> matlab and python expertise here and I think there were
    some messages
    > >>>>>>>> about the Access failure error in the past.
    > >>>>>>>>
    > >>>>>>>> Thanks,
    > >>>>>>>> Tom
    > >>>>>>> _______________________________________________
    > >>>>>>> NOTE: All exchanges posted to Unidata maintained email
    lists are
    > >>>>>>> recorded in the Unidata inquiry tracking system and made
    publicly
    > >>>>>>> available through the web. Users who post to any of the
    lists we
    > >>>>>>> maintain are reminded to remove any personal information
    that they
    > >>>>>>> do not want to be made public.
    > >>>>>>>
    > >>>>>>>
    > >>>>>>> thredds mailing list
    > >>>>>>> thredds@xxxxxxxxxxxxxxxx <mailto:thredds@xxxxxxxxxxxxxxxx>
    > >>>>>>> For list information or to unsubscribe,  visit:
    http://www.unidata.ucar.edu/mailing_lists/
    > >>>>> _______________________________________________
    > >>>>> NOTE: All exchanges posted to Unidata maintained email
    lists are
    > >>>>> recorded in the Unidata inquiry tracking system and made
    publicly
    > >>>>> available through the web.  Users who post to any of the
    lists we
    > >>>>> maintain are reminded to remove any personal information
    that they
    > >>>>> do not want to be made public.
    > >>>>>
    > >>>>>
    > >>>>> thredds mailing list
    > >>>>> thredds@xxxxxxxxxxxxxxxx <mailto:thredds@xxxxxxxxxxxxxxxx>
    > >>>>> For list information or to unsubscribe,  visit:
    http://www.unidata.ucar.edu/mailing_lists/
    > >>>>
    > >>>> _______________________________________________
    > >>>> NOTE: All exchanges posted to Unidata maintained email
    lists are
    > >>>> recorded in the Unidata inquiry tracking system and made
    publicly
    > >>>> available through the web.  Users who post to any of the
    lists we
    > >>>> maintain are reminded to remove any personal information
    that they
    > >>>> do not want to be made public.
    > >>>>
    > >>>>
    > >>>> thredds mailing list
    > >>>> thredds@xxxxxxxxxxxxxxxx <mailto:thredds@xxxxxxxxxxxxxxxx>
    > >>>> For list information or to unsubscribe, visit:
    http://www.unidata.ucar.edu/mailing_lists/
    > >>>
    > >>> _______________________________________________
    > >>> NOTE: All exchanges posted to Unidata maintained email lists are
    > >>> recorded in the Unidata inquiry tracking system and made
    publicly
    > >>> available through the web.  Users who post to any of the
    lists we
    > >>> maintain are reminded to remove any personal information
    that they
    > >>> do not want to be made public.
    > >>>
    > >>>
    > >>> thredds mailing list
    > >>> thredds@xxxxxxxxxxxxxxxx <mailto:thredds@xxxxxxxxxxxxxxxx>
    > >>> For list information or to unsubscribe, visit:
    http://www.unidata.ucar.edu/mailing_lists/
    > >>> _______________________________________________
    > >>> NOTE: All exchanges posted to Unidata maintained email lists are
    > >>> recorded in the Unidata inquiry tracking system and made
    publicly
    > >>> available through the web.  Users who post to any of the
    lists we
    > >>> maintain are reminded to remove any personal information
    that they
    > >>> do not want to be made public.
    > >>>
    > >>>
    > >>> thredds mailing list
    > >>> thredds@xxxxxxxxxxxxxxxx <mailto:thredds@xxxxxxxxxxxxxxxx>
    > >>> For list information or to unsubscribe, visit:
    http://www.unidata.ucar.edu/mailing_lists/
    > >>
    > >> = = =
    > >> Nathan Potter                        ndp at opendap.org
    <http://opendap.org>
    > >> OPeNDAP, Inc. +1.541.231.3317
    > >>
    >
    > = = =
    > Nathan Potter                        ndp at opendap.org
    <http://opendap.org>
    > OPeNDAP, Inc.                        +1.541.231.3317
    >
    > _______________________________________________
    > NOTE: All exchanges posted to Unidata maintained email lists are
    > recorded in the Unidata inquiry tracking system and made publicly
    > available through the web.  Users who post to any of the lists we
    > maintain are reminded to remove any personal information that they
    > do not want to be made public.
    >
    >
    > thredds mailing list
    > thredds@xxxxxxxxxxxxxxxx <mailto:thredds@xxxxxxxxxxxxxxxx>
    > For list information or to unsubscribe,  visit:
    http://www.unidata.ucar.edu/mailing_lists/

    = = =
    Nathan Potter                        ndp at opendap.org
    <http://opendap.org>
    OPeNDAP, Inc.                        +1.541.231.3317


_______________________________________________
NOTE: All exchanges posted to Unidata maintained email lists are
recorded in the Unidata inquiry tracking system and made publicly
available through the web.  Users who post to any of the lists we
maintain are reminded to remove any personal information that they
do not want to be made public.


thredds mailing list
thredds@xxxxxxxxxxxxxxxx
For list information or to unsubscribe,  visit: 
http://www.unidata.ucar.edu/mailing_lists/
  • 2019 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the thredds archives: