a bug

FRANK frank1997 at gmail.com
Wed Mar 1 01:57:30 UTC 2006

I think there maybe something wrong in the function
_MPCI_receive_server (in mpci.c) I have tested such a programme. I
make two nodes. Node1 creates one task to create a semaphore, and
Node2 creates two tasks--task2 and task3. Task2 obtain the semaphore
and then release it. Before task2 release the semaphore task3 try to
obtain the semaphore. As a result it causes a deadlock. The reason I
think it's that before _MPCI_receive-server has finished the latest
request, it never receive a new request. But as this test, the obtain
request of task2 can be satisfied immediately, and the obtain request
of task3 can be satisfied only after the ralease request of task2
being satisfied. But the obtain request of task3 comes earlier than
the ralease request of task2, so before _MPCI_receive_server satisfies
the obtain request of task3, it will never response the released
request of task2, and this causes a deadlock.
Am I right? I hope you would give me a prompt reply.  Thanks a lot.


More information about the users mailing list