Re: [Nfs-ganesha-devel] NFS-Ganesha service restarts automatically on RHEL 7.1

2015-08-19 Thread Meghana Madhusudhan
Yes. That looks good to me. Would you push it to gerritio?
Others do have different opinions, we can get more comments
on that patch.

Thanks
Meghana

- Original Message -
From: Malahal Naineni mala...@us.ibm.com
To: Meghana Madhusudhan mmadh...@redhat.com
Cc: nfs-ganesha-devel@lists.sourceforge.net
Sent: Wednesday, August 19, 2015 12:19:11 AM
Subject: Re: [Nfs-ganesha-devel] NFS-Ganesha service restarts automatically on 
RHEL 7.1

Actually, this makes sense on a single node system. On our cluster, as
you said, not a very good option. We shipped a product without this
line. I was planning on posting it but not sure how other feel about it.

Maybe time to post! I will push it to gerritio, here is the link if interested:

https://github.com/ganltc/nfs-ganesha/commit/39f898f8fbb663b850c28430583d792718b8896c


Meghana Madhusudhan [mmadh...@redhat.com] wrote:
 Hi,
 
 The sysconfig file defines Restart=on-abort and as a result, the NFS-Ganesha 
 service gets restarted automatically
 when the service process exits due to an uncaught signal not specified as a 
 clean exit status.
 In a clustered implementation that offers High Availability, restart 
 shouldn't happen
 automatically. A few extra operations have to be performed before the service 
 starts on that node.
 
 Is there a specific reason why it was set Restart=on-abort? How are other 
 FSALs that support HA
 handling this?
 
 
 Meghana 
 
 --
 ___
 Nfs-ganesha-devel mailing list
 Nfs-ganesha-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
 


--
___
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel


Re: [Nfs-ganesha-devel] Problems in /usr/libexec/ganesha/dbus-send.sh and ganesha dbus interface when disabling exports from gluster

2015-06-19 Thread Meghana Madhusudhan
I see that NFS-Ganesha is no longer running after the unexport. Can you move to 
the latest sources which has Soumya's fix and try once?
Even if the config file is still included in the ganesha.conf, dynamically 
removing that export should not affect the process itself.

Meghana

- Original Message -
From: Alessandro De Salvo alessandro.desa...@roma1.infn.it
To: Meghana Madhusudhan mmadh...@redhat.com
Cc: gluster-us...@gluster.org, nfs-ganesha-devel@lists.sourceforge.net, Soumya 
Koduri skod...@redhat.com
Sent: Thursday, June 18, 2015 7:55:30 PM
Subject: Re: [Nfs-ganesha-devel] Problems in /usr/libexec/ganesha/dbus-send.sh 
and ganesha dbus interface when disabling exports from gluster

Hi Meghana,

 Il giorno 18/giu/2015, alle ore 16:06, Meghana Madhusudhan 
 mmadh...@redhat.com ha scritto:
 
 Hi Allesandro,
 
 I need the following output from you,
 
 1. After you execute ganesha.enable on command.
 ps aux | grep ganesha

root  6699 94.0  1.1 953488 193272 ?   Ssl  Jun17 1137:36 
/usr/bin/ganesha.nfsd -L /var/log/ganesha.log -f /etc/ganesha/ganesha.conf -N 
NIV_EVENT -p /var/run/ganesha.nfsd.pid
root 22263  0.0  0.0 112644   960 pts/0S+   16:14   0:00 grep 
--color=auto ganesha

(both nodes of the cluster show the same, apart from the PIDs, of course)

 showmount -e localhost

Export list for node1:
/atlas-backup-01 (everyone)

The same output is shown on the other node.

 cat /etc/ganesha/ganesha.conf

# Ganesha options file
%include /etc/ganesha/ganesha-opts.conf
%include /etc/ganesha/exports/export.atlas-backup-01.conf


The first include just point to a different file with the following lines, to 
change the rquota port

NFS_Core_Param {
 #Use a non-privileged port for RQuota
 Rquota_Port = 4501;
}


 cat /etc/ganesha/exports/export.VOLNAME.conf or 
 /usr//export.VOLNAME.conf”

