The reappearance procedures:
#1 The logic error that use released memory area.
1. define two or more domains which are same hash key.
(ex. the domain names are "domain_01" and "domain_28")
2. execute virsh by interactive mode
3. execute "list --all" command.
4. undefine a domain on another session.
(ex. undefine domain_28)
5. execute "list --all" command.
Segmentation Fault occur.
#2 The logic error that doesn't remove elements.
1. define two or more domains which are same hash key.
2. execute virsh by interactive mode
3. execute "list --all" command.
4. undefine the defined domains on another session.
5. execute "list --all" command.
A domain is not removed from the list during the fixed time(10sec).
On 2008/02/06 17:38, Jim Meyering wrote:
Hiroyuki Kaguchi <fj7025cf(a)aa.jp.fujitsu.com> wrote:
> Though this patch has not been applied yet, are there any problems in this patch?
> If there is no problem, could you apply this patch ?
>
> (2008/01/29 23:45), Daniel P. Berrange wrote:
>> On Tue, Jan 29, 2008 at 11:32:04AM +0900, Hiroyuki Kaguchi wrote:
>>> There are two logic error and a unnecessary else-statement
>>> in virHashRemoveSet function.
>>>
>>> This patch fix the following.
>>> (1/3) The logic error that use released memory area.
>>> (2/3) The logic error that doesn't remove elements.
Considering your analysis, I'm sure there's no problem. However, it
would be far easier to accept if we could easily demonstrate the failures.
Can you provide a stand-alone test case that provokes #1 and #2?
Ideally, it would be in the form of a main program that initializes
a hash table, performs some inserts and then performs the
offending deletion.
Bonus points if you also add a test case (run by "make check")
that fails before your patch and passes once it's applied.
>>> (3/3) Unnecessary else-statement.