[patch] improve locking mechanizm during staging process

Bug #520555 reported by Stanislav Ievlev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Eucalyptus
In Progress
Medium
Dmitrii Zagorodnov

Bug Description

Current locking implementation during staging process will not properly work on network filesystems (we are using a shared cache for all machines in cluster).
I've replaced a simple touch() and unlink() calls with a more perfect solution.

My functions use both fcntl and mutexes. This technique prevents a race conditions both between a local threads in one process
and between different processes on different machines.

Revision history for this message
Stanislav Ievlev (stanislav-ievlev) wrote :
Changed in eucalyptus:
assignee: nobody → Dmitrii Zagorodnov (dmitrii)
Revision history for this message
Dmitrii Zagorodnov (dmitrii) wrote :

Hi Stanislav,

Thanks a lot for the patch, I'm adding it to the 2.0.* code branch. I'll remove the

sem_v (disk_sem);
...
sem_p (disk_sem);

pair, because lock_file_aquire() is already called with sc_sem held and disk_sem is used to serialize long-running disk operations in storage.c. Does that make sense?

Regards,
Dmitrii

Changed in eucalyptus:
status: New → In Progress
importance: Undecided → Medium
milestone: none → 2.0.4
Revision history for this message
Andy Grimm (agrimm) wrote :

This issue is now being tracked upstream at http://eucalyptus.atlassian.net/browse/EUCA-2680

Please watch that issue for further updates.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.