# WARNING : Using Gluster CLI will overwrite manual
# changes made to this file. To avoid it, edit the
# file, copy it over to all the NFS-Ganesha nodes
# and run ganesha-ha.sh --refresh-config.
EXPORT{
  Export_Id= 2 ;
  Path = /atlas-backup-01;
  FSAL {
   name = GLUSTER;
   hostname=localhost;
  volume=atlas-backup-01;
   }
  Access_type = RW;
  Disable_ACL = true;
  Squash=No_root_squash;
  Pseudo=/atlas-backup-01;
  Protocols = 3, 4 ;
  Transports = UDP,TCP;
  SecType = sys;
 }


 tail /var/log/ganesha.log or wherever the ganesha log is.

17/06/2015 20:01:00 : epoch 5581b5da : node2 : ganesha.nfsd-26983[main] 
nfs_Start_threads :THREAD :EVENT :gsh_dbusthread was started successfully
17/06/2015 20:01:00 : epoch 5581b5da : node2 : ganesha.nfsd-26983[main] 
nfs_Start_threads :THREAD :EVENT :admin thread was started successfully
17/06/2015 20:01:00 : epoch 5581b5da : node2 : ganesha.nfsd-26983[main] 
nfs_Start_threads :THREAD :EVENT :reaper thread was started successfully
17/06/2015 20:01:00 : epoch 5581b5da : node2 : ganesha.nfsd-26983[reaper] 
nfs_in_grace :STATE :EVENT :NFS Server Now IN GRACE
17/06/2015 20:01:00 : epoch 5581b5da : node2 : ganesha.nfsd-26983[main] 
nfs_Start_threads :THREAD :EVENT :General fridge was started successfully
17/06/2015 20:01:01 : epoch 5581b5da : node2 : ganesha.nfsd-26983[main] 
nfs_start :NFS STARTUP :EVENT :-
17/06/2015 20:01:01 : epoch 5581b5da : node2 : ganesha.nfsd-26983[main] 
nfs_start :NFS STARTUP :EVENT : NFS SERVER INITIALIZED
17/06/2015 20:01:01 : epoch 5581b5da : node2 : ganesha.nfsd-26983[main] 
nfs_start :NFS STARTUP :EVENT :-
17/06/2015 20:02:00 : epoch 5581b5da : node2 : ganesha.nfsd-26983[reaper] 
nfs_in_grace :STATE :EVENT :NFS Server Now NOT IN GRACE
18/06/2015 16:13:50 : epoch 5581b5da : node2 : 
ganesha.nfsd-26983[dbus_heartbeat] glusterfs_create_export :FSAL :EVENT :Volume 
atlas-backup-01 exported at : '/'


 
 2. gluster vol set VOLNAME ganesha.enable off
 
 Output of the same as above.

# gluster vol set atlas-backup-01 ganesha.enable off
volume set: failed: Dynamic export addition/deletion failed. Please see log 
file for details

# ps aux | grep ganesha
root 32033  0.0  0.0 112640   960 pts/0S+   16:20   0:00 grep 
--color=auto ganesha

[This is due to the fact that the export file was deleted by the config still 
references it, so ganesha fails to resume]

# cat /etc/ganesha/ganesha.conf
# Ganesha options file
%include /etc/ganesha/ganesha-opts.conf
%include /etc/ganesha/exports/export.atlas-backup-01.conf

# cat /etc/ganesha/exports/export.atlas-backup-01.conf
cat: /etc/ganesha/exports/export.atlas-backup-01.conf: No such file or directory


# tail /var/log/ganesha.log
18/06/2015 16:19:20 : epoch 5582d368 : node2 : ganesha.nfsd-30835[main] 
glusterfs_create_export :FSAL :EVENT :Volume atlas-backup-01 exported at : '/'
18/06/2015 16:19:22 : epoch 5582d368 : node2 : ganesha.nfsd-30835[main] 
lower_my_caps :NFS STARTUP :EVENT

Re: [Nfs-ganesha-devel] Problems in /usr/libexec/ganesha/dbus-send.sh and ganesha dbus interface when disabling exports from gluster

2015-06-18 Thread Meghana Madhusudhan
Hi Allesandro,

I need the following output from you,

