[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Thredds :-\



Hi Ethan,

So, the proper user for thredds would be the tomcat user, "tomcat" (in this case)?
Everything "thredds" and under is owned by "tomcat".  Do I have to also make the group "tomcat" as well?
(that shouldn't matter, right?)

Are there any other salient files to look at.  I will do another install shortly...
Java 1.7
Tomcat 7.0.39
Thredds 4.3.16

Will also set owner and group to tomcat just for completeness.
Will provide report of results...

If you can think of anything in the mean time please let me know.

P.S.
I'd rather have the property set in the file - it makes is explicit and leaves a trail of how things were run.

Thanks.

On 5/21/13 2:39 PM, Ethan Davis wrote:
Hi Gavin,

We are not seeing any problems with this functionality in 4.3.

Rather than edit the tds.properties file directly, we recommend (see
[1]) using symbolic links or setting the property on the command-line
with a "-D" option. For instance:

-Dtds.content.root.path=/esg/content

However, editing tds.properties should work and I suspect that is not
the problem.

The nested stacktrace you include below, in particular this part

Caused by: java.lang.IllegalStateException: Content directory does not
exist and could not be created
  at thredds.server.config.TdsContext.afterPropertiesSet(TdsContext.java:304)
looks like a permission problem. Did the /esg/content/thredds directory
already exist when you started the TDS and got these errors?

Ethan

[1]
http://www.unidata.ucar.edu/projects/THREDDS/tech/tds4.3/reference/ConfigDirectory.html#moveLocation

On 5/21/2013 2:55 PM, Gavin M. Bell wrote:
Hi John and friends...,

Here is exactly what is in that file...

# more *./WEB-INF/classes/thredds/server/tds.properties*

# DO NOT EDIT THIS FILE: It is automatically generated from
C:\dev\tds4.2\tds\src\main\template\thredds\server\tds.properties.TEMPLATE
tds.version=4.2.10
tds.version.brief=4.2
tds.version.builddate=20120417.2151

tds.url="" class="moz-txt-link-freetext" href="http://www.unidata.ucar.edu/projects/THREDDS/tech/TDS.html">http://www.unidata.ucar.edu/projects/THREDDS/tech/TDS.html
tds.documentation.url="" class="moz-txt-link-freetext" href="http://www.unidata.ucar.edu/projects/THREDDS/tech/TDS.html">http://www.unidata.ucar.edu/projects/THREDDS/tech/TDS.html
tds.logo.url=""
tds.logo.alt=TDS

*tds.content.root.path=/esg/content*
tds.content.path=thredds
tds.content.startup.path=WEB-INF/altContent/startup
tds.content.idd.path=WEB-INF/altContent/idd/thredds
tds.content.motherlode.path=WEB-INF/altContent/motherlode/thredds

tds.config.file=threddsConfig.xml

tds.install.url=""


Under /esg/content is: "thredds" which contains:

# ls -l thredds/
total 116
drwxr-xr-x 6 tomcat climate  4096 May 18 15:16 cache
drwxr-xr-x 2 tomcat climate  4096 Dec 13  2011 cacheAged
-rwxr-xr-x 1 tomcat climate  1658 May 20 16:31 catalog.xml
drwxr-xr-x 2 tomcat climate  4096 Aug  1  2012 collectionCache
drwxr-xr-x 2 tomcat climate  4096 Dec 13  2011 ehcache
drwxrwxr-x 3 tomcat climate  4096 Sep  4  2012 *esgcet*
-rwxr-xr-x 1 tomcat climate   715 May 20 16:33 las_tds.xml
-rwxr-xr-x 1 tomcat climate   715 May 18 15:17 las_tds.xml.bak
-rwxr-xr-x 1 tomcat climate   715 Dec 14  2011 las_tds.xml.correct
-rwxr-xr-x 1 tomcat climate   717 May 18  2011 las_tds.xml.tmpl
-rwxr-xr-x 1 tomcat climate   717 Dec 13  2011 las_tds.xml.tmpl.bak
drwxr-xr-x 2 tomcat climate 20480 May 21 12:00 logs
drwxr-xr-x 4 tomcat climate  4096 Dec 13  2011 public
-rwxr-xr-x 1 tomcat climate  7630 May 20 16:33 threddsConfig.xml
-rwxr-xr-x 1 tomcat climate  7157 Jan 10  2011 threddsConfig.xml.bak
-rwxr-xr-x 1 tomcat climate  7630 Dec 14  2011 threddsConfig.xml.correct
-rwxr-xr-x 1 tomcat climate   545 Jan 10  2011 threddsConfig.xml.las
-rwxr-xr-x 1 tomcat climate   545 Dec 13  2011 threddsConfig.xml.las.bak
-rwxr-xr-x 1 tomcat climate  7157 Jan 10  2011 threddsConfig.xml.tmpl
-rwxr-xr-x 1 tomcat climate  7157 Dec 13  2011 threddsConfig.xml.tmpl.bak


This setup allows us to swap out thredds - more practically, *destroy*
the whole tomcat installation *without* *fubar'ing* peoples' hard built
catalogs (under *esgcet*).

Since this location also contains configuration portions that we have
added to allow for LAS interoperability, externalizing this from tomcat
is important to the sanity of the stack.  For the ESGF Node stack... all
"state" is kept under /esg such that everything else is solely mechanics
of transformations. 

/This has worked excellently in v4.2.10/ that we have been shipping with
out stack.  How can we get this same behavior for 4.3?


On 5/21/13 8:53 AM, John Caron wrote:
1) is this the exact property setting:

*tds.content.root.path=/esg/content*

what do the * mean?

2) any chance tomcat doesnt have write permission in that directory?

