[ome-users] NullPointerException in FileMaker
Harri Jäälinoja
harri.jaalinoja at helsinki.fi
Mon Aug 6 15:42:08 BST 2012
Hi all,
I think I've solved this. Some googling points to NFS locking issues:
https://forums.oracle.com/forums/thread.jspa?threadID=2232128&tstart=0&messageID=9907997
This makes sense, because in our new environment, the big data drive is
a NFS share.
I did this:
service nfslock start
and after that, I haven't seen the errors anymore.
Do you have any comments in general about having OMERO store data on NFS
(speed for example)? We have also the PostgreSQL data directory there.
In our case we got this 4T storage area for free from a national
computing center, and I don't think we have much say about how we
receive it, but it would be good to know if there are any possible issues.
Cheers,
Harri
On 06/08/12 17:08, Harri Jäälinoja wrote:
> Hi,
> I added some more logging to
> components/blitz/src/ome/services/blitz/repo/AbstractRepositoryI.java,
> in the helper GetOrGreateRepo:
>
> } catch (Exception e) {
> log.error("Error in GetOrCreateRepo.doWork",e);
> e.printStackTrace();
> fileMaker.close(); // If anything goes awry, we release
> for
> // others!
> return e;
> }
>
> This is what it prints:
>
> 2012-08-06 17:01:03,182 ERROR [.services.blitz.repo.AbstractRepositoryI]
> (2-thread-1) Error in GetOrCreateRepo.doWork
> java.io.IOException: No locks available
> at sun.nio.ch.FileChannelImpl.lock0(Native Method)
> at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:832)
> at java.nio.channels.FileChannel.lock(FileChannel.java:860)
> at ome.services.blitz.repo.FileMaker.getLine(FileMaker.java:95)
> at
> ome.services.blitz.repo.AbstractRepositoryI$GetOrCreateRepo.doWork(AbstractRepositoryI.java:233)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
>
> What does this mean, why are there no locks available?
>
> Thanks,
> Harri
>
>
> On 06/08/12 12:33, Harri Jäälinoja wrote:
>> Hi again,
>>
>> I forgot to mention that this error is repeated once a minute:
>>
>> [root at omerovm-1 ~]# grep ERROR /var/log/OMERO/Blitz-0.log |tail
>> 2012-08-06 12:21:16,970 ERROR [.services.blitz.repo.AbstractRepositoryI]
>> (2-thread-5) Unexpected error in called executor on takeover
>> 2012-08-06 12:22:16,988 ERROR [.services.blitz.repo.AbstractRepositoryI]
>> (2-thread-3) Unexpected error in called executor on takeover
>> 2012-08-06 12:23:16,971 ERROR [.services.blitz.repo.AbstractRepositoryI]
>> (2-thread-2) Unexpected error in called executor on takeover
>> 2012-08-06 12:24:16,951 ERROR [.services.blitz.repo.AbstractRepositoryI]
>> (2-thread-3) Unexpected error in called executor on takeover
>> 2012-08-06 12:25:16,964 ERROR [.services.blitz.repo.AbstractRepositoryI]
>> (2-thread-2) Unexpected error in called executor on takeover
>>
>> Regards,
>> Harri
>>
>> On 03/08/12 14:37, harri.jaalinoja at helsinki.fi wrote:
>>> Hello,
>>>
>>> looking at
>>> https://github.com/openmicroscopy/openmicroscopy/blob/master/components/blitz/src/ome/services/blitz/repo/FileMaker.java,
>>>
>>>
>>>
>>>
>>> the NPE is thrown because there is no lock to release:
>>> try {
>>> lock.release(); // line 132
>>> } catch (IOException e) {
>>> log.warn("Failed to release lock");
>>> }
>>>
>>> It seems lock is only initialized if getLine() is called, otherwise it
>>> is null:
>>>
>>> public String getLine() throws Exception {
>>> synchronized (mutex) {
>>>
>>> if (dbUuid == null) {
>>> throw new InternalException("Not initialized");
>>> }
>>>
>>> lock = dotLockRaf.getChannel().lock();
>>>
>>>
>>> So somehow the getLine call was omitted now?
>>>
>>> Cheers,
>>> Harri
>>>
>>>
>>> Quoting harri.jaalinoja at helsinki.fi:
>>>
>>>> Hello All,
>>>> I noticed an error in the OMERO 4.4.1 logs (on RedHat5.8). I just
>>>> restarted OMERO server, so this in not initiated by user action
>>>> (unless OMERO stores jobs over shutdown and continues them after
>>>> restart: yesterday I left "combine images" script running).
>>>>
>>>> The stack trace is below. Any ideas what is wrong?
>>>>
>>>> Thanks,
>>>> Harri
>>>>
>>>> ----
>>>> 2012-08-03 13:28:16,981 WARN [
>>>> ome.services.util.ServiceHandler] (2-thread-4) Method interface
>>>> ome.services.util.Executor$Work.doWork invocation took 6043
>>>> 2012-08-03 13:28:16,981 ERROR
>>>> [.services.blitz.repo.AbstractRepositoryI] (2-thread-4) Unexpected
>>>> error in called executor on takeover
>>>> ome.conditions.InternalException: Wrapped Exception:
>>>> (java.lang.NullPointerException):
>>>> null
>>>> at ome.services.blitz.repo.FileMaker.close(FileMaker.java:132)
>>>> at
>>>> ome.services.blitz.repo.AbstractRepositoryI$GetOrCreateRepo.doWork(AbstractRepositoryI.java:301)
>>>>
>>>>
>>>>
>>>> at sun.reflect.GeneratedMethodAccessor225.invoke(Unknown Source)
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>
>>>>
>>>>
>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>> at
>>>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
>>>>
>>>>
>>>>
>>>> at
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
>>>>
>>>>
>>>>
>>>> at
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
>>>>
>>>>
>>>>
>>>> at
>>>> ome.services.util.Executor$Impl$Interceptor.invoke(Executor.java:508)
>>>> at
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>>>>
>>>>
>>>>
>>>> at ome.security.basic.EventHandler.invoke(EventHandler.java:154)
>>>> at
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>>>>
>>>>
>>>>
>>>> at
>>>> org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
>>>>
>>>>
>>>>
>>>> at
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>>>>
>>>>
>>>>
>>>> at
>>>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
>>>>
>>>>
>>>>
>>>> at
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>>>>
>>>>
>>>>
>>>> at
>>>> ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:241)
>>>>
>>>>
>>>>
>>>> at
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>>>>
>>>>
>>>>
>>>> at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:116)
>>>> at
>>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>>>>
>>>>
>>>>
>>>> at
>>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
>>>>
>>>>
>>>>
>>>> at $Proxy65.doWork(Unknown Source)
>>>> at ome.services.util.Executor$Impl.execute(Executor.java:406)
>>>> at ome.services.util.Executor$Impl.execute(Executor.java:350)
>>>> at
>>>> ome.services.blitz.repo.AbstractRepositoryI.takeover(AbstractRepositoryI.java:120)
>>>>
>>>>
>>>>
>>>> at sun.reflect.GeneratedMethodAccessor240.invoke(Unknown Source)
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>
>>>>
>>>>
>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>> at
>>>> org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273)
>>>> at
>>>> org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:264)
>>>>
>>>>
>>>>
>>>> at
>>>> org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
>>>>
>>>>
>>>>
>>>> at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
>>>> 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)
>>>>
>>>> _______________________________________________
>>>> ome-users mailing list
>>>> ome-users at lists.openmicroscopy.org.uk
>>>> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users
>>>>
>>>
>>>
>>> _______________________________________________
>>> ome-users mailing list
>>> ome-users at lists.openmicroscopy.org.uk
>>> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users
>>
>>
>> _______________________________________________
>> ome-users mailing list
>> ome-users at lists.openmicroscopy.org.uk
>> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users
>
>
> _______________________________________________
> ome-users mailing list
> ome-users at lists.openmicroscopy.org.uk
> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users
More information about the ome-users
mailing list