1. After you execute ganesha.enable on command.
ps aux | grep ganesha
showmount -e localhost
cat /etc/ganesha/ganesha.conf
cat /etc/ganesha/exports/export.VOLNAME.conf or 
/usr//export.VOLNAME.conf
tail /var/log/ganesha.log or wherever the ganesha log is.

2. gluster vol set VOLNAME ganesha.enable off

Output of the same as above.

Thanks for your perseverance :)

Meghana

- Original Message -
From: Alessandro De Salvo alessandro.desa...@roma1.infn.it
To: Meghana Madhusudhan mmadh...@redhat.com
Cc: gluster-us...@gluster.org, nfs-ganesha-devel@lists.sourceforge.net, Soumya 
Koduri skod...@redhat.com
Sent: Thursday, June 18, 2015 7:24:55 PM
Subject: Re: [Nfs-ganesha-devel] Problems in /usr/libexec/ganesha/dbus-send.sh 
and ganesha dbus interface when disabling exports from gluster

Hi Meghana,

 Il giorno 18/giu/2015, alle ore 07:04, Meghana Madhusudhan 
 mmadh...@redhat.com ha scritto:
 
 
 
 
 On 06/17/2015 10:57 PM, Alessandro De Salvo wrote:
 Hi,
 when disabling exports from gluster 3.7.1, by using gluster vol set volume 
 ganesha.enable off, I always get the following error:
 
 Error: Dynamic export addition/deletion failed. Please see log file for 
 details
 
 This message is produced by the failure of 
 /usr/libexec/ganesha/dbus-send.sh, and in fact if I manually perform the 
 command to remove the share I see:
 you got it wrong. '/usr/libexec/ganesha/dbus-send.sh' is used by 
 Gluster-CLI to unexport the volume gluster volume set volname 
 ganesha.enable off which rightly deletes the export file too while 
 un-exporting the volume.
 
 
 # dbus-send --print-reply --system --dest=org.ganesha.nfsd 
 /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.RemoveExport uint16:2
 Error org.freedesktop.DBus.Error.NoReply: Message did not receive a reply 
 (timeout by message bus)
 
 So, there is a timeout and it fails completely.
 Check if nfs-ganesha is still running. There was a bug in unexporting 
 the volume. Its been fixed recently in V2.3-dev, yet to be back-ported 
 to V2.2-stable branch.
 https://review.gerrithub.io/#/c/236129/
 
 Thanks,
 Soumya
 
 In this case I think there is a bug in /usr/libexec/ganesha/dbus-send.sh, 
 since it blindly deletes the share config if the RemoveExport fails 
 (function check_cmd_status()), but leaves the %include inside ganesha.conf 
 as in the check_cmd_status() there is a runaway condition and the other 
 removal statements are then not executed. I believe the logic should be 
 fixed here, otherwise even a restart of the service will fail due to the bad 
 configuration.
 
 Yes. I see that the sed -i /$VOL.conf/d $CONF is placed after the 
 check_cmd_status. I shall send a fix upstream in a related bug. But dynamic 
 export removal
 will fail in three cases, 
 1. nfs-ganesha is not running.

no, it was running

 2. The export file that is particular to that volume is somehow deleted 
 before you perform the removal. It does depend on that file to get the export 
 ID.

I tried to comment out the rm in check_cmd_status to avoid this race condition, 
but it did not solve the problems.

 3. The bug that Soumya pointed out. 

This might well be the real cause!

 
 If it is failing consistently, there could be something that you are missing. 
 If you can send the exact sequence of sequence of steps that you have 
 executed,
 I can help you with it.

Yes, it’s failing consistently, unless as I said I do a DisplayExport before 
the RemoveExport, in which case it always works.

 
 Ideally after exporting a particular volume, you'll see an entry in the 
 /etc/ganesha/ganesha.conf file and the export file in /etc/ganesha/exports 
 dir.

And this works perfectly, I see them correctly.

 If you have this in place and nfs-ganesha running, then dynamic export 
 removal should work just fine.

But this is not, at least in my case.
The command I’m using are just the following:

gluster vol set volume ganesha.enable on
gluster vol set volume ganesha.enable off

It normally wait a few seconds between the two commands, to give time to 
ganesha to actually export the volume.
The export is always failing as described, unless I add the DisplayExport in 
dbus-send.sh before RemoveExport.
Many thanks for the help,

