[Building Sakai] Problems starting an upgraded 2.8 to 2.9.x instance

Matthew Jones matthew at longsight.com
Tue Apr 23 09:19:35 PDT 2013


Well both solutions can potentially work together, rSmart clients and
Michigan were already using SAK-13776 in production (and breaking without
it if they had the property set) and it was the simplest of the 2 to
commit. We needed an easy way to turn off quartz, and this is actually
easier than figuring out the names of all servers in a cluster.
They effectively have the same result, and both of them have been sitting
out there essentially unfixed for 3-5 years.

John Bush added a comment - 16-Jun-2008 17:03 - edited
Here's a patch that will do it, and then you just add this to the local
properties to turn it off on the other boxes:

<https://jira.sakaiproject.org/secure/DeleteComment!default.jspa?id=27476&commentId=93896>
Chris Maurer added a comment - 23-Feb-2010 07:47
I could probably submit a patch for this. We implemented something for this
at IU.

I'm not particularly biased toward either of them, it was just much simpler
to review and commit SAK-13776 and that was the problem here. Someone else
can go ahead with SAK-23415. Though it should be created a new jira rather
than patches against SAK-23415 as it doesn't solve the problem described in
SAK-23415, I'd talked to Neal about this already.


On Tue, Apr 23, 2013 at 12:07 PM, Maurer, Christopher Wayne <
chmaurer at iupui.edu> wrote:

>  I'm a little biased, but I don't think that this is the solution that we
> should have adopted, especially with no discussion.  I like (obviously)
> what we did in https://jira.sakaiproject.org/browse/SAK-23415 because it
> has better configurability for a cluster.  Let's consider both issues and
> come up with a real solution here.
>
>  Chris
>
>   From: Neal Caidin <nealcaidin at sakaifoundation.org>
> Date: Tuesday, April 23, 2013 12:02 PM
> To: Matthew Jones <matthew at longsight.com>
> Cc: "Kusnetz, Jeremy" <JKusnetz at apus.edu>, sakai-dev <
> sakai-dev at collab.sakaiproject.org>
>
> Subject: Re: [Building Sakai] Problems starting an upgraded 2.8 to 2.9.x
> instance
>
>   This sounds like it belongs in the release notes?
>
>  https://jira.sakaiproject.org/browse/SAK-13776
>
>  Thanks,
> Neal
>
>   On Apr 23, 2013, at 11:07 AM, Matthew Jones <matthew at longsight.com>
> wrote:
>
>  Yea, you'd need to branch jobscheduler 2.9.x, merge this patch from
> trunk and build it custom. The *easiest* way to do that is if your school
> is in msub already, but you have to be a Sakai Foundation/Apereo member or
> supported by a Sakai Commercial Affiliate for that to happen. (Not sure if
> you are or not) It's probably possible to do this locally or through github
> as well
>
>
> On Tue, Apr 23, 2013 at 11:02 AM, Kusnetz, Jeremy <JKusnetz at apus.edu>wrote:
>
>>  That’s the problem, thanks.  This was an rSmart CLE where I guess that
>> was added.****
>>
>> ** **
>>
>> I think the purpose was to designate one node in the cluster to run
>> Quartz jobs, so it could run on a predictable node and I guess not clobber
>> each other running the same job?****
>>
>> ** **
>>
>> Is there a way to do that in the community version?****
>>
>> ** **
>>
>> I guess we can look into https://jira.sakaiproject.org/browse/SAK-13776**
>> **
>>
>> ** **
>>
>> *From:*sakai-dev-bounces at collab.sakaiproject.org [mailto:
>> sakai-dev-bounces at collab.sakaiproject.org] *On Behalf Of *David Adams
>> *Sent:* Tuesday, April 23, 2013 10:55 AM
>> *To:* Kusnetz, Jeremy
>> *Cc:* sakai-dev
>> *Subject:* Re: [Building Sakai] Problems starting an upgraded 2.8 to
>> 2.9.x instance****
>>
>> ** **
>>
>> Looks like the problem is this bit:****
>>
>> NotWritablePropertyException: Invalid property 'startScheduler' of bean
>> class [org.sakaiproject.component.app.scheduler.SchedulerManagerImpl]: Bean
>> property 'startScheduler' is not writable or has an invalid setter method.
>> ****
>>
>> ** **
>>
>> Looks like the file to check out
>> is /SAKAI/apus/tomcat_servers/servers/apache-tomcat-7.0.35-community-2.9.x-200/components/scheduler-component/WEB-INF/components.xml
>> ****
>>
>> ** **
>>
>> I don't see the property startScheduler in that file in our 2.8 or 2.9
>> code, so perhaps that was something your team added to 2.8? There'd have to
>> be a setStartScheduler method in the SchedulerManagerImpl class for that to
>> work.****
>>
>>
>> ****
>>
>> David Adams****
>>
>> Director, Systems Integration and Support****
>>
>> Virginia Tech Learning Technologies****
>>
>> ** **
>>
>> On Tue, Apr 23, 2013 at 9:47 AM, Kusnetz, Jeremy <JKusnetz at apus.edu>
>> wrote:****
>>
>> We have had success bringing up multiple converted 2.8 to 2.9 instances,
>> but one of our is giving us the following errors.****
>>
>>  ****
>>
>> I went ahead blew away all of our QRTZ tables and imported with a working
>> 2.9 instance that didn’t have any jobs defined.  That hasn’t helped get
>> past this error.****
>>
>>  ****
>>
>> 2013-04-23 10:43:45,079  INFO localhost-startStop-1
>> org.sakaiproject.user.impl.PrecachingDbUserService - User precache not
>> scheduled for startup run****
>>
>> 2013-04-23 10:43:45,079  INFO localhost-startStop-1
>> org.sakaiproject.user.impl.PrecachingDbUserService - User precache not
>> scheduled for daily run****
>>
>> 2013-04-23 10:43:45,080  INFO localhost-startStop-1
>> org.sakaiproject.accountvalidator.logic.impl.ValidationLogicImpl - init()
>> ****
>>
>> 2013-04-23 10:43:45,287 ERROR localhost-startStop-1
>> org.sakaiproject.util.NoisierDefaultListableBeanFactory - Failed to
>> preinstantiate the singleton named
>> org.sakaiproject.api.app.scheduler.JobBeanWrapper.validateJob. Destroying
>> all Spring beans.****
>>
>> org.springframework.beans.factory.BeanCreationException: Error creating
>> bean with name
>> 'org.sakaiproject.api.app.scheduler.JobBeanWrapper.validateJob' defined in
>> file
>> [/SAKAI/apus/tomcat_servers/servers/apache-tomcat-7.0.35-community-2.9.x-200/components/accountvalidator-pack/WEB-INF/components.xml]:
>> Cannot resolve reference to bean
>> 'org.sakaiproject.api.app.scheduler.SchedulerManager' while setting bean
>> property 'schedulerManager'; nested exception is
>> org.springframework.beans.factory.BeanCreationException: Error creating
>> bean with name 'org.sakaiproject.api.app.scheduler.SchedulerManager'
>> defined in file
>> [/SAKAI/apus/tomcat_servers/servers/apache-tomcat-7.0.35-community-2.9.x-200/components/scheduler-component/WEB-INF/components.xml]:
>> Error setting property values; nested exception is
>> org.springframework.beans.NotWritablePropertyException: Invalid property
>> 'startScheduler' of bean class
>> [org.sakaiproject.component.app.scheduler.SchedulerManagerImpl]: Bean
>> property 'startScheduler' is not writable or has an invalid setter method.
>> Does the parameter type of the setter match the return type of the getter?
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
>> ****
>>
>>                 at java.security.AccessController.doPrivileged(Native
>> Method)****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
>> ****
>>
>>                 at
>> org.sakaiproject.util.NoisierDefaultListableBeanFactory.getBean(NoisierDefaultListableBeanFactory.java:112)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
>> ****
>>
>>                 at
>> org.sakaiproject.util.NoisierDefaultListableBeanFactory.preInstantiateSingletons(NoisierDefaultListableBeanFactory.java:73)
>> ****
>>
>>                 at
>> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
>> ****
>>
>>                 at
>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
>> ****
>>
>>                 at
>> org.sakaiproject.component.impl.SpringCompMgr.init(SpringCompMgr.java:160)
>> ****
>>
>>                 at
>> org.sakaiproject.component.cover.ComponentManager.getInstance(ComponentManager.java:98)
>> ****
>>
>>                 at
>> org.sakaiproject.component.cover.ComponentManager.get(ComponentManager.java:107)
>> ****
>>
>>                 at
>> org.sakaiproject.component.cover.ServerConfigurationService.getInstance(ServerConfigurationService.java:52)
>> ****
>>
>>                 at
>> org.sakaiproject.component.cover.ServerConfigurationService.getSakaiHomePath(ServerConfigurationService.java:173)
>> ****
>>
>>                 at
>> org.sakaiproject.util.ToolListener.contextInitialized(ToolListener.java:66)
>> ****
>>
>>                 at
>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797)
>> ****
>>
>>                 at
>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291)
>> ****
>>
>>                 at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)****
>>
>>                 at
>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
>> ****
>>
>>                 at
>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)**
>> **
>>
>>                 at
>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)****
>>
>>                 at
>> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)****
>>
>>                 at
>> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
>> ****
>>
>>                 at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)**
>> **
>>
>>                 at
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)****
>>
>>                 at
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)****
>>
>>                 at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>> ****
>>
>>                 at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>> ****
>>
>>                 at java.lang.Thread.run(Thread.java:662)****
>>
>> Caused by: org.springframework.beans.factory.BeanCreationException: Error
>> creating bean with name
>> 'org.sakaiproject.api.app.scheduler.SchedulerManager' defined in file
>> [/SAKAI/apus/tomcat_servers/servers/apache-tomcat-7.0.35-community-2.9.x-200/components/scheduler-component/WEB-INF/components.xml]:
>> Error setting property values; nested exception is
>> org.springframework.beans.NotWritablePropertyException: Invalid property
>> 'startScheduler' of bean class
>> [org.sakaiproject.component.app.scheduler.SchedulerManagerImpl]: Bean
>> property 'startScheduler' is not writable or has an invalid setter method.
>> Does the parameter type of the setter match the return type of the getter?
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1279)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
>> ****
>>
>>                 at java.security.AccessController.doPrivileged(Native
>> Method)****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
>> ****
>>
>>                 at
>> org.sakaiproject.util.NoisierDefaultListableBeanFactory.getBean(NoisierDefaultListableBeanFactory.java:112)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:269)
>> ****
>>
>>                 ... 36 more****
>>
>> Caused by: org.springframework.beans.NotWritablePropertyException:
>> Invalid property 'startScheduler' of bean class
>> [org.sakaiproject.component.app.scheduler.SchedulerManagerImpl]: Bean
>> property 'startScheduler' is not writable or has an invalid setter method.
>> Does the parameter type of the setter match the return type of the getter?
>> ****
>>
>>                 at
>> org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:801)
>> ****
>>
>>                 at
>> org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:651)
>> ****
>>
>>                 at
>> org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78)
>> ****
>>
>>                 at
>> org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:59)
>> ****
>>
>>                 at
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1276)
>> ****
>>
>>                 ... 48 more****
>>
>> java.lang.Exception: traceback****
>>
>>                 at
>> org.sakaiproject.util.NoisierDefaultListableBeanFactory.destroySingletons(NoisierDefaultListableBeanFactory.java:94)
>> ****
>>
>>                 at
>> org.sakaiproject.util.NoisierDefaultListableBeanFactory.preInstantiateSingletons(NoisierDefaultListableBeanFactory.java:83)
>> ****
>>
>>                 at
>> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
>> ****
>>
>>                 at
>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
>> ****
>>
>>                 at
>> org.sakaiproject.component.impl.SpringCompMgr.init(SpringCompMgr.java:160)
>> ****
>>
>>                 at
>> org.sakaiproject.component.cover.ComponentManager.getInstance(ComponentManager.java:98)
>> ****
>>
>>                 at
>> org.sakaiproject.component.cover.ComponentManager.get(ComponentManager.java:107)
>> ****
>>
>>                 at
>> org.sakaiproject.component.cover.ServerConfigurationService.getInstance(ServerConfigurationService.java:52)
>> ****
>>
>>                 at
>> org.sakaiproject.component.cover.ServerConfigurationService.getSakaiHomePath(ServerConfigurationService.java:173)
>> ****
>>
>>                 at
>> org.sakaiproject.util.ToolListener.contextInitialized(ToolListener.java:66)
>> ****
>>
>>                 at
>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797)
>> ****
>>
>>                 at
>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291)
>> ****
>>
>>                 at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)****
>>
>>                 at
>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
>> ****
>>
>>                 at
>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)**
>> **
>>
>>                 at
>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)****
>>
>>                 at
>> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977)****
>>
>>                 at
>> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655)
>> ****
>>
>>                 at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)**
>> **
>>
>>                 at
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)****
>>
>>                 at
>> java.util.concurrent.FutureTask.run(FutureTask.java:138)****
>>
>>                 at
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>> ****
>>
>>                 at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>> ****
>>
>>                 at java.lang.Thread.run(Thread.java:662)****
>>
>> This message is private and confidential. If you have received it in
>> error, please notify the sender and remove it from your system.****
>>
>>
>> _______________________________________________
>> sakai-dev mailing list
>> sakai-dev at collab.sakaiproject.org
>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>
>> TO UNSUBSCRIBE: send email to
>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>> "unsubscribe"****
>>
>> ** **
>>
>> This message is private and confidential. If you have received it in
>> error, please notify the sender and remove it from your system.
>>
>> _______________________________________________
>> sakai-dev mailing list
>> sakai-dev at collab.sakaiproject.org
>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>
>> TO UNSUBSCRIBE: send email to
>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>> "unsubscribe"
>>
>
>  _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to
> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
> "unsubscribe"
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20130423/74d2d10d/attachment.html 


More information about the sakai-dev mailing list