[patch] improve locking mechanizm during staging process
Bug #520555 reported by
Stanislav Ievlev
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.
Changed in eucalyptus: | |
assignee: | nobody → Dmitrii Zagorodnov (dmitrii) |
Changed in eucalyptus: | |
status: | New → In Progress |
importance: | Undecided → Medium |
milestone: | none → 2.0.4 |
To post a comment you must log in.
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