Alessandro


 
 Meghana
 
 
 
 What’s more worrying is the problem with the dbus. Issuing a DisplayExport 
 before the RemoveExport apparently fixes the problem, so something like this 
 always works:
 
 # dbus-send --print-reply --system --dest=org.ganesha.nfsd 
 /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.DisplayExport uint16:2
 # dbus-send --print-reply --system --dest=org.ganesha.nfsd 
 /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.RemoveExport uint16:2
 
 So, it’s like the DisplayExport is forcing someway a refresh that is needed 
 by the RemoveExport. Any idea why?
 I’m using the latest version of ganesha 2.2.0, i.e. 2.2.0-3.
 Thanks,
 
  Alessandro
 
 PS: sorry for reporting

Re: [Nfs-ganesha-devel] Problems in /usr/libexec/ganesha/dbus-send.sh and ganesha dbus interface when disabling exports from gluster

2015-06-17 Thread Meghana Madhusudhan



On 06/17/2015 10:57 PM, Alessandro De Salvo wrote:
 Hi,
 when disabling exports from gluster 3.7.1, by using gluster vol set volume 
 ganesha.enable off, I always get the following error:

 Error: Dynamic export addition/deletion failed. Please see log file for 
 details

 This message is produced by the failure of /usr/libexec/ganesha/dbus-send.sh, 
 and in fact if I manually perform the command to remove the share I see:
you got it wrong. '/usr/libexec/ganesha/dbus-send.sh' is used by 
Gluster-CLI to unexport the volume gluster volume set volname 
ganesha.enable off which rightly deletes the export file too while 
un-exporting the volume.


 # dbus-send --print-reply --system --dest=org.ganesha.nfsd 
 /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.RemoveExport uint16:2
 Error org.freedesktop.DBus.Error.NoReply: Message did not receive a reply 
 (timeout by message bus)

 So, there is a timeout and it fails completely.
Check if nfs-ganesha is still running. There was a bug in unexporting 
the volume. Its been fixed recently in V2.3-dev, yet to be back-ported 
to V2.2-stable branch.
https://review.gerrithub.io/#/c/236129/

Thanks,
Soumya

 In this case I think there is a bug in /usr/libexec/ganesha/dbus-send.sh, 
 since it blindly deletes the share config if the RemoveExport fails (function 
 check_cmd_status()), but leaves the %include inside ganesha.conf as in the 
 check_cmd_status() there is a runaway condition and the other removal 
 statements are then not executed. I believe the logic should be fixed here, 
 otherwise even a restart of the service will fail due to the bad 
 configuration.

Yes. I see that the sed -i /$VOL.conf/d $CONF is placed after the 
check_cmd_status. I shall send a fix upstream in a related bug. But dynamic 
export removal
will fail in three cases, 
1. nfs-ganesha is not running.
2. The export file that is particular to that volume is somehow deleted before 
you perform the removal. It does depend on that file to get the export ID.
3. The bug that Soumya pointed out. 

If it is failing consistently, there could be something that you are missing. 
If you can send the exact sequence of sequence of steps that you have executed,
I can help you with it.

Ideally after exporting a particular volume, you'll see an entry in the 
/etc/ganesha/ganesha.conf file and the export file in /etc/ganesha/exports 
dir. If you
have this in place and nfs-ganesha running, then dynamic export removal should 
work just fine.

Meghana



 What’s more worrying is the problem with the dbus. Issuing a DisplayExport 
 before the RemoveExport apparently fixes the problem, so something like this 
 always works:

 # dbus-send --print-reply --system --dest=org.ganesha.nfsd 
 /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.DisplayExport uint16:2
 # dbus-send --print-reply --system --dest=org.ganesha.nfsd 
 /org/ganesha/nfsd/ExportMgr org.ganesha.nfsd.exportmgr.RemoveExport uint16:2

 So, it’s like the DisplayExport is forcing someway a refresh that is needed 
 by the RemoveExport. Any idea why?
 I’m using the latest version of ganesha 2.2.0, i.e. 2.2.0-3.
 Thanks,

   Alessandro

 PS: sorry for reporting so many things in a few days :-)



 --



 ___
 Nfs-ganesha-devel mailing list
 Nfs-ganesha-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel


--
___
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

--
___
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel