Page 1 of 1

Dropbox not catching new file events

PostPosted: Thu Jan 17, 2013 10:09 pm
by rguha
Hi, I've started working with the OMERO.fs functionality (OMERO 4.3.4-dbcbce5a-b4) and have created a droppbox folder. The folder (/omero/dropbox) is distinct from the OMERO binary file storage area. The contents of MonitorSerevr.log is

Code: Select all
2013-01-17 16:41:27,098 INFO  [             fsserver.fsPyinotifyMonitor] (MainThread) Imported pyinotify version 0.9.1
2013-01-17 16:41:27,114 INFO  [                  fsserver.MonitorServer] (MainThread) Started OMERO.fs MonitorServer
2013-01-17 16:41:59,316 INFO  [             fsserver.fsPyinotifyMonitor] (Dummy-3   ) Watch added on: /omero/dropbox/rajarshi/test1
2013-01-17 16:41:59,316 INFO  [             fsserver.fsPyinotifyMonitor] (Dummy-3   ) Watch added on: /omero/dropbox/rajarshi
2013-01-17 16:41:59,317 INFO  [             fsserver.fsPyinotifyMonitor] (Dummy-3   ) Watch added on: /omero/dropbox/foo
2013-01-17 16:41:59,318 WARNI [                          StreamRedirect] (Dummy-3   ) No attribute: encoding
2013-01-17 16:41:59,318 WARNI [                                  stderr] (Dummy-3   ) [2013-01-17 16:41:59,317 pyinotify ERROR] add_watch: cannot watch /omero/dropbox/lost+found WD=-1 Errno=Permission denied (EACCES)
2013-01-17 16:41:59,317 ERROR [                               pyinotify] (Dummy-3   ) add_watch: cannot watch /omero/dropbox/lost+found WD=-1 Errno=Permission denied (EACCES)
2013-01-17 16:41:59,319 ERROR [                fsserver.fsMonitorServer] (Dummy-3   ) Failed to create monitor:
Traceback (most recent call last):
  File "/usr/local/src/OMERO.server-Beta-4.3.4/lib/python/fsMonitorServer.py", line 112, in createMonitor
    ignoreSysFiles, ignoreDirEvents, self, monitorId)
  File "/usr/local/src/OMERO.server-Beta-4.3.4/lib/python/fsMonitor.py", line 35, in createMonitor
    ignoreSysFiles, ignoreDirEvents, proxy, monitorId)
  File "/usr/local/src/OMERO.server-Beta-4.3.4/lib/python/fsMonitor.py", line 123, in __init__
    ignoreSysFiles, ignoreDirEvents, proxy, monitorId)
  File "/usr/local/src/OMERO.server-Beta-4.3.4/lib/python/fsMonitor.py", line 67, in __init__
    ignoreSysFiles, ignoreDirEvents, self)
  File "/usr/local/src/OMERO.server-Beta-4.3.4/lib/python/fsPyinotifyMonitor.py", line 82, in __init__
    self.wm.addBaseWatch(self.pathsToMonitor, (pyinotify.ALL_EVENTS), rec=recurse, auto_add=follow)
  File "/usr/local/src/OMERO.server-Beta-4.3.4/lib/python/fsPyinotifyMonitor.py", line 139, in addBaseWatch
    self.addWatch(str(d), mask)
  File "/usr/local/src/OMERO.server-Beta-4.3.4/lib/python/fsPyinotifyMonitor.py", line 148, in addWatch
    for d in pathModule.path(path).dirs():
  File "/usr/local/src/OMERO.server-Beta-4.3.4/lib/python/path.py", line 383, in dirs
    return [p for p in self.listdir(pattern) if p.isdir()]
  File "/usr/local/src/OMERO.server-Beta-4.3.4/lib/python/path.py", line 367, in listdir
    names = os.listdir(self)
OSError: [Errno 13] Permission denied: '/omero/dropbox/lost+found'


As you can see there is a folder under the dropbox folder that is inaccessible - can this cause the dropbox watcher to fail (so that to resolve this I need to remove the lost+found dir)? In DropBox.log I see

Code: Select all
2013-01-17 16:41:56,070 INFO  [                             omero.utils] (MainThread) Failed to get session on attempt 1
2013-01-17 16:41:59,256 INFO  [                        fsclient.DropBox] (MainThread) Monitor parameters = {'default': {'ignoreSysFiles': True, 'importArgs': '', 'watchDir': '', 'readers': '', 'blockSize': 0, 'whitelist': [], 'throttleImport': 10, 'ignoreDirEvents': True, 'blacklist': [], 'dirImportWait': 60, 'timeout': 0.0, 'pathMode': Follow, 'eventTypes': [Creation, Modification], 'timeToLive': 0L, 'timeToIdle': 600000L}}
2013-01-17 16:41:59,309 INFO  [                        fsclient.DropBox] (MainThread) Creating client for user: default
2013-01-17 16:41:59,311 INFO  [                    omero.util.Resources] (Thread-2  ) Starting
2013-01-17 16:41:59,312 INFO  [         fsclient.fsDropBoxMonitorClient] (MainThread) EVENT_RECORD::Cookie::1358458919.31::Directory::/omero/dropbox
2013-01-17 16:41:59,321 ERROR [                        fsclient.DropBox] (MainThread) Failed create or start monitor :
Traceback (most recent call last):
  File "lib/python/fsDropBox.py", line 172, in run
    mClientProxy)
  File "/usr/local/src/OMERO.server-Beta-4.3.4/lib/python/omero_FS_ice.py", line 583, in createMonitor
    return _M_omero.grid.monitors.MonitorServer._op_createMonitor.invoke(self, ((mType, eTypes, pMode, pathString, whitelist, blacklist, timeout, blockSize, ignoreSysFiles, ignoreDirEvents, proxy), _ctx))
OmeroFSError: exception ::omero::OmeroFSError
{
    serverStackTrace =
    serverExceptionClass =
    message =
    reason = Failed to create monitor: [Errno 13] Permission denied: '/omero/dropbox/lost+found'
}
2013-01-17 16:41:59,325 INFO  [                        fsclient.DropBox] (MainThread) Started OMERO.fs DropBox client


If I touch a file under /omero/dropbox/rajarshi I see no events in the log. The logs seem to indicate the OMERO.fs client is running. Or am I mistaken?

Any pointers would be appreciated

Re: Dropbox not catching new file events

PostPosted: Fri Jan 18, 2013 8:37 am
by jmoore
A possible workaround is listed under comment 3 of http://trac.openmicroscopy.org.uk/ome/ticket/9156

Let us know if that solves your issue.

Sorry for the inconvenience,
~Josh.

Re: Dropbox not catching new file events

PostPosted: Fri Jan 18, 2013 1:26 pm
by rguha
Thanks - this solves the problem and now FS events are processed. I see from the ticket that the resolution was pushed to 4.4.1. Has the fix been implemented in a stable release?

jmoore wrote:A possible workaround is listed under comment 3 of http://trac.openmicroscopy.org.uk/ome/ticket/9156

Re: Dropbox not catching new file events

PostPosted: Mon Jan 21, 2013 10:32 am
by jmoore
Sorry, it has not been released yet.