3) we are double checking how this is supposed to work

On 5/21/2013 2:10 AM, Gavin M. Bell wrote:
Hi, John,

So this is an excerpt from the tomcat's catalina.out

I believe that the issue may be because we move the content directory
out from under thredds and put it elsewhere.
We were able to do this successfully with 4.2.10 by modifying
the*tds.properties* file to have the entry
"*tds.content.root.path=/esg/content*".

So I guess the question is what has changed such that this is scenario
is no longer valid?
It smells like there may be some Spring things happening that assume
something about the location of things.

The idea is that we want to disassociate the location of the content
from the installation.
ESGF writes it's catalogs in a directory called esgcet this lives under
the thredds' content directory.

*/esg/content/thredds*
root@esgf-node1:[thredds]:[1158]> ls -l
total 164
drwxr-xr-x 4 tomcat tomcat 4096 Apr 30 02:27 cache
drwxr-xr-x 2 tomcat tomcat 4096 Apr  7  2011 cacheAged
-rwxr-xr-x 1 tomcat tomcat 1661 Apr 30 02:27 catalog.xml
drwxr-xr-x 2 tomcat tomcat 4096 Apr 29 23:19 collectionCache
drwxr-xr-x 2 tomcat tomcat 4096 Apr  7  2011 ehcache
-rwxr-xr-x 1 tomcat tomcat 3173 Apr  7  2011 enhancedCatalog.xml
*drwxr-xr-x 3 tomcat tomcat 4096 Apr  7  2011 esgcet*
-rwxr-xr-x 1 tomcat tomcat  715 Apr 30 02:30 las_tds.xml
-rwxr-xr-x 1 tomcat tomcat  715 Apr 30 01:38 las_tds.xml.bak
-rwxr-xr-x 1 tomcat tomcat  717 May 18  2011 las_tds.xml.tmpl
-rwxr-xr-x 1 tomcat tomcat  705 Jul  7  2011 las_tds.xml.tmpl.bak
drwxr-xr-x 2 tomcat tomcat 4096 May 20 23:00 logs
drwxr-xr-x 4 tomcat tomcat 4096 Apr  7  2011 public
drwxr-xr-x 2 tomcat tomcat 4096 Apr  7  2011 root
-rwxr-xr-x 1 tomcat tomcat 7630 Apr 30 02:30 threddsConfig.xml
-rwxr-xr-x 1 tomcat tomcat 7157 Jan 10  2011 threddsConfig.xml.bak
-rwxr-xr-x 1 tomcat tomcat  545 Jan 10  2011 threddsConfig.xml.las
-rwxr-xr-x 1 tomcat tomcat 7157 Jan 10  2011 threddsConfig.xml.tmpl
-rwxr-xr-x 1 tomcat tomcat 3765 Apr  7  2011 wmsConfig.xml


(catalina.out output)

Caused by: org.springframework.beans.factory.BeanCreationException:
Could not autowire field: private thredds.server.config.TdsContext
thredds.servlet.HtmlWriter.tdsContext; nested exception\
  is org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'tdsContext' defined in file
[/usr/local/apache-tomcat-6.0.36/webapps/thredds/WEB-INF/classes/thred\
ds/server/config/TdsContext.class]: Invocation of init method failed;
nested exception is java.lang.IllegalStateException: Content directory
does not exist and could not be created
         at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:506)


         at
org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)


         at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)


         ... 29
more                                                                                                                                                                    
&
nbsp;
Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'tdsContext' defined in file
[/usr/local/apache-tomcat-6.0.36/webapps/thredds/WEB-INF/classe\
s/thredds/server/config/TdsContext.class]: Invocation of init method
failed; nested exception is java.lang.IllegalStateException: Content
directory does not exist and could not be created
         at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)


         at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)


         at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)


         at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)


         at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)


         at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)


         at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)


         at
org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:848)


         at
org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:790)


         at
org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707)


         at
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:478)


         ... 31
more                                                                                                                                                                    
&
nbsp;
Caused by: java.lang.IllegalStateException: Content directory does not
exist and could not be created
         at
thredds.server.config.TdsContext.afterPropertiesSet(TdsContext.java:304)
         at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)


         at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)


         ... 41 more

-- 
Gavin M. Bell
-- 

  "Never mistake a clear view for a short distance."
                   -Paul Saffo

-- 
Senior Computer Scientist / Mathematics Programmer
Gavin M. Bell
Lawrence Livermore National Labs
--

 "Never mistake a clear view for a short distance."
       	       -Paul Saffo

(GPG Key - http://rainbow.llnl.gov/dist/keys/gavin.asc)

 A796 CE39 9C31 68A4 52A7  1F6B 66B7 B250 21D5 6D3E


    

-- 
Senior Computer Scientist / Mathematics Programmer
Gavin M. Bell
Lawrence Livermore National Labs
--

 "Never mistake a clear view for a short distance."
       	       -Paul Saffo

(GPG Key - http://rainbow.llnl.gov/dist/keys/gavin.asc)

 A796 CE39 9C31 68A4 52A7  1F6B 66B7 B250 21D5 6D3E