On Sat, Apr 07, 2012 at 01:00:27AM +0300, Itamar Heim wrote:
On 04/06/2012 06:00 PM, Ryan Harper wrote:
Re-sending this to arch as in our meeting this week we agreed[1] no reason to not implement DCO (http://kerneltrap.org/files/Jeremy/DCO.txt) but that we needed to enlist the maintainers to work out enforcement.
that's easy enough since we use gerrit. if acked by all, i can simply enable 'force sign-off' on patches option in gerrit and it will be enforced...
I do not mind requring the make-my-lawyer-happy line in all Vdsm commits, and I suppose that this would be fine by everybody on vdsm-devel. Tell us when this takes effect, we'll prepare our commit-msg hooks by then.
Anything cooler we can do beyond putting
SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^(.*>).*$/Signed-off-by: \1/p') grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
at the bottom of .git/hooks/commit-msg ?
----- Forwarded message from Ryan Harperryanh@us.ibm.com -----
From: Ryan Harperryanh@us.ibm.com Subject: code sign-off/DCO for ovirt projects Date: Tue, 3 Apr 2012 14:59:40 -0500 Message-ID:20120403195940.GB5061@us.ibm.com User-Agent: Mutt/1.5.6+20040907i To: board@ovirt.org
I see that this was discussed in the past on the board list[1] and there didn't seem to be any disagreement with doing DCO sign-off for code contributions. However, not all of the ovirt projects are doing DCO/Sign-off. There are a few commits in vdms.git that have a SoB, ovirt-node seems to be using DCO completely. Nothing in ovirt-engine either. I didn't check all of the ovirt subprojects, but I think it's safe to assume that's not being applied across all of the projects consistently.
Can we get that added to the commit process for these projects moving forward? Is there anything else needed beyond maintainers enforcing the need for SoB in patches?
Arch mailing list Arch@ovirt.org http://lists.ovirt.org/mailman/listinfo/arch
On 04/08/2012 02:11 AM, Dan Kenigsberg wrote:
Anything cooler we can do beyond putting
SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^(.*>).*$/Signed-off-by: \1/p') grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
at the bottom of .git/hooks/commit-msg ?
To fix 'git format-patch' (which is used by 'git send-email'), use:
git config format.signoff true
But that only adds it when you send a patch, not when you make the commit. You can also use 'git commit -s' to add the signoff when you create the commit, but I don't know of a configuration bool that will make that automatic, short of your hack on the commit-msg hook.
On Mon, Apr 09, 2012 at 06:39:22AM -0600, Eric Blake wrote:
On 04/08/2012 02:11 AM, Dan Kenigsberg wrote:
Anything cooler we can do beyond putting
SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^(.*>).*$/Signed-off-by: \1/p') grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
at the bottom of .git/hooks/commit-msg ?
To fix 'git format-patch' (which is used by 'git send-email'), use:
git config format.signoff true
But that only adds it when you send a patch, not when you make the commit. You can also use 'git commit -s' to add the signoff when you create the commit, but I don't know of a configuration bool that will make that automatic, short of your hack on the commit-msg hook.
I couldn't find a similar config value for git commit, but there's git commit -s to do it manually.
top posting to make sure this is visible: touched based with danken and enabled this for vdsm project. if there are any issues/more time needed for adjustment, will disable and re-enable.
http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html#Sig...
On 04/08/2012 11:11 AM, Dan Kenigsberg wrote:
On Sat, Apr 07, 2012 at 01:00:27AM +0300, Itamar Heim wrote:
On 04/06/2012 06:00 PM, Ryan Harper wrote:
Re-sending this to arch as in our meeting this week we agreed[1] no reason to not implement DCO (http://kerneltrap.org/files/Jeremy/DCO.txt) but that we needed to enlist the maintainers to work out enforcement.
that's easy enough since we use gerrit. if acked by all, i can simply enable 'force sign-off' on patches option in gerrit and it will be enforced...
I do not mind requring the make-my-lawyer-happy line in all Vdsm commits, and I suppose that this would be fine by everybody on vdsm-devel. Tell us when this takes effect, we'll prepare our commit-msg hooks by then.
Anything cooler we can do beyond putting
SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^(.*>).*$/Signed-off-by: \1/p') grep -qs "^$SOB" "$1" || echo "$SOB">> "$1"
at the bottom of .git/hooks/commit-msg ?
----- Forwarded message from Ryan Harperryanh@us.ibm.com -----
From: Ryan Harperryanh@us.ibm.com Subject: code sign-off/DCO for ovirt projects Date: Tue, 3 Apr 2012 14:59:40 -0500 Message-ID:20120403195940.GB5061@us.ibm.com User-Agent: Mutt/1.5.6+20040907i To: board@ovirt.org
I see that this was discussed in the past on the board list[1] and there didn't seem to be any disagreement with doing DCO sign-off for code contributions. However, not all of the ovirt projects are doing DCO/Sign-off. There are a few commits in vdms.git that have a SoB, ovirt-node seems to be using DCO completely. Nothing in ovirt-engine either. I didn't check all of the ovirt subprojects, but I think it's safe to assume that's not being applied across all of the projects consistently.
Can we get that added to the commit process for these projects moving forward? Is there anything else needed beyond maintainers enforcing the need for SoB in patches?
Arch mailing list Arch@ovirt.org http://lists.ovirt.org/mailman/listinfo/arch
On Tue, 2012-04-10 at 11:57 +0300, Itamar Heim wrote:
top posting to make sure this is visible: touched based with danken and enabled this for vdsm project. if there are any issues/more time needed for adjustment, will disable and re-enable.
http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html#Sig...
You can enable for the ovirt-node project as well.
Thanks
Mike
On 04/08/2012 11:11 AM, Dan Kenigsberg wrote:
On Sat, Apr 07, 2012 at 01:00:27AM +0300, Itamar Heim wrote:
On 04/06/2012 06:00 PM, Ryan Harper wrote:
Re-sending this to arch as in our meeting this week we agreed[1] no reason to not implement DCO (http://kerneltrap.org/files/Jeremy/DCO.txt) but that we needed to enlist the maintainers to work out enforcement.
that's easy enough since we use gerrit. if acked by all, i can simply enable 'force sign-off' on patches option in gerrit and it will be enforced...
I do not mind requring the make-my-lawyer-happy line in all Vdsm commits, and I suppose that this would be fine by everybody on vdsm-devel. Tell us when this takes effect, we'll prepare our commit-msg hooks by then.
Anything cooler we can do beyond putting
SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^(.*>).*$/Signed-off-by: \1/p') grep -qs "^$SOB" "$1" || echo "$SOB">> "$1"
at the bottom of .git/hooks/commit-msg ?
----- Forwarded message from Ryan Harperryanh@us.ibm.com -----
From: Ryan Harperryanh@us.ibm.com Subject: code sign-off/DCO for ovirt projects Date: Tue, 3 Apr 2012 14:59:40 -0500 Message-ID:20120403195940.GB5061@us.ibm.com User-Agent: Mutt/1.5.6+20040907i To: board@ovirt.org
I see that this was discussed in the past on the board list[1] and there didn't seem to be any disagreement with doing DCO sign-off for code contributions. However, not all of the ovirt projects are doing DCO/Sign-off. There are a few commits in vdms.git that have a SoB, ovirt-node seems to be using DCO completely. Nothing in ovirt-engine either. I didn't check all of the ovirt subprojects, but I think it's safe to assume that's not being applied across all of the projects consistently.
Can we get that added to the commit process for these projects moving forward? Is there anything else needed beyond maintainers enforcing the need for SoB in patches?
Arch mailing list Arch@ovirt.org http://lists.ovirt.org/mailman/listinfo/arch
Arch mailing list Arch@ovirt.org http://lists.ovirt.org/mailman/listinfo/arch
On 04/10/2012 02:58 PM, Mike Burns wrote:
On Tue, 2012-04-10 at 11:57 +0300, Itamar Heim wrote:
top posting to make sure this is visible: touched based with danken and enabled this for vdsm project. if there are any issues/more time needed for adjustment, will disable and re-enable.
http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html#Sig...
You can enable for the ovirt-node project as well.
enabled for ovirt-node and ovirt-node-iso projects as well.
* Itamar Heim iheim@redhat.com [2012-04-10 03:57]:
top posting to make sure this is visible: touched based with danken and enabled this for vdsm project. if there are any issues/more time needed for adjustment, will disable and re-enable.
http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html#Sig...
Excellent! When would we enable this for the remaining ovirt-* projects? (engine, cli, sdk, etc.)?
On 04/08/2012 11:11 AM, Dan Kenigsberg wrote:
On Sat, Apr 07, 2012 at 01:00:27AM +0300, Itamar Heim wrote:
On 04/06/2012 06:00 PM, Ryan Harper wrote:
Re-sending this to arch as in our meeting this week we agreed[1] no reason to not implement DCO (http://kerneltrap.org/files/Jeremy/DCO.txt) but that we needed to enlist the maintainers to work out enforcement.
that's easy enough since we use gerrit. if acked by all, i can simply enable 'force sign-off' on patches option in gerrit and it will be enforced...
I do not mind requring the make-my-lawyer-happy line in all Vdsm commits, and I suppose that this would be fine by everybody on vdsm-devel. Tell us when this takes effect, we'll prepare our commit-msg hooks by then.
Anything cooler we can do beyond putting
SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^(.*>).*$/Signed-off-by: \1/p') grep -qs "^$SOB" "$1" || echo "$SOB">> "$1"
at the bottom of .git/hooks/commit-msg ?
----- Forwarded message from Ryan Harperryanh@us.ibm.com -----
From: Ryan Harperryanh@us.ibm.com Subject: code sign-off/DCO for ovirt projects Date: Tue, 3 Apr 2012 14:59:40 -0500 Message-ID:20120403195940.GB5061@us.ibm.com User-Agent: Mutt/1.5.6+20040907i To: board@ovirt.org
I see that this was discussed in the past on the board list[1] and there didn't seem to be any disagreement with doing DCO sign-off for code contributions. However, not all of the ovirt projects are doing DCO/Sign-off. There are a few commits in vdms.git that have a SoB, ovirt-node seems to be using DCO completely. Nothing in ovirt-engine either. I didn't check all of the ovirt subprojects, but I think it's safe to assume that's not being applied across all of the projects consistently.
Can we get that added to the commit process for these projects moving forward? Is there anything else needed beyond maintainers enforcing the need for SoB in patches?
Arch mailing list Arch@ovirt.org http://lists.ovirt.org/mailman/listinfo/arch
On 04/10/2012 04:13 PM, Ryan Harper wrote:
- Itamar Heimiheim@redhat.com [2012-04-10 03:57]:
top posting to make sure this is visible: touched based with danken and enabled this for vdsm project. if there are any issues/more time needed for adjustment, will disable and re-enable.
http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html#Sig...
Excellent! When would we enable this for the remaining ovirt-* projects? (engine, cli, sdk, etc.)?
i suggest asking on weekly call per project as it needs to sync (vdsm/ovirt-node with mostly a single maintainer easier to sync than engine)
On 04/08/2012 11:11 AM, Dan Kenigsberg wrote:
On Sat, Apr 07, 2012 at 01:00:27AM +0300, Itamar Heim wrote:
On 04/06/2012 06:00 PM, Ryan Harper wrote:
Re-sending this to arch as in our meeting this week we agreed[1] no reason to not implement DCO (http://kerneltrap.org/files/Jeremy/DCO.txt) but that we needed to enlist the maintainers to work out enforcement.
that's easy enough since we use gerrit. if acked by all, i can simply enable 'force sign-off' on patches option in gerrit and it will be enforced...
I do not mind requring the make-my-lawyer-happy line in all Vdsm commits, and I suppose that this would be fine by everybody on vdsm-devel. Tell us when this takes effect, we'll prepare our commit-msg hooks by then.
Anything cooler we can do beyond putting
SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^(.*>).*$/Signed-off-by: \1/p') grep -qs "^$SOB" "$1" || echo "$SOB">> "$1"
at the bottom of .git/hooks/commit-msg ?
----- Forwarded message from Ryan Harperryanh@us.ibm.com -----
From: Ryan Harperryanh@us.ibm.com Subject: code sign-off/DCO for ovirt projects Date: Tue, 3 Apr 2012 14:59:40 -0500 Message-ID:20120403195940.GB5061@us.ibm.com User-Agent: Mutt/1.5.6+20040907i To: board@ovirt.org
I see that this was discussed in the past on the board list[1] and there didn't seem to be any disagreement with doing DCO sign-off for code contributions. However, not all of the ovirt projects are doing DCO/Sign-off. There are a few commits in vdms.git that have a SoB, ovirt-node seems to be using DCO completely. Nothing in ovirt-engine either. I didn't check all of the ovirt subprojects, but I think it's safe to assume that's not being applied across all of the projects consistently.
Can we get that added to the commit process for these projects moving forward? Is there anything else needed beyond maintainers enforcing the need for SoB in patches?
Arch mailing list Arch@ovirt.org http://lists.ovirt.org/mailman/listinfo/arch
I am using Fedora 16 with default python2.7.2 installed, and found sometimes vdsm hanged at vdsm/storage/misc.py, func execFunc: p = subprocess.Popen(command, close_fds=True, cwd=cwd, stdin=infile, stdout=outfile, stderr=subprocess.PIPE, env=env)
Stopped command could be anything, most likely is "Thread-12::DEBUG::2012-04-12 11:18:08,995::__init__::1241::Storage.Misc.excCmd::(_log) '/usr/bin/sudo -n /sbin/iscsiadm -m session -R' (cwd None)" during vdsm booting up procedure. This happens only when an other thread is started at the same time by calling threading.thread.start(), which I found in clientIF._init(): self._hostStats.start()
When it happens , there would be two vdsm showed in ps command,: vdsm 13794 1 0 11:18 ? 00:00:00 /bin/bash -e /usr/share/vdsm/respawn --minlifetime 10 --daemon --masterpid /var/run/vdsm/respawn.pid /usr/share/vdsm/vdsm vdsm 13797 13794 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm vdsm 13837 13797 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm
Does anyone could give some idea about it? I made my own testing .py program calling misc.execFunc in one thread, and starting an other thread by start() in main thread, same thing happens with little chance, so I guess it is a bug in python threading and pipe, planning to change vdsm threading class to work around this.
----- Original Message -----
I am using Fedora 16 with default python2.7.2 installed, and found sometimes vdsm hanged at vdsm/storage/misc.py, func execFunc: p = subprocess.Popen(command, close_fds=True, cwd=cwd, stdin=infile, stdout=outfile, stderr=subprocess.PIPE, env=env)
Stopped command could be anything, most likely is "Thread-12::DEBUG::2012-04-12 11:18:08,995::__init__::1241::Storage.Misc.excCmd::(_log) '/usr/bin/sudo -n /sbin/iscsiadm -m session -R' (cwd None)"
during vdsm booting up procedure. This happens only when an other thread is started at the same time by calling threading.thread.start(), which I found in clientIF._init(): self._hostStats.start()
When it happens , there would be two vdsm showed in ps command,: vdsm 13794 1 0 11:18 ? 00:00:00 /bin/bash -e /usr/share/vdsm/respawn --minlifetime 10 --daemon --masterpid /var/run/vdsm/respawn.pid /usr/share/vdsm/vdsm vdsm 13797 13794 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm vdsm 13837 13797 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm
Does anyone could give some idea about it? I made my own testing .py program calling misc.execFunc in one thread, and starting an other thread by start() in main thread, same thing happens with little chance, so I guess it is a bug in python threading and pipe, planning to change vdsm threading class to work around this.
Do you have abrt package installed?
vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/vdsm-devel
于 2012-4-12 14:54, Ayal Baron 写道:
----- Original Message -----
I am using Fedora 16 with default python2.7.2 installed, and found sometimes vdsm hanged at vdsm/storage/misc.py, func execFunc: p = subprocess.Popen(command, close_fds=True, cwd=cwd, stdin=infile, stdout=outfile, stderr=subprocess.PIPE, env=env)
Stopped command could be anything, most likely is "Thread-12::DEBUG::2012-04-12 11:18:08,995::__init__::1241::Storage.Misc.excCmd::(_log) '/usr/bin/sudo -n /sbin/iscsiadm -m session -R' (cwd None)"
during vdsm booting up procedure. This happens only when an other thread is started at the same time by calling threading.thread.start(), which I found in clientIF._init(): self._hostStats.start()
When it happens , there would be two vdsm showed in ps command,: vdsm 13794 1 0 11:18 ? 00:00:00 /bin/bash -e /usr/share/vdsm/respawn --minlifetime 10 --daemon --masterpid /var/run/vdsm/respawn.pid /usr/share/vdsm/vdsm vdsm 13797 13794 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm vdsm 13837 13797 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm
Does anyone could give some idea about it? I made my own testing .py program calling misc.execFunc in one thread, and starting an other thread by start() in main thread, same thing happens with little chance, so I guess it is a bug in python threading and pipe, planning to change vdsm threading class to work around this.
Do you have abrt package installed?
yes, and removed all abrt packages testing again, problem still happens. [root@oVirtPC xiawenc]# rpm -qa | grep abrt [root@oVirtPC xiawenc]#
[root@oVirtPC xiawenc]# rpm -qa | grep vdsm vdsm-cli-4.9.6-0.68.git19981e1.fc16.noarch vdsm-4.9.6-0.68.git19981e1.fc16.x86_64 vdsm-debuginfo-4.9.6-0.68.git19981e1.fc16.x86_64 vdsm-python-4.9.6-0.68.git19981e1.fc16.noarch
Adam also metioned abrt package before, what problem it would trick?
vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/vdsm-devel
----- Original Message -----
于 2012-4-12 14:54, Ayal Baron 写道:
----- Original Message -----
I am using Fedora 16 with default python2.7.2 installed, and found sometimes vdsm hanged at vdsm/storage/misc.py, func execFunc: p = subprocess.Popen(command, close_fds=True, cwd=cwd, stdin=infile, stdout=outfile, stderr=subprocess.PIPE, env=env)
Stopped command could be anything, most likely is "Thread-12::DEBUG::2012-04-12 11:18:08,995::__init__::1241::Storage.Misc.excCmd::(_log) '/usr/bin/sudo -n /sbin/iscsiadm -m session -R' (cwd None)"
during vdsm booting up procedure. This happens only when an other thread is started at the same time by calling threading.thread.start(), which I found in clientIF._init(): self._hostStats.start()
When it happens , there would be two vdsm showed in ps command,: vdsm 13794 1 0 11:18 ? 00:00:00 /bin/bash -e /usr/share/vdsm/respawn --minlifetime 10 --daemon --masterpid /var/run/vdsm/respawn.pid /usr/share/vdsm/vdsm vdsm 13797 13794 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm vdsm 13837 13797 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm
Does anyone could give some idea about it? I made my own testing .py program calling misc.execFunc in one thread, and starting an other thread by start() in main thread, same thing happens with little chance, so I guess it is a bug in python threading and pipe, planning to change vdsm threading class to work around this.
Do you have abrt package installed?
yes, and removed all abrt packages testing again, problem still happens. [root@oVirtPC xiawenc]# rpm -qa | grep abrt [root@oVirtPC xiawenc]#
[root@oVirtPC xiawenc]# rpm -qa | grep vdsm vdsm-cli-4.9.6-0.68.git19981e1.fc16.noarch vdsm-4.9.6-0.68.git19981e1.fc16.x86_64 vdsm-debuginfo-4.9.6-0.68.git19981e1.fc16.x86_64 vdsm-python-4.9.6-0.68.git19981e1.fc16.noarch
Adam also metioned abrt package before, what problem it would trick?
abrt had a bug where in some cases it would read from a socket that was never written to without a timeout so it would hang. The maintainer introduced a patch earlier this week but I'm not sure it's accepted yet. Can you attach vdsm.log?
vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/vdsm-devel
The attachment is the log. Vdsm was built on: 19981e1bee497cded822b184180d661b7cb625bd BZ#773210 - Avoid infinite loop when delete volume failed during the merge
with following change: vdsm.spec.in: -Requires: lvm2 >= 2.02.95 +Requires: lvm2 >= 2.02.86 -Requires: libvirt >= 0.9.10-9 -Requires: libvirt-python >= 0.9.10-9 +Requires: libvirt >= 0.9.6 +Requires: libvirt-python >= 0.9.6
I don't have latest package of that, so changed them, but they seems not related to the issue.
----- Original Message -----
于 2012-4-12 14:54, Ayal Baron 写道:
----- Original Message -----
I am using Fedora 16 with default python2.7.2 installed, and found sometimes vdsm hanged at vdsm/storage/misc.py, func execFunc: p = subprocess.Popen(command, close_fds=True, cwd=cwd, stdin=infile, stdout=outfile, stderr=subprocess.PIPE, env=env)
Stopped command could be anything, most likely is "Thread-12::DEBUG::2012-04-12 11:18:08,995::__init__::1241::Storage.Misc.excCmd::(_log) '/usr/bin/sudo -n /sbin/iscsiadm -m session -R' (cwd None)"
during vdsm booting up procedure. This happens only when an other thread is started at the same time by calling threading.thread.start(), which I found in clientIF._init(): self._hostStats.start()
When it happens , there would be two vdsm showed in ps command,:
vdsm 13794 1 0 11:18 ? 00:00:00 /bin/bash -e /usr/share/vdsm/respawn --minlifetime 10 --daemon --masterpid /var/run/vdsm/respawn.pid /usr/share/vdsm/vdsm vdsm 13797 13794 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm vdsm 13837 13797 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm
Does anyone could give some idea about it? I made my own testing .py program calling misc.execFunc in one thread, and starting an other thread by start() in main thread, same thing happens with little chance, so I guess it is a bug in python threading and pipe, planning to change vdsm threading class to work around this.
Do you have abrt package installed?
yes, and removed all abrt packages testing again, problem still happens. [root@oVirtPC xiawenc]# rpm -qa | grep abrt [root@oVirtPC xiawenc]#
[root@oVirtPC xiawenc]# rpm -qa | grep vdsm vdsm-cli-4.9.6-0.68.git19981e1.fc16.noarch vdsm-4.9.6-0.68.git19981e1.fc16.x86_64 vdsm-debuginfo-4.9.6-0.68.git19981e1.fc16.x86_64 vdsm-python-4.9.6-0.68.git19981e1.fc16.noarch
Adam also metioned abrt package before, what problem it would trick?
abrt had a bug where in some cases it would read from a socket that was never written to without a timeout so it would hang. The maintainer introduced a patch earlier this week but I'm not sure it's accepted yet. Can you attach vdsm.log?
vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/vdsm-devel
attachment is test script to reproduce it, tar xzvf it, and sudo ./test_clean.sh.
runs on vdsm after version: commit acfe53407b450cab3b600e257bf487556fbece5e Author: Saggi Mizrahi smizrahi@redhat.com Date: Thu Apr 12 10:13:27 2012 -0400
Fix build-aux version scripts so that internal tags don't confuse them
A walking around patch is sent at http://gerrit.ovirt.org /#change,3638. Bugzillar: https://bugzilla.redhat.com/show_bug.cgi?id=808853
The attachment is the log. Vdsm was built on: 19981e1bee497cded822b184180d661b7cb625bd BZ#773210 - Avoid infinite loop when delete volume failed during the merge
with following change: vdsm.spec.in: -Requires: lvm2 >= 2.02.95 +Requires: lvm2 >= 2.02.86 -Requires: libvirt >= 0.9.10-9 -Requires: libvirt-python >= 0.9.10-9 +Requires: libvirt >= 0.9.6 +Requires: libvirt-python >= 0.9.6
I don't have latest package of that, so changed them, but they seems not related to the issue.
----- Original Message -----
于 2012-4-12 14:54, Ayal Baron 写道:
----- Original Message -----
I am using Fedora 16 with default python2.7.2 installed, and found sometimes vdsm hanged at vdsm/storage/misc.py, func execFunc: p = subprocess.Popen(command, close_fds=True, cwd=cwd, stdin=infile, stdout=outfile, stderr=subprocess.PIPE, env=env)
Stopped command could be anything, most likely is "Thread-12::DEBUG::2012-04-12 11:18:08,995::__init__::1241::Storage.Misc.excCmd::(_log) '/usr/bin/sudo -n /sbin/iscsiadm -m session -R' (cwd None)" during vdsm booting up procedure. This happens only when an other thread is started at the same time by calling threading.thread.start(), which I found in clientIF._init(): self._hostStats.start()
When it happens , there would be two vdsm showed in ps command,: vdsm 13794 1 0 11:18 ? 00:00:00 /bin/bash -e /usr/share/vdsm/respawn --minlifetime 10 --daemon --masterpid /var/run/vdsm/respawn.pid /usr/share/vdsm/vdsm vdsm 13797 13794 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm vdsm 13837 13797 0 11:18 ? 00:00:00 /usr/bin/python /usr/share/vdsm/vdsm
Does anyone could give some idea about it? I made my own testing .py program calling misc.execFunc in one thread, and starting an other thread by start() in main thread, same thing happens with little chance, so I guess it is a bug in python threading and pipe, planning to change vdsm threading class to work around this.
Do you have abrt package installed?
yes, and removed all abrt packages testing again, problem still happens. [root@oVirtPC xiawenc]# rpm -qa | grep abrt [root@oVirtPC xiawenc]#
[root@oVirtPC xiawenc]# rpm -qa | grep vdsm vdsm-cli-4.9.6-0.68.git19981e1.fc16.noarch vdsm-4.9.6-0.68.git19981e1.fc16.x86_64 vdsm-debuginfo-4.9.6-0.68.git19981e1.fc16.x86_64 vdsm-python-4.9.6-0.68.git19981e1.fc16.noarch
Adam also metioned abrt package before, what problem it would trick?
abrt had a bug where in some cases it would read from a socket that was never written to without a timeout so it would hang. The maintainer introduced a patch earlier this week but I'm not sure it's accepted yet. Can you attach vdsm.log?
vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/vdsm-devel
【来自网易邮箱的超大附件】
vdsm_hang.log 下载: http://preview.mail.163.com/xdownload?filename=vdsm_hang.log&mid=1tbiNw2...
vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/vdsm-devel
Hi Ayal and Dan, Attachment is the file reproducing the bug, it is verified on python2.7.2(fedora16) and python2.7.2+(ubuntu). Related discuss on python issue tracker: http://bugs.python.org/issue2320 It is similar to what I observed, program hangs on a thread calling subprocess pipe. Issue conclusion is that, it is fixed in python 3.2 but not python 2.7. My test case is that one thread hanging at subprocess pipe call while another thread call start(). So more validation is needed on python 3.2 to see if it covers the situation.
Test .py file content:
#! /usr/bin/python
import subprocess import threading import time import random import logging
myLogger = logging.getLogger('My') sleeptime = 0
global test_cycle test_cycle = 200 global result result = 0
def execCmd(command): infile = subprocess.PIPE outfile = subprocess.PIPE err = subprocess.PIPE p = subprocess.Popen(command, stdin=infile, stdout=outfile, stderr=err, close_fds=True) #p = subprocess.Popen(command, stdin=subprocess.PIPE) (out, err) = p.communicate() myLogger.info("cmd is %s, out is %s, err is %s.", command, out, err)
class StorageThread(threading.Thread): def __init__(self): threading.Thread.__init__(self)
def run(self): global result thread_c = 0 while thread_c < test_cycle: thread_c += 1 myLogger.info("call pipe for %d times.", thread_c) execCmd("cat") ran = random.random() #time.sleep(ran)
print "@@@@@@@thread all excuted!" result = 1
class StatsThread(threading.Thread): def __init__(self): threading.Thread.__init__(self)
def run(self): myLogger.info("simple thread started")
#main formatstr = "%(threadName)s::%(levelname)s::%(asctime)s::%(module)s::%(lineno)d::%(name)s::(%(funcName)s) %(message)s" logging.basicConfig(format=formatstr, level=logging.DEBUG) handler = logging.StreamHandler() logging.addLevelName(5, 'TRACE') logging.TRACE = 5 #logging.root.handlers.append(logging.StreamHandler()) #handler = logging.FileHandler("/var/log/vdsm/testlog.txt") #logging.root.handlers.append(handler)
storage_thread = StorageThread() storage_thread.start()
thread_m = 0 while thread_m < test_cycle: new_thread = StatsThread() new_thread.start() #new_thread.join()
ran = random.random() #time.sleep(ran) thread_m += 1
print "waiting for thread calling pipe complete" while result == 0: time.sleep(0.2) print "succeed!" print "sleeping" #time.sleep(1)
The test script should be runned for several times, and thread 1 have its chance to hang.
Hi Ayal and Dan, Attachment is the file reproducing the bug, it is verified on python2.7.2(fedora16) and python2.7.2+(ubuntu). Related discuss on python issue tracker: http://bugs.python.org/issue2320 It is similar to what I observed, program hangs on a thread calling subprocess pipe. Issue conclusion is that, it is fixed in python 3.2 but not python 2.7. My test case is that one thread hanging at subprocess pipe call while another thread call start(). So more validation is needed on python 3.2 to see if it covers the situation.
Test .py file content:
#! /usr/bin/python
import subprocess import threading import time import random import logging
myLogger = logging.getLogger('My') sleeptime = 0
global test_cycle test_cycle = 200 global result result = 0
def execCmd(command): infile = subprocess.PIPE outfile = subprocess.PIPE err = subprocess.PIPE p = subprocess.Popen(command, stdin=infile, stdout=outfile, stderr=err, close_fds=True) #p = subprocess.Popen(command, stdin=subprocess.PIPE) (out, err) = p.communicate() myLogger.info("cmd is %s, out is %s, err is %s.", command, out, err)
class StorageThread(threading.Thread): def __init__(self): threading.Thread.__init__(self)
def run(self): global result thread_c = 0 while thread_c < test_cycle: thread_c += 1 myLogger.info("call pipe for %d times.", thread_c) execCmd("cat") ran = random.random() #time.sleep(ran)
print "@@@@@@@thread all excuted!" result = 1
class StatsThread(threading.Thread): def __init__(self): threading.Thread.__init__(self)
def run(self): myLogger.info("simple thread started")
#main formatstr = "%(threadName)s::%(levelname)s::%(asctime)s::%(module)s::%(lineno)d::%(name)s::(%(funcName)s) %(message)s" logging.basicConfig(format=formatstr, level=logging.DEBUG) handler = logging.StreamHandler() logging.addLevelName(5, 'TRACE') logging.TRACE = 5 #logging.root.handlers.append(logging.StreamHandler()) #handler = logging.FileHandler("/var/log/vdsm/testlog.txt") #logging.root.handlers.append(handler)
storage_thread = StorageThread() storage_thread.start()
thread_m = 0 while thread_m < test_cycle: new_thread = StatsThread() new_thread.start() #new_thread.join()
ran = random.random() #time.sleep(ran) thread_m += 1
print "waiting for thread calling pipe complete" while result == 0: time.sleep(0.2) print "succeed!" print "sleeping" #time.sleep(1)
vdsm-devel mailing list vdsm-devel@lists.fedorahosted.org https://fedorahosted.org/mailman/listinfo/vdsm-devel
vdsm-devel@lists.fedorahosted.org