[gamin] Gamin not falling back to inotify correctly?



When I start gamin server, I see:

klea lea:~/Desktop/gamin-0.1.7$ /usr/lib/gamin/gam_server --notimeout test
Could not open /dev/inotify
Initialized Poll
dnotify initialized
Using DNotify as backend
Ready listening to socket /tmp/fam-klea-test : 5

I definitely have inotify, I'm on ubuntu with a 2.6.13.4 kernel.

klea lea:~/Desktop/gamin-0.1.7$ more /proc/sys/fs/inotify/*
::::::::::::::
/proc/sys/fs/inotify/max_queued_events
::::::::::::::
16384
::::::::::::::
/proc/sys/fs/inotify/max_user_instances
::::::::::::::
128
::::::::::::::
/proc/sys/fs/inotify/max_user_watches
::::::::::::::
8192

I've heard that inotify is now done through syscalls and not through
/dev/inotify. Is this the problem, gamin has not been updated to use
these syscalls?

I have another issue I hope you can help with. I'm using the gamin
python bindings. I'm seeing problems where if a watched directory is
deleted, and I remove a directory watch with stop_watch, then a
directory with the same name is created, and I watch_directory it, I
don't get any notifications when files change in the newly created
directory.

Here's what gam_server says in this situation, when I did mkdir face,
rmdir face, mkdir face, touch face/x:

gam_client_conn_read called
read 45 bytes from client
Request: from 17653, seq 2, type 2 options 0
Created subscription for /usr/local/keith/fslogger-test/face
Setting subscription listener for /usr/local/keith/fslogger-test/face
gam_dnotify_add_subscription
Poll: added subscription
gam_dnotify_consume_subscriptions()
gam_dnotify_add_subscription: done
gam_dnotify_consume_subscriptions_real()
1 new subscriptions.
node_add_subscription(/usr/local/keith/fslogger-test/face)
gam_dnotify_directory_handler /usr/local/keith/fslogger-test/face : 1
Adding /usr/local/keith/fslogger-test/face to dnotify
activated DNotify for /usr/local/keith/fslogger-test/face
Looking for existing files in: /usr/local/keith/fslogger-test/face...
Event to 17653 : 2, 8, /usr/local/keith/fslogger-test/face Exists
Wrote 45 bytes to socket 6
Event to 17653 : 2, 9, /usr/local/keith/fslogger-test/face None
Wrote 45 bytes to socket 6
Done scanning /usr/local/keith/fslogger-test/face
signal handler done
gam_dnotify_pipe_handler()
handling signal
Poll: directory scanning /usr/local/keith/fslogger-test
Poll: poll_file for /usr/local/keith/fslogger-test called
 at 1144868992 delta 2 : 0
Poll: emit events 16 for /usr/local/keith/fslogger-test
Poll: scanning directory /usr/local/keith/fslogger-test
Poll: poll_file for /usr/local/keith/fslogger-test/face called
 at 1144868992 delta 2 : 0
gam_poll_delist_node /usr/local/keith/fslogger-test/face
gam_dnotify_directory_handler /usr/local/keith/fslogger-test/face : 0
Removing /usr/local/keith/fslogger-test/face from dnotify
Poll adding missing node /usr/local/keith/fslogger-test/face
Poll: emit events 64 for /usr/local/keith/fslogger-test/face
Event to 17653 : 1, 2, face Deleted
Wrote 14 bytes to socket 6
Event to 17653 : 2, 2, /usr/local/keith/fslogger-test/face Deleted
Wrote 45 bytes to socket 6
Poll: scanning /usr/local/keith/fslogger-test done
gam_dnotify_pipe_handler() done
Poll: poll_file for /usr/local/keith/fslogger-test/face called
 at 1144868993 delta 1 : 0
Poll: directory /usr/local/keith/fslogger-test/face missing
Poll: poll_file for /usr/local/keith/fslogger-test/face called
 at 1144868994 delta 1 : 0
Poll: directory /usr/local/keith/fslogger-test/face missing
Poll: poll_file for /usr/local/keith/fslogger-test/face called
 at 1144868995 delta 1 : 0
Poll: directory /usr/local/keith/fslogger-test/face missing
signal handler done
gam_dnotify_pipe_handler()
handling signal
Poll: directory scanning /usr/local/keith/fslogger-test
Poll: poll_file for /usr/local/keith/fslogger-test called
 at 1144868995 delta 3 : 0
Poll: emit events 16 for /usr/local/keith/fslogger-test
Poll: scanning directory /usr/local/keith/fslogger-test
Poll: poll_file for /usr/local/keith/fslogger-test/face called
 at 1144868995 delta 0 : 0
Poll: emit events 32 for /usr/local/keith/fslogger-test/face
Event to 17653 : 1, 5, face Created
Wrote 14 bytes to socket 6
Event to 17653 : 2, 5, /usr/local/keith/fslogger-test/face Created
Wrote 45 bytes to socket 6
Poll: scanning /usr/local/keith/fslogger-test done
gam_dnotify_pipe_handler() done
gam_client_conn_read called
read 45 bytes from client
Request: from 17653, seq 3, type 2 options 0
Created subscription for /usr/local/keith/fslogger-test/face
Setting subscription listener for /usr/local/keith/fslogger-test/face
gam_dnotify_add_subscription
Poll: added subscription
gam_dnotify_consume_subscriptions()
gam_dnotify_add_subscription: done
gam_dnotify_consume_subscriptions_real()
1 new subscriptions.
node_add_subscription(/usr/local/keith/fslogger-test/face)
gam_dnotify_directory_handler /usr/local/keith/fslogger-test/face : 1
Adding /usr/local/keith/fslogger-test/face to dnotify
  found incremented refcount: 1
Looking for existing files in: /usr/local/keith/fslogger-test/face...
Event to 17653 : 3, 8, /usr/local/keith/fslogger-test/face Exists
Wrote 45 bytes to socket 6
Event to 17653 : 3, 9, /usr/local/keith/fslogger-test/face None
Wrote 45 bytes to socket 6
Done scanning /usr/local/keith/fslogger-test/face
Poll: poll_file for /usr/local/keith/fslogger-test/face called
 at 1144868996 delta 1 : 1
Poll: poll_file /usr/local/keith/fslogger-test/face unchanged
1144868995 0 : 1144868995 0
Poll: scanning directory /usr/local/keith/fslogger-test/face
Poll removing missing node /usr/local/keith/fslogger-test/face
gam_poll_relist_node /usr/local/keith/fslogger-test/face
gam_dnotify_directory_handler /usr/local/keith/fslogger-test/face : 1
Adding /usr/local/keith/fslogger-test/face to dnotify
  found incremented refcount: 2
gam_dnotify_directory_handler /usr/local/keith/fslogger-test/face : 1
Adding /usr/local/keith/fslogger-test/face to dnotify
  found incremented refcount: 3


here's what the client says:

FAMNextEvent(fd = 3)
read 14 bytes from server
accepted event: seq 1, type 5
FAMNextEvent : Created : face
FAMMonitorDirectory(/usr/local/keith/fslogger-test/face)
Wrote 45 bytes to socket 3
gamin_send_request 2 for socket 3
FAMNextEvent(fd = 3)
read 90 bytes from server
accepted event: seq 2, type 8
FAMNextEvent : Exists : /usr/local/keith/fslogger-test/face
FAMNextEvent(fd = 3)
accepted event: seq 2, type 9
FAMNextEvent : EndExist : /usr/local/keith/fslogger-test/face
FAMNextEvent(fd = 3)
read 59 bytes from server
accepted event: seq 1, type 2
FAMNextEvent : Deleted : face
FAMNextEvent(fd = 3)
accepted event: seq 2, type 2
FAMNextEvent : Deleted : /usr/local/keith/fslogger-test/face
FAMNextEvent(fd = 3)
read 59 bytes from server
accepted event: seq 1, type 5
FAMNextEvent : Created : face
FAMMonitorDirectory(/usr/local/keith/fslogger-test/face)
Wrote 45 bytes to socket 3
gamin_send_request 3 for socket 3
FAMNextEvent(fd = 3)
accepted event: seq 2, type 5
FAMNextEvent : Created : /usr/local/keith/fslogger-test/face
FAMNextEvent(fd = 3)
read 90 bytes from server
accepted event: seq 3, type 8
FAMNextEvent : Exists : /usr/local/keith/fslogger-test/face
FAMNextEvent(fd = 3)
accepted event: seq 3, type 9
FAMNextEvent : EndExist : /usr/local/keith/fslogger-test/face
FAMNextEvent(fd = 3)

My code simply adds a watch for any directories seen as GAMCreated or GAMExists.



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