Uploaded image for project: 'JBoss A-MQ'
  1. JBoss A-MQ
  2. ENTMQ-977

KeepAlive timer in shared file lock doesn't detect lock deletion in time

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • JBoss A-MQ 6.2
    • master-slave
    • Hide

      1. Run A-MQ with persistance storage on NFSv4.
      2. Delete lock file from another machine which has same share mounted.
      3. Broker shuts down with much larger timeout than keepAlive period

      Show
      1. Run A-MQ with persistance storage on NFSv4. 2. Delete lock file from another machine which has same share mounted. 3. Broker shuts down with much larger timeout than keepAlive period

      I have AMQ running on openstack with following persistence configuration.

      <persistenceAdapter>
          <kahaDB directory="/mnt/nfs/fuse-shared/kahadb" lockKeepAlivePeriod="2000">
              <locker>
                  <shared-file-locker lockAcquireSleepInterval="10000"/>
              </locker>
          </kahaDB>
      </persistenceAdapter>
      

      Where location /mnt/nfs/fuse-shared/ is NFSv4 share.

      When I delete lock file the broker should stop in keepalive period (2s). But it works only when I delete lock on the machine, where broker is running.

      If I delete lock file from another machine which has same NFS mounted then it takes broker up to 60 seconds before broker realizes that the lock file was deleted.

      If I delete lock from another machine and then ssh into machine where broker is running and just list the kahaDB directory:

      ls /mnt/nfs/fuse-shared/kahadb/ 
      

      Then keepAlive detects file deletion and broker shutdown in 2s.

              gmurthy@redhat.com Ganesh Murthy
              knetl.j@gmail.com Jakub Knetl (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: