Package: incron
Version: 0.5.10-3+b2

Severity: heavy

Problem:
-----------
Incron crash with an "*** unhandled exception occurred ***"  if directories are 
deleted while Incron is monitoring them.
Error is reproducible.

# rm -Rf 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test1/*


If command to erase of pathes and/or files is moved to an own script (no 'rm') 
and the handling is smoother (via "sleep") and after the erase immediately an 
"service intron reload" take place, then intron crashes after (her max.) 3 to 4 
pathes.
Sometimes I received only „service incrond stopped“ in syslog.


Solution:
-----------
I have not found a workaround.


Side effect:
--------------
After executing commands „rm …“ and then  „service incron reload“ in own script 
I see following messages in syslog:
Jun  4 22:43:34 systemd[1]: Starting file system events scheduler...
Jun  4 22:43:34 ncrond[3623]: loading system tables
Jun  4 22:43:34 systemd[1]: incron.service: PID file /run/incrond.pid not 
readable (yet?) after start: No such file or directory

and then
Jun  4 22:43:34 systemd[1]: Started file system events scheduler.
Jun  4 22:43:34 incrond[3623]: loading table Auser.conf
Jun  4 22:43:34 incrond[3623]: loading table Buser.conf
Jun  4 22:43:34 incrond[3623]: loading table example.conf
Jun  4 22:43:34 incrond[3623]: cannot create watch for system table 
example.conf: (2) No such file or directory
Jun  4 22:43:34 incrond[3623]: cannot create watch for system table 
example.conf: (2) No such file or directory
Jun  4 22:43:34 incrond[3623]: cannot create watch for system table 
example.conf: (2) No such file or directory
Jun  4 22:43:34 incrond[3623]: cannot create watch for system table 
example.conf: (2) No such file or directory
...
Jun  4 22:43:34 incrond[3623]: loading table nextA.conf
...


---------
Syslog:
---------
Jun 04 22:57:48 incrond[18195]: (system::example.conf) CMD 
(/opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/mycloud/data/mycloud-data 
/var/lib/univention-appcenter/apps/mycloud/data/mycloud-data/user
Jun 04 22:57:49 incrond[18195]: *** unhandled exception occurred ***
Jun 04 22:57:49 incrond[18195]:   void InotifyWatch::SetEnabled(bool): enabling 
watch failed
Jun 04 22:57:49 incrond[18195]:   error: (2) No such file or directory
Jun 04 22:57:49 incrond[18195]: stopping service
Jun 04 22:57:49  systemd[1]:incron.service: Main process exited, code=exited, 
status=1/FAILURE
Jun 04 22:57:49  systemd[1]:incron.service: Unit entered failed state.
Jun 04 22:57:49  systemd[1]:incron.service: Failed with result 'exit-code'.


-----------
Debian
---------
# uname -v
#1 SMP Debian 4.9.210-1 (2020-01-20)
-------------
Conf-files:
-------------
# ls -lah /etc/incron.d/example.conf 
-rw-r--r-- 1 root root 8,3K Jun  4 22:57 /etc/incron.d/example.conf


etc/incond.d/example.conf (there are various other conf files in this incron 
directory, which all monitor other directories. There are no directory 
duplicates)
----------------------
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test1/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test1/subfolder1/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test1/Subfolder2/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test1/subfolder3/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test2/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test2/Subfolder1/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test3/Subfolder2/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test4/Subfolder3/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test5/Subfolder4/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test6/subfolder5/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test7/subfolder6/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test8/Subfolder7/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test9/subfolder8/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test3/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%
/var/lib/univention-appcenter/apps/myloud/data/myloud-data/user/files/Folder\ 
Test3/subfolder1/ 
IN_ATTRIB,IN_CLOSE_WRITE,IN_CREATE,IN_DELETE,IN_DELETE_SELF,IN_MOVE_SELF,IN_MOVED_FROM,IN_MOVED_TO,IN_ONLYDIR,IN_NO_LOOP
 /opt/scripts/incron_del_cron.sh 
/var/lib/univention-appcenter/apps/myloud/data/myloud-data $@ $# $%


Remarks:
-------
No difference whether the incron config files are saved individually in 
"../incron.d/..." or via crontab in "/ var / spool "incron/...".
Access as root on same machine as incron is installed.


-----------
Debian
---------
# uname -v
#1 SMP Debian 4.9.210-1 (2020-01-20)


-------------------
# dpkg --listincron
-------------------
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
         Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name                                   Version                  Architektur 
             Beschreibung
+++-======================================-========================-========================-=================================================================================
ii  incron                                 0.5.10-3+b2              amd64       
             cron-like daemon which handles filesystem events


----------------------
# dpkg --status incron
----------------------
Package: incron
Status: install ok installed
Priority: extra
Section: admin
Installed-Size: 264
Maintainer: Emmanuel Bouthenot <kol...@debian.org>
Architecture: amd64
Source: incron (0.5.10-3)
Version: 0.5.10-3+b2
Depends: libc6 (>= 2.14), libgcc1 (>= 1:3.0), libstdc++6 (>= 5.2), 
init-system-helpers (>= 1.18~), lsb-base (>= 3.2-14), adduser
Conffiles:
 /etc/incron.allow d41d8cd98f00b204e9800998ecf8427e
 /etc/incron.conf 986c3059ed88a5d5f2758e453acd5cb7
 /etc/incron.deny d41d8cd98f00b204e9800998ecf8427e
 /etc/init.d/incron 036332db6583b63a3d1f19265f107c55
Description: cron-like daemon which handles filesystem events
 incron is an "inotify cron" system. It works like the regular cron but is
 driven by filesystem events instead of time events. This package provides two
 programs, a daemon called "incrond" (analogous to crond) and a table
 manipulator "incrontab" (like "crontab").
 .
 incron uses the Linux Kernel inotify syscalls.
 .
 like cron, each user can edit its own incron tables.
 .
 incron can be used to :
  - notifying programs (e.g. server daemons) about changes in configuration
  - guarding changes in critical files (with their eventual recovery)
  - file usage monitoring, statistics
  - automatic on-crash cleanup
  - automatic on-change backup or versioning
  - new mail notification (for maildir)
  - server upload notification
  - installation management (outside packaging systems)
  - ... and many others
Homepage: http://inotify.aiken.cz/


Regards TS.
Th. Schütt, debian @ e-schuett.dde






Reply via email to